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_client.h b/generator/integration_tests/golden/v1/golden_kitchen_sink_client.h index 50ee56df818d1..3ad3d9629171c 100644 --- a/generator/integration_tests/golden/v1/golden_kitchen_sink_client.h +++ b/generator/integration_tests/golden/v1/golden_kitchen_sink_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GENERATOR_INTEGRATION_TESTS_GOLDEN_V1_GOLDEN_KITCHEN_SINK_CLIENT_H #include "generator/integration_tests/golden/v1/golden_kitchen_sink_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/generator/integration_tests/golden/v1/golden_rest_only_client.h index 8da2941554009..9ac38e1fa55a7 100644 --- a/generator/integration_tests/golden/v1/golden_rest_only_client.h +++ b/generator/integration_tests/golden/v1/golden_rest_only_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GENERATOR_INTEGRATION_TESTS_GOLDEN_V1_GOLDEN_REST_ONLY_CLIENT_H #include "generator/integration_tests/golden/v1/golden_rest_only_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/generator/integration_tests/golden/v1/golden_thing_admin_client.cc index f7451eb01623d..2fd13050b882f 100644 --- a/generator/integration_tests/golden/v1/golden_thing_admin_client.cc +++ b/generator/integration_tests/golden/v1/golden_thing_admin_client.cc @@ -57,12 +57,33 @@ GoldenThingAdminClient::CreateDatabase(std::string const& parent, std::string co return connection_->CreateDatabase(request); } +StatusOr + GoldenThingAdminClient::CreateDatabase(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& parent, std::string const& create_statement, Options opts) + { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::test::admin::database::v1::CreateDatabaseRequest request; + request.set_parent(parent); + request.set_create_statement(create_statement); + return connection_->CreateDatabase(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GoldenThingAdminClient::CreateDatabase(google::test::admin::database::v1::CreateDatabaseRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreateDatabase(request); } +StatusOr +GoldenThingAdminClient::CreateDatabase(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::CreateDatabaseRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDatabase(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GoldenThingAdminClient::CreateDatabase(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDatabase(google::cloud::ExperimentalTag{}, operation); +} + StatusOr GoldenThingAdminClient::GetDatabase(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -86,12 +107,33 @@ GoldenThingAdminClient::UpdateDatabaseDdl(std::string const& database, std::vect return connection_->UpdateDatabaseDdl(request); } +StatusOr + GoldenThingAdminClient::UpdateDatabaseDdl(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& database, std::vector const& statements, Options opts) + { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::test::admin::database::v1::UpdateDatabaseDdlRequest request; + request.set_database(database); + *request.mutable_statements() = {statements.begin(), statements.end()}; + return connection_->UpdateDatabaseDdl(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GoldenThingAdminClient::UpdateDatabaseDdl(google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->UpdateDatabaseDdl(request); } +StatusOr +GoldenThingAdminClient::UpdateDatabaseDdl(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDatabaseDdl(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GoldenThingAdminClient::UpdateDatabaseDdl(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDatabaseDdl(google::cloud::ExperimentalTag{}, operation); +} + Status GoldenThingAdminClient::DropDatabase(std::string const& database, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -208,12 +250,34 @@ GoldenThingAdminClient::CreateBackup(std::string const& parent, google::test::ad return connection_->CreateBackup(request); } +StatusOr + GoldenThingAdminClient::CreateBackup(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& parent, google::test::admin::database::v1::Backup const& backup, std::string const& backup_id, Options opts) + { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::test::admin::database::v1::CreateBackupRequest request; + request.set_parent(parent); + *request.mutable_backup() = backup; + request.set_backup_id(backup_id); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GoldenThingAdminClient::CreateBackup(google::test::admin::database::v1::CreateBackupRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreateBackup(request); } +StatusOr +GoldenThingAdminClient::CreateBackup(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::CreateBackupRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GoldenThingAdminClient::CreateBackup(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, operation); +} + StatusOr GoldenThingAdminClient::GetBackup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -281,12 +345,34 @@ GoldenThingAdminClient::RestoreDatabase(std::string const& parent, std::string c return connection_->RestoreDatabase(request); } +StatusOr + GoldenThingAdminClient::RestoreDatabase(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& parent, std::string const& database_id, std::string const& backup, Options opts) + { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::test::admin::database::v1::RestoreDatabaseRequest request; + request.set_parent(parent); + request.set_database_id(database_id); + request.set_backup(backup); + return connection_->RestoreDatabase(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GoldenThingAdminClient::RestoreDatabase(google::test::admin::database::v1::RestoreDatabaseRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->RestoreDatabase(request); } +StatusOr +GoldenThingAdminClient::RestoreDatabase(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreDatabase(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GoldenThingAdminClient::RestoreDatabase(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreDatabase(google::cloud::ExperimentalTag{}, operation); +} + StreamRange GoldenThingAdminClient::ListDatabaseOperations(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -321,6 +407,18 @@ GoldenThingAdminClient::LongRunningWithoutRouting(google::test::admin::database: return connection_->LongRunningWithoutRouting(request); } +StatusOr +GoldenThingAdminClient::LongRunningWithoutRouting(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LongRunningWithoutRouting(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GoldenThingAdminClient::LongRunningWithoutRouting(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LongRunningWithoutRouting(google::cloud::ExperimentalTag{}, operation); +} + future> GoldenThingAdminClient::AsyncGetDatabase(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/generator/integration_tests/golden/v1/golden_thing_admin_client.h b/generator/integration_tests/golden/v1/golden_thing_admin_client.h index ea47ff63501f7..0c016a275be79 100644 --- a/generator/integration_tests/golden/v1/golden_thing_admin_client.h +++ b/generator/integration_tests/golden/v1/golden_thing_admin_client.h @@ -20,8 +20,10 @@ #define GOOGLE_CLOUD_CPP_GENERATOR_INTEGRATION_TESTS_GOLDEN_V1_GOLDEN_THING_ADMIN_CLIENT_H #include "generator/integration_tests/golden/v1/golden_thing_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/internal/make_status.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" @@ -213,6 +215,10 @@ class GoldenThingAdminClient { future> CreateDatabase(std::string const& parent, std::string const& create_statement, Options opts = {}); + StatusOr + CreateDatabase(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& parent, std::string const& create_statement, Options opts = {}) +; + // clang-format off /// /// Creates a new Cloud Test database and starts to prepare it for serving. @@ -261,6 +267,12 @@ class GoldenThingAdminClient { future> CreateDatabase(google::test::admin::database::v1::CreateDatabaseRequest const& request, Options opts = {}); + StatusOr + CreateDatabase(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::CreateDatabaseRequest const& request, Options opts = {}); + + future> + CreateDatabase(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the state of a Cloud Test database. @@ -359,6 +371,10 @@ class GoldenThingAdminClient { future> UpdateDatabaseDdl(std::string const& database, std::vector const& statements, Options opts = {}); + StatusOr + UpdateDatabaseDdl(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& database, std::vector const& statements, Options opts = {}) +; + // clang-format off /// /// Updates the schema of a Cloud Test database by @@ -405,6 +421,12 @@ class GoldenThingAdminClient { future> UpdateDatabaseDdl(google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request, Options opts = {}); + StatusOr + UpdateDatabaseDdl(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request, Options opts = {}); + + future> + UpdateDatabaseDdl(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Drops (aka deletes) a Cloud Test database. @@ -822,6 +844,10 @@ class GoldenThingAdminClient { future> CreateBackup(std::string const& parent, google::test::admin::database::v1::Backup const& backup, std::string const& backup_id, Options opts = {}); + StatusOr + CreateBackup(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& parent, google::test::admin::database::v1::Backup const& backup, std::string const& backup_id, Options opts = {}) +; + // clang-format off /// /// Starts creating a new Cloud Test Backup. @@ -874,6 +900,12 @@ class GoldenThingAdminClient { future> CreateBackup(google::test::admin::database::v1::CreateBackupRequest const& request, Options opts = {}); + StatusOr + CreateBackup(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::CreateBackupRequest const& request, Options opts = {}); + + future> + CreateBackup(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets metadata on a pending or completed @@ -1193,6 +1225,10 @@ class GoldenThingAdminClient { future> RestoreDatabase(std::string const& parent, std::string const& database_id, std::string const& backup, Options opts = {}); + StatusOr + RestoreDatabase(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& parent, std::string const& database_id, std::string const& backup, Options opts = {}) +; + // clang-format off /// /// Create a new database by restoring from a completed backup. The new @@ -1250,6 +1286,12 @@ class GoldenThingAdminClient { future> RestoreDatabase(google::test::admin::database::v1::RestoreDatabaseRequest const& request, Options opts = {}); + StatusOr + RestoreDatabase(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request, Options opts = {}); + + future> + RestoreDatabase(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists database [longrunning-operations][google.longrunning.Operation]. @@ -1471,6 +1513,12 @@ class GoldenThingAdminClient { future> LongRunningWithoutRouting(google::test::admin::database::v1::RestoreDatabaseRequest const& request, Options opts = {}); + StatusOr + LongRunningWithoutRouting(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::admin::database::v1::RestoreDatabaseRequest const& request, Options opts = {}); + + future> + LongRunningWithoutRouting(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the state of a Cloud Test database. 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..1e7eddc23ac15 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(google::cloud::ExperimentalTag, + google::cloud::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(google::cloud::ExperimentalTag, + google::longrunning::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(google::cloud::ExperimentalTag, + google::cloud::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(google::cloud::ExperimentalTag, + google::longrunning::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(google::cloud::ExperimentalTag, + google::cloud::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(google::cloud::ExperimentalTag, + google::longrunning::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(google::cloud::ExperimentalTag, + google::cloud::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(google::cloud::ExperimentalTag, + google::longrunning::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(google::cloud::ExperimentalTag, + google::cloud::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(google::cloud::ExperimentalTag, + google::longrunning::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..07692e967a73d 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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::CreateDatabaseRequest const& request) override; + + future> + CreateDatabase(google::cloud::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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + + future> + UpdateDatabaseDdl(google::cloud::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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::CreateBackupRequest const& request) override; + + future> + CreateBackup(google::cloud::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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + RestoreDatabase(google::cloud::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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + LongRunningWithoutRouting(google::cloud::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..b8de05c5fee3c 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(google::cloud::ExperimentalTag, + google::cloud::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( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::CreateDatabase(google::cloud::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(google::cloud::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(google::cloud::ExperimentalTag, + google::cloud::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( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::UpdateDatabaseDdl(google::cloud::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(google::cloud::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(google::cloud::ExperimentalTag, + google::cloud::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( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::CreateBackup(google::cloud::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(google::cloud::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(google::cloud::ExperimentalTag, + google::cloud::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( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::RestoreDatabase(google::cloud::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(google::cloud::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(google::cloud::ExperimentalTag, + google::cloud::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( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request)); +} + +future> +GoldenThingAdminTracingConnection::LongRunningWithoutRouting(google::cloud::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(google::cloud::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..5716f1e7b2055 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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::CreateDatabaseRequest const& request) override; + + future> + CreateDatabase(google::cloud::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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + + future> + UpdateDatabaseDdl(google::cloud::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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::CreateBackupRequest const& request) override; + + future> + CreateBackup(google::cloud::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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + RestoreDatabase(google::cloud::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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request) override; + + future> + LongRunningWithoutRouting(google::cloud::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..4967ffe4b02c2 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(google::cloud::ExperimentalTag, + google::cloud::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(google::cloud::ExperimentalTag, + google::longrunning::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..90febda5bd513 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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::requestid::v1::RenameFooRequest const& request) override; + + future> + RenameFoo(google::cloud::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..700cde0274121 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(google::cloud::ExperimentalTag, + google::cloud::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( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request)); +} + +future> +RequestIdServiceTracingConnection::RenameFoo(google::cloud::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(google::cloud::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..32a5a167d922c 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(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::requestid::v1::RenameFooRequest const& request) override; + + future> + RenameFoo(google::cloud::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..237e3d6ab0d43 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, (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::CreateDatabaseRequest const& request), (override)); + + MOCK_METHOD(future>, + CreateDatabase, (google::cloud::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, (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::UpdateDatabaseDdlRequest const& request), (override)); + + MOCK_METHOD(future>, + UpdateDatabaseDdl, (google::cloud::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, (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::CreateBackupRequest const& request), (override)); + + MOCK_METHOD(future>, + CreateBackup, (google::cloud::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, (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request), (override)); + + MOCK_METHOD(future>, + RestoreDatabase, (google::cloud::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, (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::admin::database::v1::RestoreDatabaseRequest const& request), (override)); + + MOCK_METHOD(future>, + LongRunningWithoutRouting, (google::cloud::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..5b9d765fe95fa 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, (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::test::requestid::v1::RenameFooRequest const& request), (override)); + + MOCK_METHOD(future>, + RenameFoo, (google::cloud::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_client.cc b/generator/integration_tests/golden/v1/request_id_client.cc index a73f47a12072e..b75b07c195f35 100644 --- a/generator/integration_tests/golden/v1/request_id_client.cc +++ b/generator/integration_tests/golden/v1/request_id_client.cc @@ -56,12 +56,33 @@ RequestIdServiceClient::RenameFoo(std::string const& name, std::string const& de return connection_->RenameFoo(request); } +StatusOr + RequestIdServiceClient::RenameFoo(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& name, std::string const& destination_foo_id, Options opts) + { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::test::requestid::v1::RenameFooRequest request; + request.set_name(name); + request.set_destination_foo_id(destination_foo_id); + return connection_->RenameFoo(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RequestIdServiceClient::RenameFoo(google::test::requestid::v1::RenameFooRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->RenameFoo(request); } +StatusOr +RequestIdServiceClient::RenameFoo(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::requestid::v1::RenameFooRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RenameFoo(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RequestIdServiceClient::RenameFoo(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RenameFoo(google::cloud::ExperimentalTag{}, operation); +} + StreamRange RequestIdServiceClient::ListFoos(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/generator/integration_tests/golden/v1/request_id_client.h b/generator/integration_tests/golden/v1/request_id_client.h index b7c4b29b2385f..e30ba76e3817d 100644 --- a/generator/integration_tests/golden/v1/request_id_client.h +++ b/generator/integration_tests/golden/v1/request_id_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GENERATOR_INTEGRATION_TESTS_GOLDEN_V1_REQUEST_ID_CLIENT_H #include "generator/integration_tests/golden/v1/request_id_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -173,6 +175,10 @@ class RequestIdServiceClient { future> RenameFoo(std::string const& name, std::string const& destination_foo_id, Options opts = {}); + StatusOr + RenameFoo(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, std::string const& name, std::string const& destination_foo_id, Options opts = {}) +; + // clang-format off /// /// Renames a `Foo`. @@ -210,6 +216,12 @@ class RequestIdServiceClient { future> RenameFoo(google::test::requestid::v1::RenameFooRequest const& request, Options opts = {}); + StatusOr + RenameFoo(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::test::requestid::v1::RenameFooRequest const& request, Options opts = {}); + + future> + RenameFoo(google::cloud::ExperimentalTag, google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Retrieves a list of foos for a given parent. 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/internal/client_generator.cc b/generator/internal/client_generator.cc index 2edd423978f6d..18021fbd04edb 100644 --- a/generator/internal/client_generator.cc +++ b/generator/internal/client_generator.cc @@ -59,6 +59,14 @@ ClientGenerator::ClientGenerator( } } +std::string FormatStartMethodString(int i, std::string const& prefix = {}, + bool defaulted = true) { + return absl::StrCat(" ", prefix, "", + "$method_name$(google::cloud::ExperimentalTag, " + "google::cloud::NoAwaitTag, $method_signature", + i, "$Options opts", defaulted ? " = {}" : "", ")\n"); +} + Status ClientGenerator::GenerateHeader() { HeaderPrint(CopyrightLicenseFileHeader()); HeaderPrint( // clang-format off @@ -76,9 +84,10 @@ Status ClientGenerator::GenerateHeader() { HeaderLocalIncludes( {HasGenerateGrpcTransport() ? vars("connection_header_path") : vars("connection_rest_header_path"), - IsExperimental() ? "google/cloud/experimental_tag.h" : "", - "google/cloud/future.h", "google/cloud/options.h", - "google/cloud/polling_policy.h", + // IsExperimental() ? "google/cloud/experimental_tag.h" : "", + HasLongrunningMethod() ? "google/cloud/no_await_tag.h" : "", + "google/cloud/experimental_tag.h", "google/cloud/future.h", + "google/cloud/options.h", "google/cloud/polling_policy.h", HasIamPolicyExtension() ? "google/cloud/internal/make_status.h" : "", "google/cloud/status_or.h", "google/cloud/version.h"}); if (get_iam_policy_extension_ && set_iam_policy_extension_) { @@ -125,6 +134,8 @@ class $client_class_name$ { )"""); for (google::protobuf::MethodDescriptor const& method : methods()) { + // std::cout << __func__ << ": method=" << method.full_name() << + // std::endl; if (IsBidirStreaming(method)) { HeaderPrintMethod( method, __FILE__, __LINE__, @@ -143,10 +154,16 @@ R"""( std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< auto method_signature_extension = method.options().GetRepeatedExtension(google::api::method_signature); for (int i = 0; i < method_signature_extension.size(); ++i) { + // std::cout << __func__ << ": method=" << method.full_name() + // << "; i=" << i << std::endl; + if (OmitMethodSignature(method, i)) continue; std::string const method_string = absl::StrCat( " $method_name$($method_signature", i, "$Options opts = {});\n"); std::string const signature = method_signature_extension[i]; + // std::cout << __func__ << ": method=" << method.full_name() + // << "; signature=" << signature << std::endl; + HeaderPrintMethod( method, {MethodPattern({{"\n"}, @@ -169,7 +186,15 @@ R"""( std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< " future\n", " future>\n"}, // clang-format on - {method_string}}, + {method_string}, + {"\n"}, + {IsResponseTypeEmpty, + // clang-format off + " Status\n", + " StatusOr<$longrunning_operation_type$>\n"}, + // clang-format on + {FormatStartMethodString(i)}, + {";\n"}}, All(IsNonStreaming, IsLongrunningOperation, Not(IsPaginated))), MethodPattern( { @@ -253,7 +278,23 @@ R"""( std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< // clang-format off " future\n", " future>\n"}, - {" $method_name$($request_type$ const& request, Options opts = {});\n"} + {" $method_name$($request_type$ const& request, Options opts = {});\n"}, + {"\n"}, + {IsResponseTypeEmpty, + // clang-format off + " Status\n", + " StatusOr<$longrunning_operation_type$>\n"}, + // clang-format on + {" $method_name$(google::cloud::ExperimentalTag, " + "google::cloud::NoAwaitTag, " + "$request_type$ const& request, Options opts = {});\n"}, + {"\n"}, + {IsResponseTypeEmpty, + // clang-format off + " future\n", + " future>\n"}, + {" $method_name$(google::cloud::ExperimentalTag, $longrunning_operation_type$ const& operation"}, +{", Options opts = {});\n"} // clang-format on }, All(IsNonStreaming, IsLongrunningOperation, Not(IsPaginated))), @@ -435,6 +476,17 @@ std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< {" $request_type$ request;\n"}, {method_request_string}, {" return connection_->$method_name$(request);\n" + "}\n"}, + {IsResponseTypeEmpty, + // clang-format off + "\nStatus\n", + "\nStatusOr<$longrunning_operation_type$>\n"}, + {FormatStartMethodString(i, "$client_class_name$::", false)}, {" {"}, + {" internal::OptionsSpan span(internal::MergeOptions(" + "std::move(opts), options_));\n"}, + {" $request_type$ request;\n"}, + {method_request_string}, + {" return connection_->$method_name$(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request);\n" "}\n"} // clang-format on }, @@ -557,6 +609,32 @@ std::unique_ptr<::google::cloud::AsyncStreamingReadWriteRpc< " internal::OptionsSpan span(internal::MergeOptions(" "std::move(opts), options_));\n" " return connection_->$method_name$(request);\n" + "}\n"}, + // clang-format on + {IsResponseTypeEmpty, + // clang-format off + "\nStatus\n", + "\nStatusOr<$longrunning_operation_type$>\n"}, + {"$client_class_name$::$method_name$(google::cloud::ExperimentalTag" + ", google::cloud::NoAwaitTag" + ", $request_type$ const& request" + ", Options opts) {\n" + " internal::OptionsSpan span(internal::MergeOptions(" + "std::move(opts), options_));\n" + " return connection_->$method_name$(google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request);\n" + "}\n"}, + // clang-format on + {IsResponseTypeEmpty, + // clang-format off + "\nfuture\n", + "\nfuture>\n"}, + {"$client_class_name$::$method_name$(google::cloud::ExperimentalTag" + ", $longrunning_operation_type$ const& operation"}, + {", Options opts) {\n" + " internal::OptionsSpan span(internal::MergeOptions(" + "std::move(opts), options_));\n" +" return connection_->$method_name$(google::cloud::ExperimentalTag{}, operation"}, + {");\n" "}\n"} // clang-format on }, 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..fa700d2339296 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$(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + $request_type$ const& request) override; + + future + $method_name$(google::cloud::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$(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + $request_type$ const& request) override; + + future> + $method_name$(google::cloud::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$(google::cloud::ExperimentalTag, + google::cloud::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$(google::cloud::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..e69dfafeb4a06 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$, (google::cloud::ExperimentalTag, google::cloud::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$, (google::cloud::ExperimentalTag,\n" + " $longrunning_operation_type$ const& operation), (override));\n"} // clang-format on }, All(IsNonStreaming, IsLongrunningOperation, Not(IsPaginated))), diff --git a/generator/internal/tracing_connection_generator.cc b/generator/internal/tracing_connection_generator.cc index 716ce71e93126..1b5f8d61e9009 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$(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + $request_type$ const& request) override; + + future + $method_name$(google::cloud::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$(google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + $request_type$ const& request) override; + + future> + $method_name$(google::cloud::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$(google::cloud::ExperimentalTag, + google::cloud::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$( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request)); +} +)""", + IsResponseTypeEmpty(method) ? + R"""( +future)""" + : + R"""( +future>)""", + // TODO(#14344): Remove experimental tag. + R"""( +$tracing_connection_class_name$::$method_name$(google::cloud::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$(google::cloud::ExperimentalTag{}, operation)); +} + )"""); } return absl::StrCat(IsResponseTypeEmpty(method) ? R"""( diff --git a/google/cloud/accessapproval/v1/access_approval_client.h b/google/cloud/accessapproval/v1/access_approval_client.h index 001f0d6a24c82..dfc2c8974bb7d 100644 --- a/google/cloud/accessapproval/v1/access_approval_client.h +++ b/google/cloud/accessapproval/v1/access_approval_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ACCESSAPPROVAL_V1_ACCESS_APPROVAL_CLIENT_H #include "google/cloud/accessapproval/v1/access_approval_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/accesscontextmanager/v1/access_context_manager_client.cc index 72b59e5dfa646..6ca38e6a88ba7 100644 --- a/google/cloud/accesscontextmanager/v1/access_context_manager_client.cc +++ b/google/cloud/accesscontextmanager/v1/access_context_manager_client.cc @@ -67,6 +67,25 @@ AccessContextManagerClient::CreateAccessPolicy( return connection_->CreateAccessPolicy(request); } +StatusOr +AccessContextManagerClient::CreateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAccessPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::CreateAccessPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAccessPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::UpdateAccessPolicy( google::identity::accesscontextmanager::v1::AccessPolicy const& policy, @@ -78,6 +97,19 @@ AccessContextManagerClient::UpdateAccessPolicy( return connection_->UpdateAccessPolicy(request); } +StatusOr +AccessContextManagerClient::UpdateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& policy, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::UpdateAccessPolicyRequest request; + *request.mutable_policy() = policy; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAccessPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::UpdateAccessPolicy( google::identity::accesscontextmanager::v1::UpdateAccessPolicyRequest const& @@ -87,6 +119,26 @@ AccessContextManagerClient::UpdateAccessPolicy( return connection_->UpdateAccessPolicy(request); } +StatusOr +AccessContextManagerClient::UpdateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::UpdateAccessPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAccessPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::UpdateAccessPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAccessPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::DeleteAccessPolicy(std::string const& name, @@ -97,6 +149,18 @@ AccessContextManagerClient::DeleteAccessPolicy(std::string const& name, return connection_->DeleteAccessPolicy(request); } +StatusOr +AccessContextManagerClient::DeleteAccessPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::DeleteAccessPolicyRequest request; + request.set_name(name); + return connection_->DeleteAccessPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::DeleteAccessPolicy( @@ -107,6 +171,27 @@ AccessContextManagerClient::DeleteAccessPolicy( return connection_->DeleteAccessPolicy(request); } +StatusOr +AccessContextManagerClient::DeleteAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::DeleteAccessPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAccessPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::DeleteAccessPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAccessPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AccessContextManagerClient::ListAccessLevels(std::string const& parent, Options opts) { @@ -154,6 +239,20 @@ AccessContextManagerClient::CreateAccessLevel( return connection_->CreateAccessLevel(request); } +StatusOr +AccessContextManagerClient::CreateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::identity::accesscontextmanager::v1::AccessLevel const& access_level, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::CreateAccessLevelRequest request; + request.set_parent(parent); + *request.mutable_access_level() = access_level; + return connection_->CreateAccessLevel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::CreateAccessLevel( google::identity::accesscontextmanager::v1::CreateAccessLevelRequest const& @@ -163,6 +262,26 @@ AccessContextManagerClient::CreateAccessLevel( return connection_->CreateAccessLevel(request); } +StatusOr +AccessContextManagerClient::CreateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::CreateAccessLevelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAccessLevel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::CreateAccessLevel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAccessLevel(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::UpdateAccessLevel( google::identity::accesscontextmanager::v1::AccessLevel const& access_level, @@ -174,6 +293,19 @@ AccessContextManagerClient::UpdateAccessLevel( return connection_->UpdateAccessLevel(request); } +StatusOr +AccessContextManagerClient::UpdateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessLevel const& access_level, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::UpdateAccessLevelRequest request; + *request.mutable_access_level() = access_level; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAccessLevel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::UpdateAccessLevel( google::identity::accesscontextmanager::v1::UpdateAccessLevelRequest const& @@ -183,6 +315,26 @@ AccessContextManagerClient::UpdateAccessLevel( return connection_->UpdateAccessLevel(request); } +StatusOr +AccessContextManagerClient::UpdateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::UpdateAccessLevelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAccessLevel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::UpdateAccessLevel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAccessLevel(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::DeleteAccessLevel(std::string const& name, @@ -193,6 +345,18 @@ AccessContextManagerClient::DeleteAccessLevel(std::string const& name, return connection_->DeleteAccessLevel(request); } +StatusOr +AccessContextManagerClient::DeleteAccessLevel(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::DeleteAccessLevelRequest request; + request.set_name(name); + return connection_->DeleteAccessLevel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::DeleteAccessLevel( @@ -203,6 +367,27 @@ AccessContextManagerClient::DeleteAccessLevel( return connection_->DeleteAccessLevel(request); } +StatusOr +AccessContextManagerClient::DeleteAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::DeleteAccessLevelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAccessLevel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::DeleteAccessLevel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAccessLevel(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::ReplaceAccessLevels( @@ -213,6 +398,27 @@ AccessContextManagerClient::ReplaceAccessLevels( return connection_->ReplaceAccessLevels(request); } +StatusOr +AccessContextManagerClient::ReplaceAccessLevels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReplaceAccessLevels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::ReplaceAccessLevels( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReplaceAccessLevels(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AccessContextManagerClient::ListServicePerimeters(std::string const& parent, Options opts) { @@ -265,6 +471,22 @@ AccessContextManagerClient::CreateServicePerimeter( return connection_->CreateServicePerimeter(request); } +StatusOr +AccessContextManagerClient::CreateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::identity::accesscontextmanager::v1::ServicePerimeter const& + service_perimeter, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::CreateServicePerimeterRequest + request; + request.set_parent(parent); + *request.mutable_service_perimeter() = service_perimeter; + return connection_->CreateServicePerimeter( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::CreateServicePerimeter( google::identity::accesscontextmanager::v1:: @@ -274,6 +496,26 @@ AccessContextManagerClient::CreateServicePerimeter( return connection_->CreateServicePerimeter(request); } +StatusOr +AccessContextManagerClient::CreateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServicePerimeter( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::CreateServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServicePerimeter(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::UpdateServicePerimeter( google::identity::accesscontextmanager::v1::ServicePerimeter const& @@ -287,6 +529,21 @@ AccessContextManagerClient::UpdateServicePerimeter( return connection_->UpdateServicePerimeter(request); } +StatusOr +AccessContextManagerClient::UpdateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::ServicePerimeter const& + service_perimeter, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::UpdateServicePerimeterRequest + request; + *request.mutable_service_perimeter() = service_perimeter; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateServicePerimeter( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::UpdateServicePerimeter( google::identity::accesscontextmanager::v1:: @@ -296,6 +553,26 @@ AccessContextManagerClient::UpdateServicePerimeter( return connection_->UpdateServicePerimeter(request); } +StatusOr +AccessContextManagerClient::UpdateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateServicePerimeter( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::UpdateServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateServicePerimeter(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::DeleteServicePerimeter(std::string const& name, @@ -307,6 +584,18 @@ AccessContextManagerClient::DeleteServicePerimeter(std::string const& name, return connection_->DeleteServicePerimeter(request); } +StatusOr +AccessContextManagerClient::DeleteServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::DeleteServicePerimeterRequest + request; + request.set_name(name); + return connection_->DeleteServicePerimeter( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::DeleteServicePerimeter( @@ -317,6 +606,27 @@ AccessContextManagerClient::DeleteServicePerimeter( return connection_->DeleteServicePerimeter(request); } +StatusOr +AccessContextManagerClient::DeleteServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServicePerimeter( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::DeleteServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServicePerimeter(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::ReplaceServicePerimeters( @@ -327,6 +637,27 @@ AccessContextManagerClient::ReplaceServicePerimeters( return connection_->ReplaceServicePerimeters(request); } +StatusOr +AccessContextManagerClient::ReplaceServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReplaceServicePerimeters( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::ReplaceServicePerimeters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReplaceServicePerimeters(google::cloud::ExperimentalTag{}, + operation); +} + future> AccessContextManagerClient::CommitServicePerimeters( @@ -337,6 +668,27 @@ AccessContextManagerClient::CommitServicePerimeters( return connection_->CommitServicePerimeters(request); } +StatusOr +AccessContextManagerClient::CommitServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CommitServicePerimeters( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::CommitServicePerimeters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CommitServicePerimeters(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AccessContextManagerClient::ListGcpUserAccessBindings(std::string const& parent, Options opts) { @@ -390,6 +742,22 @@ AccessContextManagerClient::CreateGcpUserAccessBinding( return connection_->CreateGcpUserAccessBinding(request); } +StatusOr +AccessContextManagerClient::CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::identity::accesscontextmanager::v1::GcpUserAccessBinding const& + gcp_user_access_binding, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::CreateGcpUserAccessBindingRequest + request; + request.set_parent(parent); + *request.mutable_gcp_user_access_binding() = gcp_user_access_binding; + return connection_->CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> AccessContextManagerClient::CreateGcpUserAccessBinding( @@ -400,6 +768,27 @@ AccessContextManagerClient::CreateGcpUserAccessBinding( return connection_->CreateGcpUserAccessBinding(request); } +StatusOr +AccessContextManagerClient::CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +AccessContextManagerClient::CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, operation); +} + future< StatusOr> AccessContextManagerClient::UpdateGcpUserAccessBinding( @@ -414,6 +803,21 @@ AccessContextManagerClient::UpdateGcpUserAccessBinding( return connection_->UpdateGcpUserAccessBinding(request); } +StatusOr +AccessContextManagerClient::UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::GcpUserAccessBinding const& + gcp_user_access_binding, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::UpdateGcpUserAccessBindingRequest + request; + *request.mutable_gcp_user_access_binding() = gcp_user_access_binding; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> AccessContextManagerClient::UpdateGcpUserAccessBinding( @@ -424,6 +828,27 @@ AccessContextManagerClient::UpdateGcpUserAccessBinding( return connection_->UpdateGcpUserAccessBinding(request); } +StatusOr +AccessContextManagerClient::UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +AccessContextManagerClient::UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, operation); +} + future> AccessContextManagerClient::DeleteGcpUserAccessBinding(std::string const& name, @@ -435,6 +860,18 @@ AccessContextManagerClient::DeleteGcpUserAccessBinding(std::string const& name, return connection_->DeleteGcpUserAccessBinding(request); } +StatusOr +AccessContextManagerClient::DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::identity::accesscontextmanager::v1::DeleteGcpUserAccessBindingRequest + request; + request.set_name(name); + return connection_->DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AccessContextManagerClient::DeleteGcpUserAccessBinding( @@ -445,6 +882,27 @@ AccessContextManagerClient::DeleteGcpUserAccessBinding( return connection_->DeleteGcpUserAccessBinding(request); } +StatusOr +AccessContextManagerClient::DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AccessContextManagerClient::DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr AccessContextManagerClient::SetIamPolicy( google::iam::v1::SetIamPolicyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/accesscontextmanager/v1/access_context_manager_client.h b/google/cloud/accesscontextmanager/v1/access_context_manager_client.h index e7eff3b763ef4..0a09ba720b953 100644 --- a/google/cloud/accesscontextmanager/v1/access_context_manager_client.h +++ b/google/cloud/accesscontextmanager/v1/access_context_manager_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ACCESSCONTEXTMANAGER_V1_ACCESS_CONTEXT_MANAGER_CLIENT_H #include "google/cloud/accesscontextmanager/v1/access_context_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -246,6 +248,16 @@ class AccessContextManagerClient { google::identity::accesscontextmanager::v1::AccessPolicy const& request, Options opts = {}); + StatusOr CreateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request, + Options opts = {}); + + future> + CreateAccessPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an [access policy] @@ -286,6 +298,11 @@ class AccessContextManagerClient { google::identity::accesscontextmanager::v1::AccessPolicy const& policy, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& policy, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an [access policy] @@ -330,6 +347,17 @@ class AccessContextManagerClient { UpdateAccessPolicyRequest const& request, Options opts = {}); + StatusOr UpdateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request, + Options opts = {}); + + future> + UpdateAccessPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes an [access policy] @@ -369,6 +397,10 @@ class AccessContextManagerClient { AccessContextManagerOperationMetadata>> DeleteAccessPolicy(std::string const& name, Options opts = {}); + StatusOr DeleteAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an [access policy] @@ -413,6 +445,18 @@ class AccessContextManagerClient { DeleteAccessPolicyRequest const& request, Options opts = {}); + StatusOr DeleteAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request, + Options opts = {}); + + future> + DeleteAccessPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all [access levels] @@ -613,6 +657,13 @@ class AccessContextManagerClient { access_level, Options opts = {}); + StatusOr CreateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::identity::accesscontextmanager::v1::AccessLevel const& + access_level, + Options opts = {}); + // clang-format off /// /// Creates an [access level] @@ -658,6 +709,17 @@ class AccessContextManagerClient { CreateAccessLevelRequest const& request, Options opts = {}); + StatusOr CreateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request, + Options opts = {}); + + future> + CreateAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an [access level] @@ -705,6 +767,12 @@ class AccessContextManagerClient { access_level, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessLevel const& + access_level, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an [access level] @@ -751,6 +819,17 @@ class AccessContextManagerClient { UpdateAccessLevelRequest const& request, Options opts = {}); + StatusOr UpdateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request, + Options opts = {}); + + future> + UpdateAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes an [access level] @@ -793,6 +872,10 @@ class AccessContextManagerClient { AccessContextManagerOperationMetadata>> DeleteAccessLevel(std::string const& name, Options opts = {}); + StatusOr DeleteAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an [access level] @@ -838,6 +921,18 @@ class AccessContextManagerClient { DeleteAccessLevelRequest const& request, Options opts = {}); + StatusOr DeleteAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request, + Options opts = {}); + + future> + DeleteAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Replaces all existing [access levels] @@ -894,6 +989,18 @@ class AccessContextManagerClient { ReplaceAccessLevelsRequest const& request, Options opts = {}); + StatusOr ReplaceAccessLevels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request, + Options opts = {}); + + future> + ReplaceAccessLevels(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all [service perimeters] @@ -1094,6 +1201,13 @@ class AccessContextManagerClient { service_perimeter, Options opts = {}); + StatusOr CreateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::identity::accesscontextmanager::v1::ServicePerimeter const& + service_perimeter, + Options opts = {}); + // clang-format off /// /// Creates a [service perimeter] @@ -1140,6 +1254,17 @@ class AccessContextManagerClient { CreateServicePerimeterRequest const& request, Options opts = {}); + StatusOr CreateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request, + Options opts = {}); + + future> + CreateServicePerimeter(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a [service perimeter] @@ -1184,6 +1309,12 @@ class AccessContextManagerClient { service_perimeter, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::ServicePerimeter const& + service_perimeter, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a [service perimeter] @@ -1230,6 +1361,17 @@ class AccessContextManagerClient { UpdateServicePerimeterRequest const& request, Options opts = {}); + StatusOr UpdateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request, + Options opts = {}); + + future> + UpdateServicePerimeter(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a [service perimeter] @@ -1272,6 +1414,10 @@ class AccessContextManagerClient { AccessContextManagerOperationMetadata>> DeleteServicePerimeter(std::string const& name, Options opts = {}); + StatusOr DeleteServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a [service perimeter] @@ -1317,6 +1463,18 @@ class AccessContextManagerClient { DeleteServicePerimeterRequest const& request, Options opts = {}); + StatusOr DeleteServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request, + Options opts = {}); + + future> + DeleteServicePerimeter(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Replace all existing [service perimeters] @@ -1369,6 +1527,18 @@ class AccessContextManagerClient { ReplaceServicePerimetersRequest const& request, Options opts = {}); + StatusOr ReplaceServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request, + Options opts = {}); + + future> + ReplaceServicePerimeters(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Commits the dry-run specification for all the [service perimeters] @@ -1424,6 +1594,18 @@ class AccessContextManagerClient { CommitServicePerimetersRequest const& request, Options opts = {}); + StatusOr CommitServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request, + Options opts = {}); + + future> + CommitServicePerimeters(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all [GcpUserAccessBindings] @@ -1612,6 +1794,13 @@ class AccessContextManagerClient { gcp_user_access_binding, Options opts = {}); + StatusOr CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::identity::accesscontextmanager::v1::GcpUserAccessBinding const& + gcp_user_access_binding, + Options opts = {}); + // clang-format off /// /// Creates a [GcpUserAccessBinding] @@ -1662,6 +1851,18 @@ class AccessContextManagerClient { CreateGcpUserAccessBindingRequest const& request, Options opts = {}); + StatusOr CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request, + Options opts = {}); + + future> + CreateGcpUserAccessBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a [GcpUserAccessBinding] @@ -1709,6 +1910,12 @@ class AccessContextManagerClient { gcp_user_access_binding, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::GcpUserAccessBinding const& + gcp_user_access_binding, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a [GcpUserAccessBinding] @@ -1754,6 +1961,18 @@ class AccessContextManagerClient { UpdateGcpUserAccessBindingRequest const& request, Options opts = {}); + StatusOr UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request, + Options opts = {}); + + future> + UpdateGcpUserAccessBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a [GcpUserAccessBinding] @@ -1791,6 +2010,10 @@ class AccessContextManagerClient { GcpUserAccessBindingOperationMetadata>> DeleteGcpUserAccessBinding(std::string const& name, Options opts = {}); + StatusOr DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a [GcpUserAccessBinding] @@ -1836,6 +2059,18 @@ class AccessContextManagerClient { DeleteGcpUserAccessBindingRequest const& request, Options opts = {}); + StatusOr DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request, + Options opts = {}); + + future> + DeleteGcpUserAccessBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the IAM policy for the specified Access Context Manager 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..9300246eca74e 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,61 @@ AccessContextManagerConnectionImpl::CreateAccessPolicy( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::CreateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +261,62 @@ AccessContextManagerConnectionImpl::UpdateAccessPolicy( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::UpdateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +360,66 @@ AccessContextManagerConnectionImpl::DeleteAccessPolicy( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::DeleteAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +513,62 @@ AccessContextManagerConnectionImpl::CreateAccessLevel( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::CreateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +609,62 @@ AccessContextManagerConnectionImpl::UpdateAccessLevel( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::UpdateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +708,66 @@ AccessContextManagerConnectionImpl::DeleteAccessLevel( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::DeleteAccessLevel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +810,64 @@ AccessContextManagerConnectionImpl::ReplaceAccessLevels( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::ReplaceAccessLevels( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +959,181 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1151,52 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1215,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 +1261,66 @@ AccessContextManagerConnectionImpl::ReplaceServicePerimeters( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::ReplaceServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1364,65 @@ AccessContextManagerConnectionImpl::CommitServicePerimeters( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::CommitServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1520,63 @@ AccessContextManagerConnectionImpl::CreateGcpUserAccessBinding( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1618,63 @@ AccessContextManagerConnectionImpl::UpdateGcpUserAccessBinding( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1718,66 @@ AccessContextManagerConnectionImpl::DeleteGcpUserAccessBinding( polling_policy(*current), __func__); } +StatusOr +AccessContextManagerConnectionImpl::DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..0b7cbae2b12ac 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request) + override; + + future> + CreateAccessPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAccessPolicy(google::identity::accesscontextmanager::v1:: UpdateAccessPolicyRequest const& request) override; + StatusOr UpdateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request) override; + + future> + UpdateAccessPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAccessPolicy(google::identity::accesscontextmanager::v1:: DeleteAccessPolicyRequest const& request) override; + StatusOr DeleteAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request) override; + + future> + DeleteAccessPolicy(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request) override; + + future> + CreateAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAccessLevel(google::identity::accesscontextmanager::v1:: UpdateAccessLevelRequest const& request) override; + StatusOr UpdateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request) override; + + future> + UpdateAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAccessLevel(google::identity::accesscontextmanager::v1:: DeleteAccessLevelRequest const& request) override; + StatusOr DeleteAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request) override; + + future> + DeleteAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReplaceAccessLevels(google::identity::accesscontextmanager::v1:: ReplaceAccessLevelsRequest const& request) override; + StatusOr ReplaceAccessLevels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request) override; + + future> + ReplaceAccessLevels(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request) override; + + future> + CreateServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateServicePerimeter( google::identity::accesscontextmanager::v1:: UpdateServicePerimeterRequest const& request) override; + StatusOr UpdateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) override; + + future> + UpdateServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServicePerimeter( google::identity::accesscontextmanager::v1:: DeleteServicePerimeterRequest const& request) override; + StatusOr DeleteServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request) override; + + future> + DeleteServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReplaceServicePerimeters( google::identity::accesscontextmanager::v1:: ReplaceServicePerimetersRequest const& request) override; + StatusOr ReplaceServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request) override; + + future> + ReplaceServicePerimeters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CommitServicePerimeters( google::identity::accesscontextmanager::v1:: CommitServicePerimetersRequest const& request) override; + StatusOr CommitServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request) override; + + future> + CommitServicePerimeters( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request) override; + + future> + CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: UpdateGcpUserAccessBindingRequest const& request) override; + StatusOr UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request) override; + + future> + UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: DeleteGcpUserAccessBindingRequest const& request) override; + StatusOr DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request) override; + + future> + DeleteGcpUserAccessBinding( + google::cloud::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..5f6f8fc0be436 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,32 @@ AccessContextManagerTracingConnection::CreateAccessPolicy( child_->CreateAccessPolicy(request)); } +StatusOr +AccessContextManagerTracingConnection::CreateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::CreateAccessPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::UpdateAccessPolicy( google::identity::accesscontextmanager::v1::UpdateAccessPolicyRequest const& @@ -82,6 +108,33 @@ AccessContextManagerTracingConnection::UpdateAccessPolicy( child_->UpdateAccessPolicy(request)); } +StatusOr +AccessContextManagerTracingConnection::UpdateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::UpdateAccessPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::DeleteAccessPolicy( @@ -95,6 +148,34 @@ AccessContextManagerTracingConnection::DeleteAccessPolicy( child_->DeleteAccessPolicy(request)); } +StatusOr +AccessContextManagerTracingConnection::DeleteAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::DeleteAccessPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AccessContextManagerTracingConnection::ListAccessLevels( google::identity::accesscontextmanager::v1::ListAccessLevelsRequest @@ -131,6 +212,33 @@ AccessContextManagerTracingConnection::CreateAccessLevel( return internal::EndSpan(std::move(span), child_->CreateAccessLevel(request)); } +StatusOr +AccessContextManagerTracingConnection::CreateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::CreateAccessLevel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::UpdateAccessLevel( google::identity::accesscontextmanager::v1::UpdateAccessLevelRequest const& @@ -142,6 +250,33 @@ AccessContextManagerTracingConnection::UpdateAccessLevel( return internal::EndSpan(std::move(span), child_->UpdateAccessLevel(request)); } +StatusOr +AccessContextManagerTracingConnection::UpdateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::UpdateAccessLevel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::DeleteAccessLevel( @@ -154,6 +289,34 @@ AccessContextManagerTracingConnection::DeleteAccessLevel( return internal::EndSpan(std::move(span), child_->DeleteAccessLevel(request)); } +StatusOr +AccessContextManagerTracingConnection::DeleteAccessLevel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::DeleteAccessLevel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::ReplaceAccessLevels( @@ -167,6 +330,34 @@ AccessContextManagerTracingConnection::ReplaceAccessLevels( child_->ReplaceAccessLevels(request)); } +StatusOr +AccessContextManagerTracingConnection::ReplaceAccessLevels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::ReplaceAccessLevels( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AccessContextManagerTracingConnection::ListServicePerimeters( google::identity::accesscontextmanager::v1::ListServicePerimetersRequest @@ -204,6 +395,33 @@ AccessContextManagerTracingConnection::CreateServicePerimeter( child_->CreateServicePerimeter(request)); } +StatusOr +AccessContextManagerTracingConnection::CreateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::CreateServicePerimeter( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::UpdateServicePerimeter( google::identity::accesscontextmanager::v1:: @@ -216,6 +434,33 @@ AccessContextManagerTracingConnection::UpdateServicePerimeter( child_->UpdateServicePerimeter(request)); } +StatusOr +AccessContextManagerTracingConnection::UpdateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::UpdateServicePerimeter( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::DeleteServicePerimeter( @@ -229,6 +474,34 @@ AccessContextManagerTracingConnection::DeleteServicePerimeter( child_->DeleteServicePerimeter(request)); } +StatusOr +AccessContextManagerTracingConnection::DeleteServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::DeleteServicePerimeter( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::ReplaceServicePerimeters( @@ -242,6 +515,34 @@ AccessContextManagerTracingConnection::ReplaceServicePerimeters( child_->ReplaceServicePerimeters(request)); } +StatusOr +AccessContextManagerTracingConnection::ReplaceServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::ReplaceServicePerimeters( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::CommitServicePerimeters( @@ -255,6 +556,34 @@ AccessContextManagerTracingConnection::CommitServicePerimeters( child_->CommitServicePerimeters(request)); } +StatusOr +AccessContextManagerTracingConnection::CommitServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::CommitServicePerimeters( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AccessContextManagerTracingConnection::ListGcpUserAccessBindings( google::identity::accesscontextmanager::v1::ListGcpUserAccessBindingsRequest @@ -293,6 +622,34 @@ AccessContextManagerTracingConnection::CreateGcpUserAccessBinding( child_->CreateGcpUserAccessBinding(request)); } +StatusOr +AccessContextManagerTracingConnection::CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +AccessContextManagerTracingConnection::CreateGcpUserAccessBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future< StatusOr> AccessContextManagerTracingConnection::UpdateGcpUserAccessBinding( @@ -306,6 +663,34 @@ AccessContextManagerTracingConnection::UpdateGcpUserAccessBinding( child_->UpdateGcpUserAccessBinding(request)); } +StatusOr +AccessContextManagerTracingConnection::UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +AccessContextManagerTracingConnection::UpdateGcpUserAccessBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AccessContextManagerTracingConnection::DeleteGcpUserAccessBinding( @@ -319,6 +704,34 @@ AccessContextManagerTracingConnection::DeleteGcpUserAccessBinding( child_->DeleteGcpUserAccessBinding(request)); } +StatusOr +AccessContextManagerTracingConnection::DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AccessContextManagerTracingConnection::DeleteGcpUserAccessBinding( + google::cloud::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( + google::cloud::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..92543a74292c1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request) + override; + + future> + CreateAccessPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAccessPolicy(google::identity::accesscontextmanager::v1:: UpdateAccessPolicyRequest const& request) override; + StatusOr UpdateAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request) override; + + future> + UpdateAccessPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAccessPolicy(google::identity::accesscontextmanager::v1:: DeleteAccessPolicyRequest const& request) override; + StatusOr DeleteAccessPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request) override; + + future> + DeleteAccessPolicy(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request) override; + + future> + CreateAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAccessLevel(google::identity::accesscontextmanager::v1:: UpdateAccessLevelRequest const& request) override; + StatusOr UpdateAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request) override; + + future> + UpdateAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAccessLevel(google::identity::accesscontextmanager::v1:: DeleteAccessLevelRequest const& request) override; + StatusOr DeleteAccessLevel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request) override; + + future> + DeleteAccessLevel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReplaceAccessLevels(google::identity::accesscontextmanager::v1:: ReplaceAccessLevelsRequest const& request) override; + StatusOr ReplaceAccessLevels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request) override; + + future> + ReplaceAccessLevels(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request) override; + + future> + CreateServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateServicePerimeter( google::identity::accesscontextmanager::v1:: UpdateServicePerimeterRequest const& request) override; + StatusOr UpdateServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request) override; + + future> + UpdateServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServicePerimeter( google::identity::accesscontextmanager::v1:: DeleteServicePerimeterRequest const& request) override; + StatusOr DeleteServicePerimeter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request) override; + + future> + DeleteServicePerimeter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReplaceServicePerimeters( google::identity::accesscontextmanager::v1:: ReplaceServicePerimetersRequest const& request) override; + StatusOr ReplaceServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request) override; + + future> + ReplaceServicePerimeters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CommitServicePerimeters( google::identity::accesscontextmanager::v1:: CommitServicePerimetersRequest const& request) override; + StatusOr CommitServicePerimeters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request) override; + + future> + CommitServicePerimeters( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request) override; + + future> + CreateGcpUserAccessBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: UpdateGcpUserAccessBindingRequest const& request) override; + StatusOr UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request) override; + + future> + UpdateGcpUserAccessBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGcpUserAccessBinding( google::identity::accesscontextmanager::v1:: DeleteGcpUserAccessBindingRequest const& request) override; + StatusOr DeleteGcpUserAccessBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request) override; + + future> + DeleteGcpUserAccessBinding( + google::cloud::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..10b64840fc8ae 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,20 @@ class MockAccessContextManagerConnection (google::identity::accesscontextmanager::v1::AccessPolicy const& request), (override)); + MOCK_METHOD( + StatusOr, CreateAccessPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1::AccessPolicy const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateAccessPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -76,6 +90,20 @@ class MockAccessContextManagerConnection UpdateAccessPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAccessPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessPolicyRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpdateAccessPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAccessPolicy, @@ -83,6 +111,19 @@ class MockAccessContextManagerConnection DeleteAccessPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAccessPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAccessPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListAccessLevels, @@ -104,6 +145,19 @@ class MockAccessContextManagerConnection CreateAccessLevelRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAccessLevel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateAccessLevelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAccessLevel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAccessLevel, @@ -111,6 +165,19 @@ class MockAccessContextManagerConnection UpdateAccessLevelRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAccessLevel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateAccessLevelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateAccessLevel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAccessLevel, @@ -118,6 +185,19 @@ class MockAccessContextManagerConnection DeleteAccessLevelRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAccessLevel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteAccessLevelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAccessLevel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ReplaceAccessLevels, @@ -125,6 +205,19 @@ class MockAccessContextManagerConnection ReplaceAccessLevelsRequest const& request), (override)); + MOCK_METHOD(StatusOr, ReplaceAccessLevels, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceAccessLevelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReplaceAccessLevels, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< google::identity::accesscontextmanager::v1::ServicePerimeter>), @@ -148,6 +241,20 @@ class MockAccessContextManagerConnection CreateServicePerimeterRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateServicePerimeter, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateServicePerimeterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateServicePerimeter, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -156,6 +263,20 @@ class MockAccessContextManagerConnection UpdateServicePerimeterRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateServicePerimeter, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateServicePerimeterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateServicePerimeter, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteServicePerimeter, @@ -163,6 +284,19 @@ class MockAccessContextManagerConnection DeleteServicePerimeterRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteServicePerimeter, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteServicePerimeterRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteServicePerimeter, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ReplaceServicePerimeters, @@ -170,6 +304,20 @@ class MockAccessContextManagerConnection ReplaceServicePerimetersRequest const& request), (override)); + MOCK_METHOD(StatusOr, + ReplaceServicePerimeters, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + ReplaceServicePerimetersRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReplaceServicePerimeters, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CommitServicePerimeters, @@ -177,6 +325,19 @@ class MockAccessContextManagerConnection CommitServicePerimetersRequest const& request), (override)); + MOCK_METHOD(StatusOr, CommitServicePerimeters, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CommitServicePerimetersRequest const& request), + (override)); + + MOCK_METHOD(future>, + CommitServicePerimeters, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< google::identity::accesscontextmanager::v1::GcpUserAccessBinding>), @@ -201,6 +362,21 @@ class MockAccessContextManagerConnection CreateGcpUserAccessBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateGcpUserAccessBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + CreateGcpUserAccessBindingRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateGcpUserAccessBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -209,6 +385,21 @@ class MockAccessContextManagerConnection UpdateGcpUserAccessBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateGcpUserAccessBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + UpdateGcpUserAccessBindingRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateGcpUserAccessBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteGcpUserAccessBinding, @@ -216,6 +407,20 @@ class MockAccessContextManagerConnection DeleteGcpUserAccessBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteGcpUserAccessBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::identity::accesscontextmanager::v1:: + DeleteGcpUserAccessBindingRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteGcpUserAccessBinding, + (google::cloud::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_client.h b/google/cloud/advisorynotifications/v1/advisory_notifications_client.h index b63ebfbe2f688..678e58696d228 100644 --- a/google/cloud/advisorynotifications/v1/advisory_notifications_client.h +++ b/google/cloud/advisorynotifications/v1/advisory_notifications_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ADVISORYNOTIFICATIONS_V1_ADVISORY_NOTIFICATIONS_CLIENT_H #include "google/cloud/advisorynotifications/v1/advisory_notifications_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/aiplatform/v1/dataset_client.cc index 0d929b158194c..83eea608f8ca6 100644 --- a/google/cloud/aiplatform/v1/dataset_client.cc +++ b/google/cloud/aiplatform/v1/dataset_client.cc @@ -43,6 +43,18 @@ DatasetServiceClient::CreateDataset( return connection_->CreateDataset(request); } +StatusOr DatasetServiceClient::CreateDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Dataset const& dataset, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateDatasetRequest request; + request.set_parent(parent); + *request.mutable_dataset() = dataset; + return connection_->CreateDataset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatasetServiceClient::CreateDataset( google::cloud::aiplatform::v1::CreateDatasetRequest const& request, @@ -51,6 +63,24 @@ DatasetServiceClient::CreateDataset( return connection_->CreateDataset(request); } +StatusOr DatasetServiceClient::CreateDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatasetServiceClient::CreateDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataset(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DatasetServiceClient::GetDataset(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -109,6 +139,16 @@ DatasetServiceClient::DeleteDataset(std::string const& name, Options opts) { return connection_->DeleteDataset(request); } +StatusOr DatasetServiceClient::DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteDatasetRequest request; + request.set_name(name); + return connection_->DeleteDataset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatasetServiceClient::DeleteDataset( google::cloud::aiplatform::v1::DeleteDatasetRequest const& request, @@ -117,6 +157,24 @@ DatasetServiceClient::DeleteDataset( return connection_->DeleteDataset(request); } +StatusOr DatasetServiceClient::DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatasetServiceClient::DeleteDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataset(google::cloud::ExperimentalTag{}, + operation); +} + future> DatasetServiceClient::ImportData( std::string const& name, @@ -131,6 +189,21 @@ DatasetServiceClient::ImportData( return connection_->ImportData(request); } +StatusOr DatasetServiceClient::ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + std::vector const& + import_configs, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::ImportDataRequest request; + request.set_name(name); + *request.mutable_import_configs() = {import_configs.begin(), + import_configs.end()}; + return connection_->ImportData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatasetServiceClient::ImportData( google::cloud::aiplatform::v1::ImportDataRequest const& request, @@ -139,6 +212,23 @@ DatasetServiceClient::ImportData( return connection_->ImportData(request); } +StatusOr DatasetServiceClient::ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatasetServiceClient::ImportData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportData(google::cloud::ExperimentalTag{}, operation); +} + future> DatasetServiceClient::ExportData( std::string const& name, @@ -151,6 +241,19 @@ DatasetServiceClient::ExportData( return connection_->ExportData(request); } +StatusOr DatasetServiceClient::ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::aiplatform::v1::ExportDataConfig const& export_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::ExportDataRequest request; + request.set_name(name); + *request.mutable_export_config() = export_config; + return connection_->ExportData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatasetServiceClient::ExportData( google::cloud::aiplatform::v1::ExportDataRequest const& request, @@ -159,6 +262,23 @@ DatasetServiceClient::ExportData( return connection_->ExportData(request); } +StatusOr DatasetServiceClient::ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatasetServiceClient::ExportData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportData(google::cloud::ExperimentalTag{}, operation); +} + future> DatasetServiceClient::CreateDatasetVersion( std::string const& parent, @@ -171,6 +291,20 @@ DatasetServiceClient::CreateDatasetVersion( return connection_->CreateDatasetVersion(request); } +StatusOr +DatasetServiceClient::CreateDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::DatasetVersion const& dataset_version, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateDatasetVersionRequest request; + request.set_parent(parent); + *request.mutable_dataset_version() = dataset_version; + return connection_->CreateDatasetVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DatasetServiceClient::CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request, @@ -179,6 +313,25 @@ DatasetServiceClient::CreateDatasetVersion( return connection_->CreateDatasetVersion(request); } +StatusOr +DatasetServiceClient::CreateDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDatasetVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DatasetServiceClient::CreateDatasetVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDatasetVersion(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DatasetServiceClient::UpdateDatasetVersion( google::cloud::aiplatform::v1::DatasetVersion const& dataset_version, @@ -207,6 +360,18 @@ DatasetServiceClient::DeleteDatasetVersion(std::string const& name, return connection_->DeleteDatasetVersion(request); } +StatusOr +DatasetServiceClient::DeleteDatasetVersion(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest request; + request.set_name(name); + return connection_->DeleteDatasetVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DatasetServiceClient::DeleteDatasetVersion( google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request, @@ -215,6 +380,25 @@ DatasetServiceClient::DeleteDatasetVersion( return connection_->DeleteDatasetVersion(request); } +StatusOr +DatasetServiceClient::DeleteDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDatasetVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DatasetServiceClient::DeleteDatasetVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDatasetVersion(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DatasetServiceClient::GetDatasetVersion(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -257,6 +441,18 @@ DatasetServiceClient::RestoreDatasetVersion(std::string const& name, return connection_->RestoreDatasetVersion(request); } +StatusOr +DatasetServiceClient::RestoreDatasetVersion(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest request; + request.set_name(name); + return connection_->RestoreDatasetVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DatasetServiceClient::RestoreDatasetVersion( google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& request, @@ -265,6 +461,25 @@ DatasetServiceClient::RestoreDatasetVersion( return connection_->RestoreDatasetVersion(request); } +StatusOr +DatasetServiceClient::RestoreDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreDatasetVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DatasetServiceClient::RestoreDatasetVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreDatasetVersion(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DatasetServiceClient::ListDataItems(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -313,6 +528,16 @@ DatasetServiceClient::DeleteSavedQuery(std::string const& name, Options opts) { return connection_->DeleteSavedQuery(request); } +StatusOr DatasetServiceClient::DeleteSavedQuery( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteSavedQueryRequest request; + request.set_name(name); + return connection_->DeleteSavedQuery(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatasetServiceClient::DeleteSavedQuery( google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request, @@ -321,6 +546,24 @@ DatasetServiceClient::DeleteSavedQuery( return connection_->DeleteSavedQuery(request); } +StatusOr DatasetServiceClient::DeleteSavedQuery( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSavedQuery(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatasetServiceClient::DeleteSavedQuery( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSavedQuery(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DatasetServiceClient::GetAnnotationSpec(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/aiplatform/v1/dataset_client.h b/google/cloud/aiplatform/v1/dataset_client.h index cf9c1528ebb0b..caf7c49e68aa7 100644 --- a/google/cloud/aiplatform/v1/dataset_client.h +++ b/google/cloud/aiplatform/v1/dataset_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_DATASET_CLIENT_H #include "google/cloud/aiplatform/v1/dataset_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -122,6 +124,11 @@ class DatasetServiceClient { std::string const& parent, google::cloud::aiplatform::v1::Dataset const& dataset, Options opts = {}); + StatusOr CreateDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Dataset const& dataset, Options opts = {}); + // clang-format off /// /// Creates a Dataset. @@ -160,6 +167,15 @@ class DatasetServiceClient { google::cloud::aiplatform::v1::CreateDatasetRequest const& request, Options opts = {}); + StatusOr CreateDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request, + Options opts = {}); + + future> CreateDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a Dataset. @@ -390,6 +406,10 @@ class DatasetServiceClient { future> DeleteDataset(std::string const& name, Options opts = {}); + StatusOr DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Dataset. @@ -429,6 +449,16 @@ class DatasetServiceClient { google::cloud::aiplatform::v1::DeleteDatasetRequest const& request, Options opts = {}); + StatusOr DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request, + Options opts = {}); + + future> + DeleteDataset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports data into a Dataset. @@ -468,6 +498,13 @@ class DatasetServiceClient { import_configs, Options opts = {}); + StatusOr ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + std::vector const& + import_configs, + Options opts = {}); + // clang-format off /// /// Imports data into a Dataset. @@ -506,6 +543,16 @@ class DatasetServiceClient { ImportData(google::cloud::aiplatform::v1::ImportDataRequest const& request, Options opts = {}); + StatusOr ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request, + Options opts = {}); + + future> + ImportData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Exports data from a Dataset. @@ -544,6 +591,12 @@ class DatasetServiceClient { google::cloud::aiplatform::v1::ExportDataConfig const& export_config, Options opts = {}); + StatusOr ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::aiplatform::v1::ExportDataConfig const& export_config, + Options opts = {}); + // clang-format off /// /// Exports data from a Dataset. @@ -582,6 +635,16 @@ class DatasetServiceClient { ExportData(google::cloud::aiplatform::v1::ExportDataRequest const& request, Options opts = {}); + StatusOr ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request, + Options opts = {}); + + future> + ExportData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Create a version from a Dataset. @@ -622,6 +685,12 @@ class DatasetServiceClient { google::cloud::aiplatform::v1::DatasetVersion const& dataset_version, Options opts = {}); + StatusOr CreateDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::DatasetVersion const& dataset_version, + Options opts = {}); + // clang-format off /// /// Create a version from a Dataset. @@ -661,6 +730,16 @@ class DatasetServiceClient { google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request, Options opts = {}); + StatusOr CreateDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request, + Options opts = {}); + + future> + CreateDatasetVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a DatasetVersion. @@ -758,6 +837,10 @@ class DatasetServiceClient { future> DeleteDatasetVersion(std::string const& name, Options opts = {}); + StatusOr DeleteDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Dataset version. @@ -797,6 +880,16 @@ class DatasetServiceClient { google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request, Options opts = {}); + StatusOr DeleteDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request, + Options opts = {}); + + future> + DeleteDatasetVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a Dataset version. @@ -966,6 +1059,10 @@ class DatasetServiceClient { future> RestoreDatasetVersion(std::string const& name, Options opts = {}); + StatusOr RestoreDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Restores a dataset version. @@ -1006,6 +1103,17 @@ class DatasetServiceClient { request, Options opts = {}); + StatusOr RestoreDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request, + Options opts = {}); + + future> + RestoreDatasetVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists DataItems in a Dataset. @@ -1232,6 +1340,10 @@ class DatasetServiceClient { future> DeleteSavedQuery(std::string const& name, Options opts = {}); + StatusOr DeleteSavedQuery( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a SavedQuery. @@ -1271,6 +1383,16 @@ class DatasetServiceClient { google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request, Options opts = {}); + StatusOr DeleteSavedQuery( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request, + Options opts = {}); + + future> + DeleteSavedQuery(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets an AnnotationSpec. 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_client.cc b/google/cloud/aiplatform/v1/deployment_resource_pool_client.cc index c58bcb19a5b94..16ac01c2a1d34 100644 --- a/google/cloud/aiplatform/v1/deployment_resource_pool_client.cc +++ b/google/cloud/aiplatform/v1/deployment_resource_pool_client.cc @@ -48,6 +48,22 @@ DeploymentResourcePoolServiceClient::CreateDeploymentResourcePool( return connection_->CreateDeploymentResourcePool(request); } +StatusOr +DeploymentResourcePoolServiceClient::CreateDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::DeploymentResourcePool const& + deployment_resource_pool, + std::string const& deployment_resource_pool_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest request; + request.set_parent(parent); + *request.mutable_deployment_resource_pool() = deployment_resource_pool; + request.set_deployment_resource_pool_id(deployment_resource_pool_id); + return connection_->CreateDeploymentResourcePool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DeploymentResourcePoolServiceClient::CreateDeploymentResourcePool( google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& @@ -57,6 +73,26 @@ DeploymentResourcePoolServiceClient::CreateDeploymentResourcePool( return connection_->CreateDeploymentResourcePool(request); } +StatusOr +DeploymentResourcePoolServiceClient::CreateDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDeploymentResourcePool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DeploymentResourcePoolServiceClient::CreateDeploymentResourcePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDeploymentResourcePool( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr DeploymentResourcePoolServiceClient::GetDeploymentResourcePool( std::string const& name, Options opts) { @@ -101,6 +137,17 @@ DeploymentResourcePoolServiceClient::DeleteDeploymentResourcePool( return connection_->DeleteDeploymentResourcePool(request); } +StatusOr +DeploymentResourcePoolServiceClient::DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest request; + request.set_name(name); + return connection_->DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DeploymentResourcePoolServiceClient::DeleteDeploymentResourcePool( google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& @@ -110,6 +157,26 @@ DeploymentResourcePoolServiceClient::DeleteDeploymentResourcePool( return connection_->DeleteDeploymentResourcePool(request); } +StatusOr +DeploymentResourcePoolServiceClient::DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DeploymentResourcePoolServiceClient::DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/deployment_resource_pool_client.h b/google/cloud/aiplatform/v1/deployment_resource_pool_client.h index 0258d2deb583c..de090ce5f2c1a 100644 --- a/google/cloud/aiplatform/v1/deployment_resource_pool_client.h +++ b/google/cloud/aiplatform/v1/deployment_resource_pool_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_DEPLOYMENT_RESOURCE_POOL_CLIENT_H #include "google/cloud/aiplatform/v1/deployment_resource_pool_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -135,6 +137,13 @@ class DeploymentResourcePoolServiceClient { deployment_resource_pool, std::string const& deployment_resource_pool_id, Options opts = {}); + StatusOr CreateDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::DeploymentResourcePool const& + deployment_resource_pool, + std::string const& deployment_resource_pool_id, Options opts = {}); + // clang-format off /// /// Create a DeploymentResourcePool. @@ -175,6 +184,17 @@ class DeploymentResourcePoolServiceClient { request, Options opts = {}); + StatusOr CreateDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request, + Options opts = {}); + + future> + CreateDeploymentResourcePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Get a DeploymentResourcePool. @@ -345,6 +365,10 @@ class DeploymentResourcePoolServiceClient { future> DeleteDeploymentResourcePool(std::string const& name, Options opts = {}); + StatusOr DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete a DeploymentResourcePool. @@ -385,6 +409,17 @@ class DeploymentResourcePoolServiceClient { request, Options opts = {}); + StatusOr DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request, + Options opts = {}); + + future> + DeleteDeploymentResourcePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/aiplatform/v1/endpoint_client.cc index aebdc36a0a74d..503e40f8018b8 100644 --- a/google/cloud/aiplatform/v1/endpoint_client.cc +++ b/google/cloud/aiplatform/v1/endpoint_client.cc @@ -43,6 +43,18 @@ EndpointServiceClient::CreateEndpoint( return connection_->CreateEndpoint(request); } +StatusOr EndpointServiceClient::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Endpoint const& endpoint, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateEndpointRequest request; + request.set_parent(parent); + *request.mutable_endpoint() = endpoint; + return connection_->CreateEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EndpointServiceClient::CreateEndpoint( std::string const& parent, @@ -56,6 +68,20 @@ EndpointServiceClient::CreateEndpoint( return connection_->CreateEndpoint(request); } +StatusOr EndpointServiceClient::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Endpoint const& endpoint, + std::string const& endpoint_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateEndpointRequest request; + request.set_parent(parent); + *request.mutable_endpoint() = endpoint; + request.set_endpoint_id(endpoint_id); + return connection_->CreateEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EndpointServiceClient::CreateEndpoint( google::cloud::aiplatform::v1::CreateEndpointRequest const& request, @@ -64,6 +90,24 @@ EndpointServiceClient::CreateEndpoint( return connection_->CreateEndpoint(request); } +StatusOr EndpointServiceClient::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EndpointServiceClient::CreateEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEndpoint(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EndpointServiceClient::GetEndpoint(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -122,6 +166,16 @@ EndpointServiceClient::DeleteEndpoint(std::string const& name, Options opts) { return connection_->DeleteEndpoint(request); } +StatusOr EndpointServiceClient::DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteEndpointRequest request; + request.set_name(name); + return connection_->DeleteEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EndpointServiceClient::DeleteEndpoint( google::cloud::aiplatform::v1::DeleteEndpointRequest const& request, @@ -130,6 +184,24 @@ EndpointServiceClient::DeleteEndpoint( return connection_->DeleteEndpoint(request); } +StatusOr EndpointServiceClient::DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EndpointServiceClient::DeleteEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEndpoint(google::cloud::ExperimentalTag{}, + operation); +} + future> EndpointServiceClient::DeployModel( std::string const& endpoint, @@ -144,6 +216,21 @@ EndpointServiceClient::DeployModel( return connection_->DeployModel(request); } +StatusOr EndpointServiceClient::DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& endpoint, + google::cloud::aiplatform::v1::DeployedModel const& deployed_model, + std::map const& traffic_split, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeployModelRequest request; + request.set_endpoint(endpoint); + *request.mutable_deployed_model() = deployed_model; + *request.mutable_traffic_split() = {traffic_split.begin(), + traffic_split.end()}; + return connection_->DeployModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EndpointServiceClient::DeployModel( google::cloud::aiplatform::v1::DeployModelRequest const& request, @@ -152,6 +239,23 @@ EndpointServiceClient::DeployModel( return connection_->DeployModel(request); } +StatusOr EndpointServiceClient::DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EndpointServiceClient::DeployModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployModel(google::cloud::ExperimentalTag{}, operation); +} + future> EndpointServiceClient::UndeployModel( std::string const& endpoint, std::string const& deployed_model_id, @@ -165,6 +269,20 @@ EndpointServiceClient::UndeployModel( return connection_->UndeployModel(request); } +StatusOr EndpointServiceClient::UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& endpoint, std::string const& deployed_model_id, + std::map const& traffic_split, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UndeployModelRequest request; + request.set_endpoint(endpoint); + request.set_deployed_model_id(deployed_model_id); + *request.mutable_traffic_split() = {traffic_split.begin(), + traffic_split.end()}; + return connection_->UndeployModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EndpointServiceClient::UndeployModel( google::cloud::aiplatform::v1::UndeployModelRequest const& request, @@ -173,6 +291,24 @@ EndpointServiceClient::UndeployModel( return connection_->UndeployModel(request); } +StatusOr EndpointServiceClient::UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EndpointServiceClient::UndeployModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployModel(google::cloud::ExperimentalTag{}, + operation); +} + future> EndpointServiceClient::MutateDeployedModel( std::string const& endpoint, @@ -186,6 +322,21 @@ EndpointServiceClient::MutateDeployedModel( return connection_->MutateDeployedModel(request); } +StatusOr +EndpointServiceClient::MutateDeployedModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& endpoint, + google::cloud::aiplatform::v1::DeployedModel const& deployed_model, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::MutateDeployedModelRequest request; + request.set_endpoint(endpoint); + *request.mutable_deployed_model() = deployed_model; + *request.mutable_update_mask() = update_mask; + return connection_->MutateDeployedModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EndpointServiceClient::MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request, @@ -194,6 +345,25 @@ EndpointServiceClient::MutateDeployedModel( return connection_->MutateDeployedModel(request); } +StatusOr +EndpointServiceClient::MutateDeployedModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MutateDeployedModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EndpointServiceClient::MutateDeployedModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MutateDeployedModel(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/endpoint_client.h b/google/cloud/aiplatform/v1/endpoint_client.h index 61eea992a9bc8..3f66db3694c5b 100644 --- a/google/cloud/aiplatform/v1/endpoint_client.h +++ b/google/cloud/aiplatform/v1/endpoint_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_ENDPOINT_CLIENT_H #include "google/cloud/aiplatform/v1/endpoint_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -123,6 +125,12 @@ class EndpointServiceClient { google::cloud::aiplatform::v1::Endpoint const& endpoint, Options opts = {}); + StatusOr CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Endpoint const& endpoint, + Options opts = {}); + // clang-format off /// /// Creates an Endpoint. @@ -173,6 +181,12 @@ class EndpointServiceClient { google::cloud::aiplatform::v1::Endpoint const& endpoint, std::string const& endpoint_id, Options opts = {}); + StatusOr CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Endpoint const& endpoint, + std::string const& endpoint_id, Options opts = {}); + // clang-format off /// /// Creates an Endpoint. @@ -211,6 +225,15 @@ class EndpointServiceClient { google::cloud::aiplatform::v1::CreateEndpointRequest const& request, Options opts = {}); + StatusOr CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request, + Options opts = {}); + + future> CreateEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets an Endpoint. @@ -438,6 +461,10 @@ class EndpointServiceClient { future> DeleteEndpoint(std::string const& name, Options opts = {}); + StatusOr DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an Endpoint. @@ -477,6 +504,16 @@ class EndpointServiceClient { google::cloud::aiplatform::v1::DeleteEndpointRequest const& request, Options opts = {}); + StatusOr DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request, + Options opts = {}); + + future> + DeleteEndpoint(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deploys a Model into this Endpoint, creating a DeployedModel within it. @@ -535,6 +572,13 @@ class EndpointServiceClient { std::map const& traffic_split, Options opts = {}); + StatusOr DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& endpoint, + google::cloud::aiplatform::v1::DeployedModel const& deployed_model, + std::map const& traffic_split, + Options opts = {}); + // clang-format off /// /// Deploys a Model into this Endpoint, creating a DeployedModel within it. @@ -573,6 +617,16 @@ class EndpointServiceClient { DeployModel(google::cloud::aiplatform::v1::DeployModelRequest const& request, Options opts = {}); + StatusOr DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request, + Options opts = {}); + + future> + DeployModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Undeploys a Model from an Endpoint, removing a DeployedModel from it, and @@ -620,6 +674,12 @@ class EndpointServiceClient { std::map const& traffic_split, Options opts = {}); + StatusOr UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& endpoint, std::string const& deployed_model_id, + std::map const& traffic_split, + Options opts = {}); + // clang-format off /// /// Undeploys a Model from an Endpoint, removing a DeployedModel from it, and @@ -660,6 +720,16 @@ class EndpointServiceClient { google::cloud::aiplatform::v1::UndeployModelRequest const& request, Options opts = {}); + StatusOr UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request, + Options opts = {}); + + future> + UndeployModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an existing deployed model. Updatable fields include @@ -718,6 +788,12 @@ class EndpointServiceClient { google::cloud::aiplatform::v1::DeployedModel const& deployed_model, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr MutateDeployedModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& endpoint, + google::cloud::aiplatform::v1::DeployedModel const& deployed_model, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an existing deployed model. Updatable fields include @@ -760,6 +836,16 @@ class EndpointServiceClient { google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request, Options opts = {}); + StatusOr MutateDeployedModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request, + Options opts = {}); + + future> + MutateDeployedModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/aiplatform/v1/feature_online_store_admin_client.cc index dd365d2f4555e..01832ce74be2b 100644 --- a/google/cloud/aiplatform/v1/feature_online_store_admin_client.cc +++ b/google/cloud/aiplatform/v1/feature_online_store_admin_client.cc @@ -48,6 +48,22 @@ FeatureOnlineStoreAdminServiceClient::CreateFeatureOnlineStore( return connection_->CreateFeatureOnlineStore(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::CreateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::FeatureOnlineStore const& + feature_online_store, + std::string const& feature_online_store_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest request; + request.set_parent(parent); + *request.mutable_feature_online_store() = feature_online_store; + request.set_feature_online_store_id(feature_online_store_id); + return connection_->CreateFeatureOnlineStore( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> FeatureOnlineStoreAdminServiceClient::CreateFeatureOnlineStore( google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& @@ -57,6 +73,26 @@ FeatureOnlineStoreAdminServiceClient::CreateFeatureOnlineStore( return connection_->CreateFeatureOnlineStore(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::CreateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeatureOnlineStore( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureOnlineStoreAdminServiceClient::CreateFeatureOnlineStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeatureOnlineStore(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FeatureOnlineStoreAdminServiceClient::GetFeatureOnlineStore( std::string const& name, Options opts) { @@ -103,6 +139,20 @@ FeatureOnlineStoreAdminServiceClient::UpdateFeatureOnlineStore( return connection_->UpdateFeatureOnlineStore(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::FeatureOnlineStore const& + feature_online_store, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest request; + *request.mutable_feature_online_store() = feature_online_store; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> FeatureOnlineStoreAdminServiceClient::UpdateFeatureOnlineStore( google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& @@ -112,6 +162,26 @@ FeatureOnlineStoreAdminServiceClient::UpdateFeatureOnlineStore( return connection_->UpdateFeatureOnlineStore(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureOnlineStoreAdminServiceClient::UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeatureOnlineStore(google::cloud::ExperimentalTag{}, + operation); +} + future> FeatureOnlineStoreAdminServiceClient::DeleteFeatureOnlineStore( std::string const& name, bool force, Options opts) { @@ -122,6 +192,18 @@ FeatureOnlineStoreAdminServiceClient::DeleteFeatureOnlineStore( return connection_->DeleteFeatureOnlineStore(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, bool force, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest request; + request.set_name(name); + request.set_force(force); + return connection_->DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> FeatureOnlineStoreAdminServiceClient::DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& @@ -131,6 +213,26 @@ FeatureOnlineStoreAdminServiceClient::DeleteFeatureOnlineStore( return connection_->DeleteFeatureOnlineStore(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureOnlineStoreAdminServiceClient::DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeatureOnlineStore(google::cloud::ExperimentalTag{}, + operation); +} + future> FeatureOnlineStoreAdminServiceClient::CreateFeatureView( std::string const& parent, @@ -144,6 +246,21 @@ FeatureOnlineStoreAdminServiceClient::CreateFeatureView( return connection_->CreateFeatureView(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::CreateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::FeatureView const& feature_view, + std::string const& feature_view_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateFeatureViewRequest request; + request.set_parent(parent); + *request.mutable_feature_view() = feature_view; + request.set_feature_view_id(feature_view_id); + return connection_->CreateFeatureView(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureOnlineStoreAdminServiceClient::CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request, @@ -152,6 +269,25 @@ FeatureOnlineStoreAdminServiceClient::CreateFeatureView( return connection_->CreateFeatureView(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::CreateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeatureView(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureOnlineStoreAdminServiceClient::CreateFeatureView( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeatureView(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FeatureOnlineStoreAdminServiceClient::GetFeatureView(std::string const& name, Options opts) { @@ -197,6 +333,19 @@ FeatureOnlineStoreAdminServiceClient::UpdateFeatureView( return connection_->UpdateFeatureView(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::UpdateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::FeatureView const& feature_view, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateFeatureViewRequest request; + *request.mutable_feature_view() = feature_view; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFeatureView(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureOnlineStoreAdminServiceClient::UpdateFeatureView( google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request, @@ -205,6 +354,25 @@ FeatureOnlineStoreAdminServiceClient::UpdateFeatureView( return connection_->UpdateFeatureView(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::UpdateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeatureView(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureOnlineStoreAdminServiceClient::UpdateFeatureView( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeatureView(google::cloud::ExperimentalTag{}, + operation); +} + future> FeatureOnlineStoreAdminServiceClient::DeleteFeatureView(std::string const& name, Options opts) { @@ -214,6 +382,17 @@ FeatureOnlineStoreAdminServiceClient::DeleteFeatureView(std::string const& name, return connection_->DeleteFeatureView(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::DeleteFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteFeatureViewRequest request; + request.set_name(name); + return connection_->DeleteFeatureView(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureOnlineStoreAdminServiceClient::DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request, @@ -222,6 +401,25 @@ FeatureOnlineStoreAdminServiceClient::DeleteFeatureView( return connection_->DeleteFeatureView(request); } +StatusOr +FeatureOnlineStoreAdminServiceClient::DeleteFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeatureView(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureOnlineStoreAdminServiceClient::DeleteFeatureView( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeatureView(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FeatureOnlineStoreAdminServiceClient::SyncFeatureView( std::string const& feature_view, Options opts) { diff --git a/google/cloud/aiplatform/v1/feature_online_store_admin_client.h b/google/cloud/aiplatform/v1/feature_online_store_admin_client.h index ac1547c0f1fc2..ea192d5c8bf67 100644 --- a/google/cloud/aiplatform/v1/feature_online_store_admin_client.h +++ b/google/cloud/aiplatform/v1/feature_online_store_admin_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_FEATURE_ONLINE_STORE_ADMIN_CLIENT_H #include "google/cloud/aiplatform/v1/feature_online_store_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -139,6 +141,13 @@ class FeatureOnlineStoreAdminServiceClient { feature_online_store, std::string const& feature_online_store_id, Options opts = {}); + StatusOr CreateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::FeatureOnlineStore const& + feature_online_store, + std::string const& feature_online_store_id, Options opts = {}); + // clang-format off /// /// Creates a new FeatureOnlineStore in a given project and location. @@ -179,6 +188,17 @@ class FeatureOnlineStoreAdminServiceClient { request, Options opts = {}); + StatusOr CreateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request, + Options opts = {}); + + future> + CreateFeatureOnlineStore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single FeatureOnlineStore. @@ -365,6 +385,12 @@ class FeatureOnlineStoreAdminServiceClient { feature_online_store, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::FeatureOnlineStore const& + feature_online_store, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single FeatureOnlineStore. @@ -405,6 +431,17 @@ class FeatureOnlineStoreAdminServiceClient { request, Options opts = {}); + StatusOr UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request, + Options opts = {}); + + future> + UpdateFeatureOnlineStore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single FeatureOnlineStore. The FeatureOnlineStore must not @@ -444,6 +481,10 @@ class FeatureOnlineStoreAdminServiceClient { DeleteFeatureOnlineStore(std::string const& name, bool force, Options opts = {}); + StatusOr DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, bool force, Options opts = {}); + // clang-format off /// /// Deletes a single FeatureOnlineStore. The FeatureOnlineStore must not @@ -485,6 +526,17 @@ class FeatureOnlineStoreAdminServiceClient { request, Options opts = {}); + StatusOr DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request, + Options opts = {}); + + future> + DeleteFeatureOnlineStore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new FeatureView in a given FeatureOnlineStore. @@ -530,6 +582,12 @@ class FeatureOnlineStoreAdminServiceClient { google::cloud::aiplatform::v1::FeatureView const& feature_view, std::string const& feature_view_id, Options opts = {}); + StatusOr CreateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::FeatureView const& feature_view, + std::string const& feature_view_id, Options opts = {}); + // clang-format off /// /// Creates a new FeatureView in a given FeatureOnlineStore. @@ -569,6 +627,16 @@ class FeatureOnlineStoreAdminServiceClient { google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request, Options opts = {}); + StatusOr CreateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request, + Options opts = {}); + + future> + CreateFeatureView(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single FeatureView. @@ -751,6 +819,11 @@ class FeatureOnlineStoreAdminServiceClient { google::cloud::aiplatform::v1::FeatureView const& feature_view, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::FeatureView const& feature_view, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single FeatureView. @@ -790,6 +863,16 @@ class FeatureOnlineStoreAdminServiceClient { google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request, Options opts = {}); + StatusOr UpdateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request, + Options opts = {}); + + future> + UpdateFeatureView(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single FeatureView. @@ -824,6 +907,10 @@ class FeatureOnlineStoreAdminServiceClient { future> DeleteFeatureView(std::string const& name, Options opts = {}); + StatusOr DeleteFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single FeatureView. @@ -863,6 +950,16 @@ class FeatureOnlineStoreAdminServiceClient { google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request, Options opts = {}); + StatusOr DeleteFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request, + Options opts = {}); + + future> + DeleteFeatureView(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Triggers on-demand sync for the FeatureView. 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_client.h b/google/cloud/aiplatform/v1/feature_online_store_client.h index 7f7aa3c05dc1b..3cdf6e2d99320 100644 --- a/google/cloud/aiplatform/v1/feature_online_store_client.h +++ b/google/cloud/aiplatform/v1/feature_online_store_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_FEATURE_ONLINE_STORE_CLIENT_H #include "google/cloud/aiplatform/v1/feature_online_store_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/aiplatform/v1/feature_registry_client.cc index 4259cd4768e71..f3981ccbe22e7 100644 --- a/google/cloud/aiplatform/v1/feature_registry_client.cc +++ b/google/cloud/aiplatform/v1/feature_registry_client.cc @@ -45,6 +45,21 @@ FeatureRegistryServiceClient::CreateFeatureGroup( return connection_->CreateFeatureGroup(request); } +StatusOr +FeatureRegistryServiceClient::CreateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::FeatureGroup const& feature_group, + std::string const& feature_group_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateFeatureGroupRequest request; + request.set_parent(parent); + *request.mutable_feature_group() = feature_group; + request.set_feature_group_id(feature_group_id); + return connection_->CreateFeatureGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureRegistryServiceClient::CreateFeatureGroup( google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request, @@ -53,6 +68,25 @@ FeatureRegistryServiceClient::CreateFeatureGroup( return connection_->CreateFeatureGroup(request); } +StatusOr +FeatureRegistryServiceClient::CreateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeatureGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureRegistryServiceClient::CreateFeatureGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeatureGroup(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FeatureRegistryServiceClient::GetFeatureGroup(std::string const& name, Options opts) { @@ -98,6 +132,19 @@ FeatureRegistryServiceClient::UpdateFeatureGroup( return connection_->UpdateFeatureGroup(request); } +StatusOr +FeatureRegistryServiceClient::UpdateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::FeatureGroup const& feature_group, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest request; + *request.mutable_feature_group() = feature_group; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFeatureGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureRegistryServiceClient::UpdateFeatureGroup( google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request, @@ -106,6 +153,25 @@ FeatureRegistryServiceClient::UpdateFeatureGroup( return connection_->UpdateFeatureGroup(request); } +StatusOr +FeatureRegistryServiceClient::UpdateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeatureGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureRegistryServiceClient::UpdateFeatureGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeatureGroup(google::cloud::ExperimentalTag{}, + operation); +} + future> FeatureRegistryServiceClient::DeleteFeatureGroup(std::string const& name, bool force, Options opts) { @@ -116,6 +182,19 @@ FeatureRegistryServiceClient::DeleteFeatureGroup(std::string const& name, return connection_->DeleteFeatureGroup(request); } +StatusOr +FeatureRegistryServiceClient::DeleteFeatureGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + bool force, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest request; + request.set_name(name); + request.set_force(force); + return connection_->DeleteFeatureGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureRegistryServiceClient::DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request, @@ -124,6 +203,25 @@ FeatureRegistryServiceClient::DeleteFeatureGroup( return connection_->DeleteFeatureGroup(request); } +StatusOr +FeatureRegistryServiceClient::DeleteFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeatureGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureRegistryServiceClient::DeleteFeatureGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeatureGroup(google::cloud::ExperimentalTag{}, + operation); +} + future> FeatureRegistryServiceClient::CreateFeature( std::string const& parent, @@ -137,6 +235,21 @@ FeatureRegistryServiceClient::CreateFeature( return connection_->CreateFeature(request); } +StatusOr +FeatureRegistryServiceClient::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Feature const& feature, + std::string const& feature_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateFeatureRequest request; + request.set_parent(parent); + *request.mutable_feature() = feature; + request.set_feature_id(feature_id); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureRegistryServiceClient::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request, @@ -145,6 +258,25 @@ FeatureRegistryServiceClient::CreateFeature( return connection_->CreateFeature(request); } +StatusOr +FeatureRegistryServiceClient::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureRegistryServiceClient::CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FeatureRegistryServiceClient::GetFeature(std::string const& name, Options opts) { @@ -189,6 +321,19 @@ FeatureRegistryServiceClient::UpdateFeature( return connection_->UpdateFeature(request); } +StatusOr +FeatureRegistryServiceClient::UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::Feature const& feature, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateFeatureRequest request; + *request.mutable_feature() = feature; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureRegistryServiceClient::UpdateFeature( google::cloud::aiplatform::v1::UpdateFeatureRequest const& request, @@ -197,6 +342,25 @@ FeatureRegistryServiceClient::UpdateFeature( return connection_->UpdateFeature(request); } +StatusOr +FeatureRegistryServiceClient::UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureRegistryServiceClient::UpdateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeature(google::cloud::ExperimentalTag{}, + operation); +} + future> FeatureRegistryServiceClient::DeleteFeature(std::string const& name, Options opts) { @@ -206,6 +370,18 @@ FeatureRegistryServiceClient::DeleteFeature(std::string const& name, return connection_->DeleteFeature(request); } +StatusOr +FeatureRegistryServiceClient::DeleteFeature(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteFeatureRequest request; + request.set_name(name); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeatureRegistryServiceClient::DeleteFeature( google::cloud::aiplatform::v1::DeleteFeatureRequest const& request, @@ -214,6 +390,25 @@ FeatureRegistryServiceClient::DeleteFeature( return connection_->DeleteFeature(request); } +StatusOr +FeatureRegistryServiceClient::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeatureRegistryServiceClient::DeleteFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/feature_registry_client.h b/google/cloud/aiplatform/v1/feature_registry_client.h index a66c1024b3b2f..e5abb3d6ef9cf 100644 --- a/google/cloud/aiplatform/v1/feature_registry_client.h +++ b/google/cloud/aiplatform/v1/feature_registry_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_FEATURE_REGISTRY_CLIENT_H #include "google/cloud/aiplatform/v1/feature_registry_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -136,6 +138,12 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::FeatureGroup const& feature_group, std::string const& feature_group_id, Options opts = {}); + StatusOr CreateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::FeatureGroup const& feature_group, + std::string const& feature_group_id, Options opts = {}); + // clang-format off /// /// Creates a new FeatureGroup in a given project and location. @@ -175,6 +183,16 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request, Options opts = {}); + StatusOr CreateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request, + Options opts = {}); + + future> + CreateFeatureGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single FeatureGroup. @@ -354,6 +372,11 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::FeatureGroup const& feature_group, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::FeatureGroup const& feature_group, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single FeatureGroup. @@ -393,6 +416,16 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request, Options opts = {}); + StatusOr UpdateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request, + Options opts = {}); + + future> + UpdateFeatureGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single FeatureGroup. @@ -430,6 +463,10 @@ class FeatureRegistryServiceClient { future> DeleteFeatureGroup(std::string const& name, bool force, Options opts = {}); + StatusOr DeleteFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, bool force, Options opts = {}); + // clang-format off /// /// Deletes a single FeatureGroup. @@ -469,6 +506,16 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request, Options opts = {}); + StatusOr DeleteFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request, + Options opts = {}); + + future> + DeleteFeatureGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new Feature in a given FeatureGroup. @@ -515,6 +562,12 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::Feature const& feature, std::string const& feature_id, Options opts = {}); + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Feature const& feature, + std::string const& feature_id, Options opts = {}); + // clang-format off /// /// Creates a new Feature in a given FeatureGroup. @@ -553,6 +606,15 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::CreateFeatureRequest const& request, Options opts = {}); + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request, + Options opts = {}); + + future> CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets details of a single Feature. @@ -741,6 +803,11 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::Feature const& feature, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::Feature const& feature, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Feature. @@ -779,6 +846,15 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::UpdateFeatureRequest const& request, Options opts = {}); + StatusOr UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request, + Options opts = {}); + + future> UpdateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Feature. @@ -814,6 +890,10 @@ class FeatureRegistryServiceClient { future> DeleteFeature(std::string const& name, Options opts = {}); + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Feature. @@ -853,6 +933,16 @@ class FeatureRegistryServiceClient { google::cloud::aiplatform::v1::DeleteFeatureRequest const& request, Options opts = {}); + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request, + Options opts = {}); + + future> + DeleteFeature(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/aiplatform/v1/featurestore_client.cc index 5b593f8efb516..d9a8a0f2e72c1 100644 --- a/google/cloud/aiplatform/v1/featurestore_client.cc +++ b/google/cloud/aiplatform/v1/featurestore_client.cc @@ -44,6 +44,20 @@ FeaturestoreServiceClient::CreateFeaturestore( return connection_->CreateFeaturestore(request); } +StatusOr +FeaturestoreServiceClient::CreateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Featurestore const& featurestore, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateFeaturestoreRequest request; + request.set_parent(parent); + *request.mutable_featurestore() = featurestore; + return connection_->CreateFeaturestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::CreateFeaturestore( std::string const& parent, @@ -57,6 +71,21 @@ FeaturestoreServiceClient::CreateFeaturestore( return connection_->CreateFeaturestore(request); } +StatusOr +FeaturestoreServiceClient::CreateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Featurestore const& featurestore, + std::string const& featurestore_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateFeaturestoreRequest request; + request.set_parent(parent); + *request.mutable_featurestore() = featurestore; + request.set_featurestore_id(featurestore_id); + return connection_->CreateFeaturestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::CreateFeaturestore( google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request, @@ -65,6 +94,25 @@ FeaturestoreServiceClient::CreateFeaturestore( return connection_->CreateFeaturestore(request); } +StatusOr +FeaturestoreServiceClient::CreateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeaturestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::CreateFeaturestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeaturestore(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FeaturestoreServiceClient::GetFeaturestore(std::string const& name, Options opts) { @@ -110,6 +158,19 @@ FeaturestoreServiceClient::UpdateFeaturestore( return connection_->UpdateFeaturestore(request); } +StatusOr +FeaturestoreServiceClient::UpdateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::Featurestore const& featurestore, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest request; + *request.mutable_featurestore() = featurestore; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFeaturestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::UpdateFeaturestore( google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request, @@ -118,6 +179,25 @@ FeaturestoreServiceClient::UpdateFeaturestore( return connection_->UpdateFeaturestore(request); } +StatusOr +FeaturestoreServiceClient::UpdateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeaturestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::UpdateFeaturestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeaturestore(google::cloud::ExperimentalTag{}, + operation); +} + future> FeaturestoreServiceClient::DeleteFeaturestore(std::string const& name, Options opts) { @@ -127,6 +207,18 @@ FeaturestoreServiceClient::DeleteFeaturestore(std::string const& name, return connection_->DeleteFeaturestore(request); } +StatusOr +FeaturestoreServiceClient::DeleteFeaturestore(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest request; + request.set_name(name); + return connection_->DeleteFeaturestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::DeleteFeaturestore(std::string const& name, bool force, Options opts) { @@ -137,6 +229,19 @@ FeaturestoreServiceClient::DeleteFeaturestore(std::string const& name, return connection_->DeleteFeaturestore(request); } +StatusOr +FeaturestoreServiceClient::DeleteFeaturestore(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + bool force, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest request; + request.set_name(name); + request.set_force(force); + return connection_->DeleteFeaturestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request, @@ -145,6 +250,25 @@ FeaturestoreServiceClient::DeleteFeaturestore( return connection_->DeleteFeaturestore(request); } +StatusOr +FeaturestoreServiceClient::DeleteFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeaturestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::DeleteFeaturestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeaturestore(google::cloud::ExperimentalTag{}, + operation); +} + future> FeaturestoreServiceClient::CreateEntityType( std::string const& parent, @@ -157,6 +281,20 @@ FeaturestoreServiceClient::CreateEntityType( return connection_->CreateEntityType(request); } +StatusOr +FeaturestoreServiceClient::CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::EntityType const& entity_type, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateEntityTypeRequest request; + request.set_parent(parent); + *request.mutable_entity_type() = entity_type; + return connection_->CreateEntityType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::CreateEntityType( std::string const& parent, @@ -170,6 +308,21 @@ FeaturestoreServiceClient::CreateEntityType( return connection_->CreateEntityType(request); } +StatusOr +FeaturestoreServiceClient::CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::EntityType const& entity_type, + std::string const& entity_type_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateEntityTypeRequest request; + request.set_parent(parent); + *request.mutable_entity_type() = entity_type; + request.set_entity_type_id(entity_type_id); + return connection_->CreateEntityType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request, @@ -178,6 +331,25 @@ FeaturestoreServiceClient::CreateEntityType( return connection_->CreateEntityType(request); } +StatusOr +FeaturestoreServiceClient::CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEntityType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::CreateEntityType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEntityType(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FeaturestoreServiceClient::GetEntityType(std::string const& name, Options opts) { @@ -240,6 +412,18 @@ FeaturestoreServiceClient::DeleteEntityType(std::string const& name, return connection_->DeleteEntityType(request); } +StatusOr +FeaturestoreServiceClient::DeleteEntityType(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteEntityTypeRequest request; + request.set_name(name); + return connection_->DeleteEntityType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::DeleteEntityType(std::string const& name, bool force, Options opts) { @@ -250,6 +434,19 @@ FeaturestoreServiceClient::DeleteEntityType(std::string const& name, bool force, return connection_->DeleteEntityType(request); } +StatusOr +FeaturestoreServiceClient::DeleteEntityType(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, bool force, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteEntityTypeRequest request; + request.set_name(name); + request.set_force(force); + return connection_->DeleteEntityType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::DeleteEntityType( google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request, @@ -258,6 +455,25 @@ FeaturestoreServiceClient::DeleteEntityType( return connection_->DeleteEntityType(request); } +StatusOr +FeaturestoreServiceClient::DeleteEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEntityType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::DeleteEntityType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEntityType(google::cloud::ExperimentalTag{}, + operation); +} + future> FeaturestoreServiceClient::CreateFeature( std::string const& parent, @@ -269,6 +485,19 @@ FeaturestoreServiceClient::CreateFeature( return connection_->CreateFeature(request); } +StatusOr +FeaturestoreServiceClient::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Feature const& feature, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateFeatureRequest request; + request.set_parent(parent); + *request.mutable_feature() = feature; + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::CreateFeature( std::string const& parent, @@ -282,6 +511,21 @@ FeaturestoreServiceClient::CreateFeature( return connection_->CreateFeature(request); } +StatusOr +FeaturestoreServiceClient::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Feature const& feature, + std::string const& feature_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateFeatureRequest request; + request.set_parent(parent); + *request.mutable_feature() = feature; + request.set_feature_id(feature_id); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request, @@ -290,6 +534,25 @@ FeaturestoreServiceClient::CreateFeature( return connection_->CreateFeature(request); } +StatusOr +FeaturestoreServiceClient::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + operation); +} + future> FeaturestoreServiceClient::BatchCreateFeatures( std::string const& parent, @@ -303,6 +566,21 @@ FeaturestoreServiceClient::BatchCreateFeatures( return connection_->BatchCreateFeatures(request); } +StatusOr +FeaturestoreServiceClient::BatchCreateFeatures( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + requests, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest request; + request.set_parent(parent); + *request.mutable_requests() = {requests.begin(), requests.end()}; + return connection_->BatchCreateFeatures(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request, @@ -311,6 +589,25 @@ FeaturestoreServiceClient::BatchCreateFeatures( return connection_->BatchCreateFeatures(request); } +StatusOr +FeaturestoreServiceClient::BatchCreateFeatures( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateFeatures(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::BatchCreateFeatures( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateFeatures(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FeaturestoreServiceClient::GetFeature(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -371,6 +668,18 @@ FeaturestoreServiceClient::DeleteFeature(std::string const& name, return connection_->DeleteFeature(request); } +StatusOr +FeaturestoreServiceClient::DeleteFeature(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteFeatureRequest request; + request.set_name(name); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::DeleteFeature( google::cloud::aiplatform::v1::DeleteFeatureRequest const& request, @@ -379,6 +688,25 @@ FeaturestoreServiceClient::DeleteFeature( return connection_->DeleteFeature(request); } +StatusOr +FeaturestoreServiceClient::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::DeleteFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + operation); +} + future> FeaturestoreServiceClient::ImportFeatureValues(std::string const& entity_type, Options opts) { @@ -388,6 +716,18 @@ FeaturestoreServiceClient::ImportFeatureValues(std::string const& entity_type, return connection_->ImportFeatureValues(request); } +StatusOr +FeaturestoreServiceClient::ImportFeatureValues(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& entity_type, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::ImportFeatureValuesRequest request; + request.set_entity_type(entity_type); + return connection_->ImportFeatureValues(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request, @@ -396,6 +736,25 @@ FeaturestoreServiceClient::ImportFeatureValues( return connection_->ImportFeatureValues(request); } +StatusOr +FeaturestoreServiceClient::ImportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportFeatureValues(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::ImportFeatureValues( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportFeatureValues(google::cloud::ExperimentalTag{}, + operation); +} + future> FeaturestoreServiceClient::BatchReadFeatureValues( std::string const& featurestore, Options opts) { @@ -405,6 +764,17 @@ FeaturestoreServiceClient::BatchReadFeatureValues( return connection_->BatchReadFeatureValues(request); } +StatusOr +FeaturestoreServiceClient::BatchReadFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& featurestore, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest request; + request.set_featurestore(featurestore); + return connection_->BatchReadFeatureValues( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& request, @@ -413,6 +783,25 @@ FeaturestoreServiceClient::BatchReadFeatureValues( return connection_->BatchReadFeatureValues(request); } +StatusOr +FeaturestoreServiceClient::BatchReadFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchReadFeatureValues( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::BatchReadFeatureValues( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchReadFeatureValues(google::cloud::ExperimentalTag{}, + operation); +} + future> FeaturestoreServiceClient::ExportFeatureValues(std::string const& entity_type, Options opts) { @@ -422,6 +811,18 @@ FeaturestoreServiceClient::ExportFeatureValues(std::string const& entity_type, return connection_->ExportFeatureValues(request); } +StatusOr +FeaturestoreServiceClient::ExportFeatureValues(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& entity_type, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::ExportFeatureValuesRequest request; + request.set_entity_type(entity_type); + return connection_->ExportFeatureValues(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request, @@ -430,6 +831,25 @@ FeaturestoreServiceClient::ExportFeatureValues( return connection_->ExportFeatureValues(request); } +StatusOr +FeaturestoreServiceClient::ExportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportFeatureValues(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::ExportFeatureValues( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportFeatureValues(google::cloud::ExperimentalTag{}, + operation); +} + future> FeaturestoreServiceClient::DeleteFeatureValues(std::string const& entity_type, Options opts) { @@ -439,6 +859,18 @@ FeaturestoreServiceClient::DeleteFeatureValues(std::string const& entity_type, return connection_->DeleteFeatureValues(request); } +StatusOr +FeaturestoreServiceClient::DeleteFeatureValues(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& entity_type, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest request; + request.set_entity_type(entity_type); + return connection_->DeleteFeatureValues(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FeaturestoreServiceClient::DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request, @@ -447,6 +879,25 @@ FeaturestoreServiceClient::DeleteFeatureValues( return connection_->DeleteFeatureValues(request); } +StatusOr +FeaturestoreServiceClient::DeleteFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeatureValues(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FeaturestoreServiceClient::DeleteFeatureValues( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeatureValues(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange FeaturestoreServiceClient::SearchFeatures(std::string const& location, Options opts) { diff --git a/google/cloud/aiplatform/v1/featurestore_client.h b/google/cloud/aiplatform/v1/featurestore_client.h index abc707020dfc6..07f139592a257 100644 --- a/google/cloud/aiplatform/v1/featurestore_client.h +++ b/google/cloud/aiplatform/v1/featurestore_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_FEATURESTORE_CLIENT_H #include "google/cloud/aiplatform/v1/featurestore_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -127,6 +129,12 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::Featurestore const& featurestore, Options opts = {}); + StatusOr CreateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Featurestore const& featurestore, + Options opts = {}); + // clang-format off /// /// Creates a new Featurestore in a given project and location. @@ -172,6 +180,12 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::Featurestore const& featurestore, std::string const& featurestore_id, Options opts = {}); + StatusOr CreateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Featurestore const& featurestore, + std::string const& featurestore_id, Options opts = {}); + // clang-format off /// /// Creates a new Featurestore in a given project and location. @@ -211,6 +225,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request, Options opts = {}); + StatusOr CreateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request, + Options opts = {}); + + future> + CreateFeaturestore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single Featurestore. @@ -393,6 +417,11 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::Featurestore const& featurestore, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::Featurestore const& featurestore, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Featurestore. @@ -432,6 +461,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request, Options opts = {}); + StatusOr UpdateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request, + Options opts = {}); + + future> + UpdateFeaturestore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single Featurestore. The Featurestore must not contain any @@ -467,6 +506,10 @@ class FeaturestoreServiceClient { future> DeleteFeaturestore(std::string const& name, Options opts = {}); + StatusOr DeleteFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Featurestore. The Featurestore must not contain any @@ -505,6 +548,10 @@ class FeaturestoreServiceClient { future> DeleteFeaturestore(std::string const& name, bool force, Options opts = {}); + StatusOr DeleteFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, bool force, Options opts = {}); + // clang-format off /// /// Deletes a single Featurestore. The Featurestore must not contain any @@ -545,6 +592,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request, Options opts = {}); + StatusOr DeleteFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request, + Options opts = {}); + + future> + DeleteFeaturestore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new EntityType in a given Featurestore. @@ -582,6 +639,12 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::EntityType const& entity_type, Options opts = {}); + StatusOr CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::EntityType const& entity_type, + Options opts = {}); + // clang-format off /// /// Creates a new EntityType in a given Featurestore. @@ -626,6 +689,12 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::EntityType const& entity_type, std::string const& entity_type_id, Options opts = {}); + StatusOr CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::EntityType const& entity_type, + std::string const& entity_type_id, Options opts = {}); + // clang-format off /// /// Creates a new EntityType in a given Featurestore. @@ -664,6 +733,15 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request, Options opts = {}); + StatusOr CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request, + Options opts = {}); + + future> CreateEntityType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets details of a single EntityType. @@ -912,6 +990,10 @@ class FeaturestoreServiceClient { future> DeleteEntityType(std::string const& name, Options opts = {}); + StatusOr DeleteEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single EntityType. The EntityType must not have any Features @@ -949,6 +1031,10 @@ class FeaturestoreServiceClient { future> DeleteEntityType(std::string const& name, bool force, Options opts = {}); + StatusOr DeleteEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, bool force, Options opts = {}); + // clang-format off /// /// Deletes a single EntityType. The EntityType must not have any Features @@ -989,6 +1075,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request, Options opts = {}); + StatusOr DeleteEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request, + Options opts = {}); + + future> + DeleteEntityType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new Feature in a given EntityType. @@ -1027,6 +1123,11 @@ class FeaturestoreServiceClient { std::string const& parent, google::cloud::aiplatform::v1::Feature const& feature, Options opts = {}); + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Feature const& feature, Options opts = {}); + // clang-format off /// /// Creates a new Feature in a given EntityType. @@ -1073,6 +1174,12 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::Feature const& feature, std::string const& feature_id, Options opts = {}); + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Feature const& feature, + std::string const& feature_id, Options opts = {}); + // clang-format off /// /// Creates a new Feature in a given EntityType. @@ -1111,6 +1218,15 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::CreateFeatureRequest const& request, Options opts = {}); + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request, + Options opts = {}); + + future> CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a batch of Features in a given EntityType. @@ -1154,6 +1270,13 @@ class FeaturestoreServiceClient { requests, Options opts = {}); + StatusOr BatchCreateFeatures( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + requests, + Options opts = {}); + // clang-format off /// /// Creates a batch of Features in a given EntityType. @@ -1193,6 +1316,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request, Options opts = {}); + StatusOr BatchCreateFeatures( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request, + Options opts = {}); + + future> + BatchCreateFeatures(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single Feature. @@ -1440,6 +1573,10 @@ class FeaturestoreServiceClient { future> DeleteFeature(std::string const& name, Options opts = {}); + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Feature. @@ -1479,6 +1616,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::DeleteFeatureRequest const& request, Options opts = {}); + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request, + Options opts = {}); + + future> + DeleteFeature(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports Feature values into the Featurestore from a source storage. @@ -1532,6 +1679,10 @@ class FeaturestoreServiceClient { future> ImportFeatureValues(std::string const& entity_type, Options opts = {}); + StatusOr ImportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& entity_type, Options opts = {}); + // clang-format off /// /// Imports Feature values into the Featurestore from a source storage. @@ -1590,6 +1741,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request, Options opts = {}); + StatusOr ImportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request, + Options opts = {}); + + future> + ImportFeatureValues(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Batch reads Feature values from a Featurestore. @@ -1630,6 +1791,10 @@ class FeaturestoreServiceClient { StatusOr> BatchReadFeatureValues(std::string const& featurestore, Options opts = {}); + StatusOr BatchReadFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& featurestore, Options opts = {}); + // clang-format off /// /// Batch reads Feature values from a Featurestore. @@ -1676,6 +1841,18 @@ class FeaturestoreServiceClient { request, Options opts = {}); + StatusOr BatchReadFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request, + Options opts = {}); + + future< + StatusOr> + BatchReadFeatureValues(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Exports Feature values from all the entities of a target EntityType. @@ -1710,6 +1887,10 @@ class FeaturestoreServiceClient { future> ExportFeatureValues(std::string const& entity_type, Options opts = {}); + StatusOr ExportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& entity_type, Options opts = {}); + // clang-format off /// /// Exports Feature values from all the entities of a target EntityType. @@ -1749,6 +1930,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request, Options opts = {}); + StatusOr ExportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request, + Options opts = {}); + + future> + ExportFeatureValues(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Delete Feature values from Featurestore. @@ -1792,6 +1983,10 @@ class FeaturestoreServiceClient { future> DeleteFeatureValues(std::string const& entity_type, Options opts = {}); + StatusOr DeleteFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& entity_type, Options opts = {}); + // clang-format off /// /// Delete Feature values from Featurestore. @@ -1840,6 +2035,16 @@ class FeaturestoreServiceClient { google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request, Options opts = {}); + StatusOr DeleteFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request, + Options opts = {}); + + future> + DeleteFeatureValues(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Searches Features matching a query in a given project. 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_client.h b/google/cloud/aiplatform/v1/featurestore_online_serving_client.h index 2e56fd7d7e1e3..3816fcadadfab 100644 --- a/google/cloud/aiplatform/v1/featurestore_online_serving_client.h +++ b/google/cloud/aiplatform/v1/featurestore_online_serving_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_FEATURESTORE_ONLINE_SERVING_CLIENT_H #include "google/cloud/aiplatform/v1/featurestore_online_serving_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/aiplatform/v1/gen_ai_tuning_client.h index 49c9667e2b54c..dd44e486392f4 100644 --- a/google/cloud/aiplatform/v1/gen_ai_tuning_client.h +++ b/google/cloud/aiplatform/v1/gen_ai_tuning_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_GEN_AI_TUNING_CLIENT_H #include "google/cloud/aiplatform/v1/gen_ai_tuning_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/aiplatform/v1/index_client.cc index 1cbb384f2c278..05415b659a690 100644 --- a/google/cloud/aiplatform/v1/index_client.cc +++ b/google/cloud/aiplatform/v1/index_client.cc @@ -43,6 +43,18 @@ IndexServiceClient::CreateIndex( return connection_->CreateIndex(request); } +StatusOr IndexServiceClient::CreateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Index const& index, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateIndexRequest request; + request.set_parent(parent); + *request.mutable_index() = index; + return connection_->CreateIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IndexServiceClient::CreateIndex( google::cloud::aiplatform::v1::CreateIndexRequest const& request, @@ -51,6 +63,23 @@ IndexServiceClient::CreateIndex( return connection_->CreateIndex(request); } +StatusOr IndexServiceClient::CreateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IndexServiceClient::CreateIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateIndex(google::cloud::ExperimentalTag{}, operation); +} + StatusOr IndexServiceClient::GetIndex( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -92,6 +121,18 @@ IndexServiceClient::UpdateIndex( return connection_->UpdateIndex(request); } +StatusOr IndexServiceClient::UpdateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::Index const& index, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateIndexRequest request; + *request.mutable_index() = index; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IndexServiceClient::UpdateIndex( google::cloud::aiplatform::v1::UpdateIndexRequest const& request, @@ -100,6 +141,23 @@ IndexServiceClient::UpdateIndex( return connection_->UpdateIndex(request); } +StatusOr IndexServiceClient::UpdateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IndexServiceClient::UpdateIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateIndex(google::cloud::ExperimentalTag{}, operation); +} + future> IndexServiceClient::DeleteIndex(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -108,6 +166,16 @@ IndexServiceClient::DeleteIndex(std::string const& name, Options opts) { return connection_->DeleteIndex(request); } +StatusOr IndexServiceClient::DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteIndexRequest request; + request.set_name(name); + return connection_->DeleteIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IndexServiceClient::DeleteIndex( google::cloud::aiplatform::v1::DeleteIndexRequest const& request, @@ -116,6 +184,23 @@ IndexServiceClient::DeleteIndex( return connection_->DeleteIndex(request); } +StatusOr IndexServiceClient::DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IndexServiceClient::DeleteIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteIndex(google::cloud::ExperimentalTag{}, operation); +} + StatusOr IndexServiceClient::UpsertDatapoints( google::cloud::aiplatform::v1::UpsertDatapointsRequest const& request, diff --git a/google/cloud/aiplatform/v1/index_client.h b/google/cloud/aiplatform/v1/index_client.h index 226f0d8939585..8e6f1c85abd48 100644 --- a/google/cloud/aiplatform/v1/index_client.h +++ b/google/cloud/aiplatform/v1/index_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_INDEX_CLIENT_H #include "google/cloud/aiplatform/v1/index_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -122,6 +124,11 @@ class IndexServiceClient { std::string const& parent, google::cloud::aiplatform::v1::Index const& index, Options opts = {}); + StatusOr CreateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Index const& index, Options opts = {}); + // clang-format off /// /// Creates an Index. @@ -160,6 +167,15 @@ class IndexServiceClient { google::cloud::aiplatform::v1::CreateIndexRequest const& request, Options opts = {}); + StatusOr CreateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request, + Options opts = {}); + + future> CreateIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets an Index. @@ -330,6 +346,11 @@ class IndexServiceClient { google::cloud::aiplatform::v1::Index const& index, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::Index const& index, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an Index. @@ -368,6 +389,15 @@ class IndexServiceClient { google::cloud::aiplatform::v1::UpdateIndexRequest const& request, Options opts = {}); + StatusOr UpdateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request, + Options opts = {}); + + future> UpdateIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an Index. @@ -406,6 +436,10 @@ class IndexServiceClient { future> DeleteIndex(std::string const& name, Options opts = {}); + StatusOr DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an Index. @@ -448,6 +482,16 @@ class IndexServiceClient { DeleteIndex(google::cloud::aiplatform::v1::DeleteIndexRequest const& request, Options opts = {}); + StatusOr DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request, + Options opts = {}); + + future> + DeleteIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Add/update Datapoints into an Index. 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_client.cc b/google/cloud/aiplatform/v1/index_endpoint_client.cc index 1f8e68831316b..ed024e4b19310 100644 --- a/google/cloud/aiplatform/v1/index_endpoint_client.cc +++ b/google/cloud/aiplatform/v1/index_endpoint_client.cc @@ -44,6 +44,20 @@ IndexEndpointServiceClient::CreateIndexEndpoint( return connection_->CreateIndexEndpoint(request); } +StatusOr +IndexEndpointServiceClient::CreateIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::IndexEndpoint const& index_endpoint, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateIndexEndpointRequest request; + request.set_parent(parent); + *request.mutable_index_endpoint() = index_endpoint; + return connection_->CreateIndexEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IndexEndpointServiceClient::CreateIndexEndpoint( google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request, @@ -52,6 +66,25 @@ IndexEndpointServiceClient::CreateIndexEndpoint( return connection_->CreateIndexEndpoint(request); } +StatusOr +IndexEndpointServiceClient::CreateIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateIndexEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IndexEndpointServiceClient::CreateIndexEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateIndexEndpoint(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr IndexEndpointServiceClient::GetIndexEndpoint(std::string const& name, Options opts) { @@ -114,6 +147,18 @@ IndexEndpointServiceClient::DeleteIndexEndpoint(std::string const& name, return connection_->DeleteIndexEndpoint(request); } +StatusOr +IndexEndpointServiceClient::DeleteIndexEndpoint(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest request; + request.set_name(name); + return connection_->DeleteIndexEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IndexEndpointServiceClient::DeleteIndexEndpoint( google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request, @@ -122,6 +167,25 @@ IndexEndpointServiceClient::DeleteIndexEndpoint( return connection_->DeleteIndexEndpoint(request); } +StatusOr +IndexEndpointServiceClient::DeleteIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteIndexEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IndexEndpointServiceClient::DeleteIndexEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteIndexEndpoint(google::cloud::ExperimentalTag{}, + operation); +} + future> IndexEndpointServiceClient::DeployIndex( std::string const& index_endpoint, @@ -134,6 +198,20 @@ IndexEndpointServiceClient::DeployIndex( return connection_->DeployIndex(request); } +StatusOr +IndexEndpointServiceClient::DeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& index_endpoint, + google::cloud::aiplatform::v1::DeployedIndex const& deployed_index, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeployIndexRequest request; + request.set_index_endpoint(index_endpoint); + *request.mutable_deployed_index() = deployed_index; + return connection_->DeployIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IndexEndpointServiceClient::DeployIndex( google::cloud::aiplatform::v1::DeployIndexRequest const& request, @@ -142,6 +220,24 @@ IndexEndpointServiceClient::DeployIndex( return connection_->DeployIndex(request); } +StatusOr +IndexEndpointServiceClient::DeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IndexEndpointServiceClient::DeployIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployIndex(google::cloud::ExperimentalTag{}, operation); +} + future> IndexEndpointServiceClient::UndeployIndex(std::string const& index_endpoint, std::string const& deployed_index_id, @@ -153,6 +249,20 @@ IndexEndpointServiceClient::UndeployIndex(std::string const& index_endpoint, return connection_->UndeployIndex(request); } +StatusOr +IndexEndpointServiceClient::UndeployIndex(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& index_endpoint, + std::string const& deployed_index_id, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UndeployIndexRequest request; + request.set_index_endpoint(index_endpoint); + request.set_deployed_index_id(deployed_index_id); + return connection_->UndeployIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IndexEndpointServiceClient::UndeployIndex( google::cloud::aiplatform::v1::UndeployIndexRequest const& request, @@ -161,6 +271,25 @@ IndexEndpointServiceClient::UndeployIndex( return connection_->UndeployIndex(request); } +StatusOr +IndexEndpointServiceClient::UndeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IndexEndpointServiceClient::UndeployIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployIndex(google::cloud::ExperimentalTag{}, + operation); +} + future> IndexEndpointServiceClient::MutateDeployedIndex( std::string const& index_endpoint, @@ -173,6 +302,20 @@ IndexEndpointServiceClient::MutateDeployedIndex( return connection_->MutateDeployedIndex(request); } +StatusOr +IndexEndpointServiceClient::MutateDeployedIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& index_endpoint, + google::cloud::aiplatform::v1::DeployedIndex const& deployed_index, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::MutateDeployedIndexRequest request; + request.set_index_endpoint(index_endpoint); + *request.mutable_deployed_index() = deployed_index; + return connection_->MutateDeployedIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IndexEndpointServiceClient::MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request, @@ -181,6 +324,25 @@ IndexEndpointServiceClient::MutateDeployedIndex( return connection_->MutateDeployedIndex(request); } +StatusOr +IndexEndpointServiceClient::MutateDeployedIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MutateDeployedIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IndexEndpointServiceClient::MutateDeployedIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MutateDeployedIndex(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/index_endpoint_client.h b/google/cloud/aiplatform/v1/index_endpoint_client.h index 2c04d4fa7a9ad..6019e97928231 100644 --- a/google/cloud/aiplatform/v1/index_endpoint_client.h +++ b/google/cloud/aiplatform/v1/index_endpoint_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_INDEX_ENDPOINT_CLIENT_H #include "google/cloud/aiplatform/v1/index_endpoint_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,12 @@ class IndexEndpointServiceClient { google::cloud::aiplatform::v1::IndexEndpoint const& index_endpoint, Options opts = {}); + StatusOr CreateIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::IndexEndpoint const& index_endpoint, + Options opts = {}); + // clang-format off /// /// Creates an IndexEndpoint. @@ -165,6 +173,16 @@ class IndexEndpointServiceClient { google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request, Options opts = {}); + StatusOr CreateIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request, + Options opts = {}); + + future> + CreateIndexEndpoint(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets an IndexEndpoint. @@ -392,6 +410,10 @@ class IndexEndpointServiceClient { future> DeleteIndexEndpoint(std::string const& name, Options opts = {}); + StatusOr DeleteIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an IndexEndpoint. @@ -431,6 +453,16 @@ class IndexEndpointServiceClient { google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request, Options opts = {}); + StatusOr DeleteIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request, + Options opts = {}); + + future> + DeleteIndexEndpoint(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deploys an Index into this IndexEndpoint, creating a DeployedIndex within @@ -471,6 +503,12 @@ class IndexEndpointServiceClient { google::cloud::aiplatform::v1::DeployedIndex const& deployed_index, Options opts = {}); + StatusOr DeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& index_endpoint, + google::cloud::aiplatform::v1::DeployedIndex const& deployed_index, + Options opts = {}); + // clang-format off /// /// Deploys an Index into this IndexEndpoint, creating a DeployedIndex within @@ -511,6 +549,16 @@ class IndexEndpointServiceClient { DeployIndex(google::cloud::aiplatform::v1::DeployIndexRequest const& request, Options opts = {}); + StatusOr DeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request, + Options opts = {}); + + future> + DeployIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Undeploys an Index from an IndexEndpoint, removing a DeployedIndex from it, @@ -549,6 +597,11 @@ class IndexEndpointServiceClient { UndeployIndex(std::string const& index_endpoint, std::string const& deployed_index_id, Options opts = {}); + StatusOr UndeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& index_endpoint, std::string const& deployed_index_id, + Options opts = {}); + // clang-format off /// /// Undeploys an Index from an IndexEndpoint, removing a DeployedIndex from it, @@ -589,6 +642,16 @@ class IndexEndpointServiceClient { google::cloud::aiplatform::v1::UndeployIndexRequest const& request, Options opts = {}); + StatusOr UndeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request, + Options opts = {}); + + future> + UndeployIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Update an existing DeployedIndex under an IndexEndpoint. @@ -629,6 +692,12 @@ class IndexEndpointServiceClient { google::cloud::aiplatform::v1::DeployedIndex const& deployed_index, Options opts = {}); + StatusOr MutateDeployedIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& index_endpoint, + google::cloud::aiplatform::v1::DeployedIndex const& deployed_index, + Options opts = {}); + // clang-format off /// /// Update an existing DeployedIndex under an IndexEndpoint. @@ -668,6 +737,16 @@ class IndexEndpointServiceClient { google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request, Options opts = {}); + StatusOr MutateDeployedIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request, + Options opts = {}); + + future> + MutateDeployedIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..2deb42b93781b 100644 --- a/google/cloud/aiplatform/v1/internal/dataset_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/dataset_connection_impl.cc @@ -105,6 +105,60 @@ DatasetServiceConnectionImpl::CreateDataset( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::CreateDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +261,61 @@ DatasetServiceConnectionImpl::DeleteDataset( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +355,60 @@ DatasetServiceConnectionImpl::ImportData( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::ImportData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +448,60 @@ DatasetServiceConnectionImpl::ExportData( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::ExportData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +542,61 @@ DatasetServiceConnectionImpl::CreateDatasetVersion( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::CreateDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +652,61 @@ DatasetServiceConnectionImpl::DeleteDatasetVersion( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::DeleteDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +798,62 @@ DatasetServiceConnectionImpl::RestoreDatasetVersion( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::RestoreDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +996,61 @@ DatasetServiceConnectionImpl::DeleteSavedQuery( polling_policy(*current), __func__); } +StatusOr +DatasetServiceConnectionImpl::DeleteSavedQuery( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..ed9cbad1617a6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request) + override; + + future> CreateDataset( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) + override; + + future> + DeleteDataset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportData( google::cloud::aiplatform::v1::ImportDataRequest const& request) override; + StatusOr ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request) override; + + future> + ImportData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportData( google::cloud::aiplatform::v1::ExportDataRequest const& request) override; + StatusOr ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request) override; + + future> + ExportData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) override; + StatusOr CreateDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) + override; + + future> + CreateDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request) + override; + + future> + DeleteDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request) override; + + future> + RestoreDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request) + override; + + future> + DeleteSavedQuery(google::cloud::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..3d37e3d4eb71c 100644 --- a/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/dataset_tracing_connection.cc @@ -42,6 +42,30 @@ DatasetServiceTracingConnection::CreateDataset( return internal::EndSpan(std::move(span), child_->CreateDataset(request)); } +StatusOr +DatasetServiceTracingConnection::CreateDataset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::CreateDataset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatasetServiceTracingConnection::GetDataset( google::cloud::aiplatform::v1::GetDatasetRequest const& request) { @@ -80,6 +104,30 @@ DatasetServiceTracingConnection::DeleteDataset( return internal::EndSpan(std::move(span), child_->DeleteDataset(request)); } +StatusOr +DatasetServiceTracingConnection::DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::DeleteDataset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatasetServiceTracingConnection::ImportData( google::cloud::aiplatform::v1::ImportDataRequest const& request) { @@ -89,6 +137,30 @@ DatasetServiceTracingConnection::ImportData( return internal::EndSpan(std::move(span), child_->ImportData(request)); } +StatusOr +DatasetServiceTracingConnection::ImportData( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::ImportData( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatasetServiceTracingConnection::ExportData( google::cloud::aiplatform::v1::ExportDataRequest const& request) { @@ -98,6 +170,30 @@ DatasetServiceTracingConnection::ExportData( return internal::EndSpan(std::move(span), child_->ExportData(request)); } +StatusOr +DatasetServiceTracingConnection::ExportData( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::ExportData( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatasetServiceTracingConnection::CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) { @@ -108,6 +204,30 @@ DatasetServiceTracingConnection::CreateDatasetVersion( child_->CreateDatasetVersion(request)); } +StatusOr +DatasetServiceTracingConnection::CreateDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::CreateDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatasetServiceTracingConnection::UpdateDatasetVersion( google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const& request) { @@ -127,6 +247,30 @@ DatasetServiceTracingConnection::DeleteDatasetVersion( child_->DeleteDatasetVersion(request)); } +StatusOr +DatasetServiceTracingConnection::DeleteDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::DeleteDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatasetServiceTracingConnection::GetDatasetVersion( google::cloud::aiplatform::v1::GetDatasetVersionRequest const& request) { @@ -159,6 +303,31 @@ DatasetServiceTracingConnection::RestoreDatasetVersion( child_->RestoreDatasetVersion(request)); } +StatusOr +DatasetServiceTracingConnection::RestoreDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::RestoreDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DatasetServiceTracingConnection::ListDataItems( google::cloud::aiplatform::v1::ListDataItemsRequest request) { @@ -203,6 +372,30 @@ DatasetServiceTracingConnection::DeleteSavedQuery( return internal::EndSpan(std::move(span), child_->DeleteSavedQuery(request)); } +StatusOr +DatasetServiceTracingConnection::DeleteSavedQuery( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatasetServiceTracingConnection::DeleteSavedQuery( + google::cloud::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(google::cloud::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..f065c230c26ac 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request) + override; + + future> CreateDataset( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request) + override; + + future> + DeleteDataset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportData( google::cloud::aiplatform::v1::ImportDataRequest const& request) override; + StatusOr ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request) override; + + future> + ImportData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportData( google::cloud::aiplatform::v1::ExportDataRequest const& request) override; + StatusOr ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request) override; + + future> + ExportData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateDatasetVersion( google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) override; + StatusOr CreateDatasetVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request) + override; + + future> + CreateDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& request) + override; + + future> + DeleteDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request) override; + + future> + RestoreDatasetVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request) + override; + + future> + DeleteSavedQuery(google::cloud::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..e56bac0101628 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,62 @@ DeploymentResourcePoolServiceConnectionImpl::CreateDeploymentResourcePool( polling_policy(*current), __func__); } +StatusOr +DeploymentResourcePoolServiceConnectionImpl::CreateDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +267,62 @@ DeploymentResourcePoolServiceConnectionImpl::DeleteDeploymentResourcePool( polling_policy(*current), __func__); } +StatusOr +DeploymentResourcePoolServiceConnectionImpl::DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..18c1cae1e0880 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request) override; + + future> + CreateDeploymentResourcePool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request) override; + + future> + DeleteDeploymentResourcePool( + google::cloud::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..371f9bbe2ffad 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,33 @@ DeploymentResourcePoolServiceTracingConnection::CreateDeploymentResourcePool( child_->CreateDeploymentResourcePool(request)); } +StatusOr +DeploymentResourcePoolServiceTracingConnection::CreateDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DeploymentResourcePoolServiceTracingConnection::CreateDeploymentResourcePool( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DeploymentResourcePoolServiceTracingConnection::GetDeploymentResourcePool( google::cloud::aiplatform::v1::GetDeploymentResourcePoolRequest const& @@ -83,6 +110,33 @@ DeploymentResourcePoolServiceTracingConnection::DeleteDeploymentResourcePool( child_->DeleteDeploymentResourcePool(request)); } +StatusOr +DeploymentResourcePoolServiceTracingConnection::DeleteDeploymentResourcePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DeploymentResourcePoolServiceTracingConnection::DeleteDeploymentResourcePool( + google::cloud::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( + google::cloud::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..b90f049d520c1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request) override; + + future> + CreateDeploymentResourcePool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request) override; + + future> + DeleteDeploymentResourcePool( + google::cloud::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..efef88d741d81 100644 --- a/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/endpoint_connection_impl.cc @@ -106,6 +106,60 @@ EndpointServiceConnectionImpl::CreateEndpoint( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +262,61 @@ EndpointServiceConnectionImpl::DeleteEndpoint( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +356,60 @@ EndpointServiceConnectionImpl::DeployModel( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::DeployModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +449,61 @@ EndpointServiceConnectionImpl::UndeployModel( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::UndeployModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +544,61 @@ EndpointServiceConnectionImpl::MutateDeployedModel( polling_policy(*current), __func__); } +StatusOr +EndpointServiceConnectionImpl::MutateDeployedModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..a9a55335592bb 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request) + override; + + future> CreateEndpoint( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) + override; + + future> + DeleteEndpoint(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployModel(google::cloud::aiplatform::v1::DeployModelRequest const& request) override; + StatusOr DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request) + override; + + future> + DeployModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployModel(google::cloud::aiplatform::v1::UndeployModelRequest const& request) override; + StatusOr UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request) + override; + + future> + UndeployModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) override; + StatusOr MutateDeployedModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) + override; + + future> + MutateDeployedModel(google::cloud::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..21ab95b11b1c7 100644 --- a/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/endpoint_tracing_connection.cc @@ -42,6 +42,30 @@ EndpointServiceTracingConnection::CreateEndpoint( return internal::EndSpan(std::move(span), child_->CreateEndpoint(request)); } +StatusOr +EndpointServiceTracingConnection::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::CreateEndpoint( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr EndpointServiceTracingConnection::GetEndpoint( google::cloud::aiplatform::v1::GetEndpointRequest const& request) { @@ -80,6 +104,30 @@ EndpointServiceTracingConnection::DeleteEndpoint( return internal::EndSpan(std::move(span), child_->DeleteEndpoint(request)); } +StatusOr +EndpointServiceTracingConnection::DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::DeleteEndpoint( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EndpointServiceTracingConnection::DeployModel( google::cloud::aiplatform::v1::DeployModelRequest const& request) { @@ -89,6 +137,30 @@ EndpointServiceTracingConnection::DeployModel( return internal::EndSpan(std::move(span), child_->DeployModel(request)); } +StatusOr +EndpointServiceTracingConnection::DeployModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::DeployModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EndpointServiceTracingConnection::UndeployModel( google::cloud::aiplatform::v1::UndeployModelRequest const& request) { @@ -98,6 +170,30 @@ EndpointServiceTracingConnection::UndeployModel( return internal::EndSpan(std::move(span), child_->UndeployModel(request)); } +StatusOr +EndpointServiceTracingConnection::UndeployModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::UndeployModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EndpointServiceTracingConnection::MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) { @@ -108,6 +204,30 @@ EndpointServiceTracingConnection::MutateDeployedModel( child_->MutateDeployedModel(request)); } +StatusOr +EndpointServiceTracingConnection::MutateDeployedModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EndpointServiceTracingConnection::MutateDeployedModel( + google::cloud::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(google::cloud::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..4c904d0dce4c1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request) + override; + + future> CreateEndpoint( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request) + override; + + future> + DeleteEndpoint(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployModel(google::cloud::aiplatform::v1::DeployModelRequest const& request) override; + StatusOr DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request) + override; + + future> + DeployModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployModel(google::cloud::aiplatform::v1::UndeployModelRequest const& request) override; + StatusOr UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request) + override; + + future> + UndeployModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MutateDeployedModel( google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) override; + StatusOr MutateDeployedModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request) + override; + + future> + MutateDeployedModel(google::cloud::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..efbc4d78ebd5f 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,63 @@ FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureOnlineStore( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +269,63 @@ FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureOnlineStore( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +367,63 @@ FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureOnlineStore( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +464,61 @@ FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureView( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::CreateFeatureView( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +609,61 @@ FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureView( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::UpdateFeatureView( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +704,61 @@ FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureView( polling_policy(*current), __func__); } +StatusOr +FeatureOnlineStoreAdminServiceConnectionImpl::DeleteFeatureView( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..9f689da125705 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request) override; + + future> + CreateFeatureOnlineStore( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request) override; + + future> + UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& request) override; + StatusOr DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request) override; + + future> + DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) override; + StatusOr CreateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) + override; + + future> + CreateFeatureView(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request) + override; + + future> + UpdateFeatureView(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) override; + StatusOr DeleteFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) + override; + + future> + DeleteFeatureView(google::cloud::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..ac2771458aa69 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,33 @@ FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureOnlineStore( child_->CreateFeatureOnlineStore(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureOnlineStore( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FeatureOnlineStoreAdminServiceTracingConnection::GetFeatureOnlineStore( google::cloud::aiplatform::v1::GetFeatureOnlineStoreRequest const& @@ -83,6 +110,33 @@ FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureOnlineStore( child_->UpdateFeatureOnlineStore(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureOnlineStore( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& @@ -95,6 +149,33 @@ FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureOnlineStore( child_->DeleteFeatureOnlineStore(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureOnlineStore( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) { @@ -105,6 +186,32 @@ FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureView( return internal::EndSpan(std::move(span), child_->CreateFeatureView(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureView( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::CreateFeatureView( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FeatureOnlineStoreAdminServiceTracingConnection::GetFeatureView( google::cloud::aiplatform::v1::GetFeatureViewRequest const& request) { @@ -138,6 +245,32 @@ FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureView( return internal::EndSpan(std::move(span), child_->UpdateFeatureView(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureView( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::UpdateFeatureView( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) { @@ -148,6 +281,32 @@ FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureView( return internal::EndSpan(std::move(span), child_->DeleteFeatureView(request)); } +StatusOr +FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureView( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureOnlineStoreAdminServiceTracingConnection::DeleteFeatureView( + google::cloud::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(google::cloud::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..35b3141236cfd 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request) override; + + future> + CreateFeatureOnlineStore( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request) override; + + future> + UpdateFeatureOnlineStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureOnlineStore( google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& request) override; + StatusOr DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request) override; + + future> + DeleteFeatureOnlineStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeatureView( google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) override; + StatusOr CreateFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request) + override; + + future> + CreateFeatureView(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request) + override; + + future> + UpdateFeatureView(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureView( google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) override; + StatusOr DeleteFeatureView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request) + override; + + future> + DeleteFeatureView(google::cloud::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..aed657218644b 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,61 @@ FeatureRegistryServiceConnectionImpl::CreateFeatureGroup( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::CreateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +257,61 @@ FeatureRegistryServiceConnectionImpl::UpdateFeatureGroup( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::UpdateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +352,61 @@ FeatureRegistryServiceConnectionImpl::DeleteFeatureGroup( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::DeleteFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +446,60 @@ FeatureRegistryServiceConnectionImpl::CreateFeature( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +588,60 @@ FeatureRegistryServiceConnectionImpl::UpdateFeature( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +681,61 @@ FeatureRegistryServiceConnectionImpl::DeleteFeature( polling_policy(*current), __func__); } +StatusOr +FeatureRegistryServiceConnectionImpl::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..1223b041c0578 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request) + override; + + future> + CreateFeatureGroup(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request) + override; + + future> + UpdateFeatureGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) override; + StatusOr DeleteFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) + override; + + future> + DeleteFeatureGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) + override; + + future> CreateFeature( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) + override; + + future> UpdateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeature(google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) + override; + + future> + DeleteFeature(google::cloud::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..9ee0b8370b8c6 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,30 @@ FeatureRegistryServiceTracingConnection::CreateFeatureGroup( child_->CreateFeatureGroup(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::CreateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::CreateFeatureGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FeatureRegistryServiceTracingConnection::GetFeatureGroup( google::cloud::aiplatform::v1::GetFeatureGroupRequest const& request) { @@ -75,6 +99,30 @@ FeatureRegistryServiceTracingConnection::UpdateFeatureGroup( child_->UpdateFeatureGroup(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::UpdateFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::UpdateFeatureGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeatureRegistryServiceTracingConnection::DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) { @@ -85,6 +133,30 @@ FeatureRegistryServiceTracingConnection::DeleteFeatureGroup( child_->DeleteFeatureGroup(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::DeleteFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::DeleteFeatureGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeatureRegistryServiceTracingConnection::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { @@ -94,6 +166,30 @@ FeatureRegistryServiceTracingConnection::CreateFeature( return internal::EndSpan(std::move(span), child_->CreateFeature(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::CreateFeature( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FeatureRegistryServiceTracingConnection::GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) { @@ -123,6 +219,30 @@ FeatureRegistryServiceTracingConnection::UpdateFeature( return internal::EndSpan(std::move(span), child_->UpdateFeature(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::UpdateFeature( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeatureRegistryServiceTracingConnection::DeleteFeature( google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) { @@ -132,6 +252,30 @@ FeatureRegistryServiceTracingConnection::DeleteFeature( return internal::EndSpan(std::move(span), child_->DeleteFeature(request)); } +StatusOr +FeatureRegistryServiceTracingConnection::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeatureRegistryServiceTracingConnection::DeleteFeature( + google::cloud::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(google::cloud::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..e2dad1679d9f7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request) + override; + + future> + CreateFeatureGroup(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request) + override; + + future> + UpdateFeatureGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureGroup( google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) override; + StatusOr DeleteFeatureGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request) + override; + + future> + DeleteFeatureGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) + override; + + future> CreateFeature( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request) + override; + + future> UpdateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeature(google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) + override; + + future> + DeleteFeature(google::cloud::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..0a30efaf6d4b2 100644 --- a/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/featurestore_connection_impl.cc @@ -108,6 +108,61 @@ FeaturestoreServiceConnectionImpl::CreateFeaturestore( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::CreateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +253,61 @@ FeaturestoreServiceConnectionImpl::UpdateFeaturestore( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::UpdateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +348,61 @@ FeaturestoreServiceConnectionImpl::DeleteFeaturestore( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::DeleteFeaturestore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +443,61 @@ FeaturestoreServiceConnectionImpl::CreateEntityType( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +602,61 @@ FeaturestoreServiceConnectionImpl::DeleteEntityType( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::DeleteEntityType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +696,60 @@ FeaturestoreServiceConnectionImpl::CreateFeature( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +790,61 @@ FeaturestoreServiceConnectionImpl::BatchCreateFeatures( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::BatchCreateFeatures( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +947,61 @@ FeaturestoreServiceConnectionImpl::DeleteFeature( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1042,61 @@ FeaturestoreServiceConnectionImpl::ImportFeatureValues( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::ImportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1138,62 @@ FeaturestoreServiceConnectionImpl::BatchReadFeatureValues( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::BatchReadFeatureValues( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1234,61 @@ FeaturestoreServiceConnectionImpl::ExportFeatureValues( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::ExportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1329,61 @@ FeaturestoreServiceConnectionImpl::DeleteFeatureValues( polling_policy(*current), __func__); } +StatusOr +FeaturestoreServiceConnectionImpl::DeleteFeatureValues( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..7294bdf9aaac7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request) + override; + + future> + CreateFeaturestore(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request) + override; + + future> + UpdateFeaturestore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) override; + StatusOr DeleteFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) + override; + + future> + DeleteFeaturestore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) override; + StatusOr CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) + override; + + future> CreateEntityType( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request) + override; + + future> + DeleteEntityType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) + override; + + future> CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) override; + StatusOr BatchCreateFeatures( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) + override; + + future> + BatchCreateFeatures(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) + override; + + future> + DeleteFeature(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) override; + StatusOr ImportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) + override; + + future> + ImportFeatureValues(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& request) override; + StatusOr BatchReadFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request) override; + + future< + StatusOr> + BatchReadFeatureValues( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) override; + StatusOr ExportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) + override; + + future> + ExportFeatureValues(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) override; + StatusOr DeleteFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) + override; + + future> + DeleteFeatureValues(google::cloud::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..de5015785ce5a 100644 --- a/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/featurestore_tracing_connection.cc @@ -43,6 +43,30 @@ FeaturestoreServiceTracingConnection::CreateFeaturestore( child_->CreateFeaturestore(request)); } +StatusOr +FeaturestoreServiceTracingConnection::CreateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::CreateFeaturestore( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FeaturestoreServiceTracingConnection::GetFeaturestore( google::cloud::aiplatform::v1::GetFeaturestoreRequest const& request) { @@ -74,6 +98,30 @@ FeaturestoreServiceTracingConnection::UpdateFeaturestore( child_->UpdateFeaturestore(request)); } +StatusOr +FeaturestoreServiceTracingConnection::UpdateFeaturestore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::UpdateFeaturestore( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) { @@ -84,6 +132,30 @@ FeaturestoreServiceTracingConnection::DeleteFeaturestore( child_->DeleteFeaturestore(request)); } +StatusOr +FeaturestoreServiceTracingConnection::DeleteFeaturestore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::DeleteFeaturestore( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) { @@ -93,6 +165,30 @@ FeaturestoreServiceTracingConnection::CreateEntityType( return internal::EndSpan(std::move(span), child_->CreateEntityType(request)); } +StatusOr +FeaturestoreServiceTracingConnection::CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::CreateEntityType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FeaturestoreServiceTracingConnection::GetEntityType( google::cloud::aiplatform::v1::GetEntityTypeRequest const& request) { @@ -132,6 +228,30 @@ FeaturestoreServiceTracingConnection::DeleteEntityType( return internal::EndSpan(std::move(span), child_->DeleteEntityType(request)); } +StatusOr +FeaturestoreServiceTracingConnection::DeleteEntityType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::DeleteEntityType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) { @@ -141,6 +261,30 @@ FeaturestoreServiceTracingConnection::CreateFeature( return internal::EndSpan(std::move(span), child_->CreateFeature(request)); } +StatusOr +FeaturestoreServiceTracingConnection::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::CreateFeature( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) { @@ -151,6 +295,30 @@ FeaturestoreServiceTracingConnection::BatchCreateFeatures( child_->BatchCreateFeatures(request)); } +StatusOr +FeaturestoreServiceTracingConnection::BatchCreateFeatures( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::BatchCreateFeatures( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FeaturestoreServiceTracingConnection::GetFeature( google::cloud::aiplatform::v1::GetFeatureRequest const& request) { @@ -189,6 +357,30 @@ FeaturestoreServiceTracingConnection::DeleteFeature( return internal::EndSpan(std::move(span), child_->DeleteFeature(request)); } +StatusOr +FeaturestoreServiceTracingConnection::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::DeleteFeature( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) { @@ -199,6 +391,30 @@ FeaturestoreServiceTracingConnection::ImportFeatureValues( child_->ImportFeatureValues(request)); } +StatusOr +FeaturestoreServiceTracingConnection::ImportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::ImportFeatureValues( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& @@ -210,6 +426,31 @@ FeaturestoreServiceTracingConnection::BatchReadFeatureValues( child_->BatchReadFeatureValues(request)); } +StatusOr +FeaturestoreServiceTracingConnection::BatchReadFeatureValues( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::BatchReadFeatureValues( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) { @@ -220,6 +461,30 @@ FeaturestoreServiceTracingConnection::ExportFeatureValues( child_->ExportFeatureValues(request)); } +StatusOr +FeaturestoreServiceTracingConnection::ExportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::ExportFeatureValues( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FeaturestoreServiceTracingConnection::DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) { @@ -230,6 +495,30 @@ FeaturestoreServiceTracingConnection::DeleteFeatureValues( child_->DeleteFeatureValues(request)); } +StatusOr +FeaturestoreServiceTracingConnection::DeleteFeatureValues( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FeaturestoreServiceTracingConnection::DeleteFeatureValues( + google::cloud::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(google::cloud::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..86739d56b868f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request) + override; + + future> + CreateFeaturestore(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request) + override; + + future> + UpdateFeaturestore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeaturestore( google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) override; + StatusOr DeleteFeaturestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request) + override; + + future> + DeleteFeaturestore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateEntityType( google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) override; + StatusOr CreateEntityType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request) + override; + + future> CreateEntityType( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request) + override; + + future> + DeleteEntityType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::aiplatform::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request) + override; + + future> CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateFeatures( google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) override; + StatusOr BatchCreateFeatures( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& request) + override; + + future> + BatchCreateFeatures(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request) + override; + + future> + DeleteFeature(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportFeatureValues( google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) override; + StatusOr ImportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& request) + override; + + future> + ImportFeatureValues(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchReadFeatureValues( google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& request) override; + StatusOr BatchReadFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request) override; + + future< + StatusOr> + BatchReadFeatureValues( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportFeatureValues( google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) override; + StatusOr ExportFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& request) + override; + + future> + ExportFeatureValues(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeatureValues( google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) override; + StatusOr DeleteFeatureValues( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& request) + override; + + future> + DeleteFeatureValues(google::cloud::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..d46a6800e9b26 100644 --- a/google/cloud/aiplatform/v1/internal/index_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/index_connection_impl.cc @@ -103,6 +103,59 @@ IndexServiceConnectionImpl::CreateIndex( polling_policy(*current), __func__); } +StatusOr +IndexServiceConnectionImpl::CreateIndex( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +243,59 @@ IndexServiceConnectionImpl::UpdateIndex( polling_policy(*current), __func__); } +StatusOr +IndexServiceConnectionImpl::UpdateIndex( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +335,60 @@ IndexServiceConnectionImpl::DeleteIndex( polling_policy(*current), __func__); } +StatusOr +IndexServiceConnectionImpl::DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..5fef546b51cd1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request) + override; + + future> CreateIndex( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request) + override; + + future> UpdateIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteIndex(google::cloud::aiplatform::v1::DeleteIndexRequest const& request) override; + StatusOr DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request) + override; + + future> + DeleteIndex(google::cloud::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..a95c56767e236 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,61 @@ IndexEndpointServiceConnectionImpl::CreateIndexEndpoint( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::CreateIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +268,61 @@ IndexEndpointServiceConnectionImpl::DeleteIndexEndpoint( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::DeleteIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +362,60 @@ IndexEndpointServiceConnectionImpl::DeployIndex( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::DeployIndex( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +455,61 @@ IndexEndpointServiceConnectionImpl::UndeployIndex( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::UndeployIndex( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +550,61 @@ IndexEndpointServiceConnectionImpl::MutateDeployedIndex( polling_policy(*current), __func__); } +StatusOr +IndexEndpointServiceConnectionImpl::MutateDeployedIndex( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..2310971f84ad2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request) + override; + + future> + CreateIndexEndpoint(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request) + override; + + future> + DeleteIndexEndpoint(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployIndex(google::cloud::aiplatform::v1::DeployIndexRequest const& request) override; + StatusOr DeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request) + override; + + future> + DeployIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployIndex(google::cloud::aiplatform::v1::UndeployIndexRequest const& request) override; + StatusOr UndeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request) + override; + + future> + UndeployIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) override; + StatusOr MutateDeployedIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) + override; + + future> + MutateDeployedIndex(google::cloud::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..cf8b80f666901 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,30 @@ IndexEndpointServiceTracingConnection::CreateIndexEndpoint( child_->CreateIndexEndpoint(request)); } +StatusOr +IndexEndpointServiceTracingConnection::CreateIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::CreateIndexEndpoint( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr IndexEndpointServiceTracingConnection::GetIndexEndpoint( google::cloud::aiplatform::v1::GetIndexEndpointRequest const& request) { @@ -83,6 +107,30 @@ IndexEndpointServiceTracingConnection::DeleteIndexEndpoint( child_->DeleteIndexEndpoint(request)); } +StatusOr +IndexEndpointServiceTracingConnection::DeleteIndexEndpoint( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::DeleteIndexEndpoint( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> IndexEndpointServiceTracingConnection::DeployIndex( google::cloud::aiplatform::v1::DeployIndexRequest const& request) { @@ -92,6 +140,30 @@ IndexEndpointServiceTracingConnection::DeployIndex( return internal::EndSpan(std::move(span), child_->DeployIndex(request)); } +StatusOr +IndexEndpointServiceTracingConnection::DeployIndex( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::DeployIndex( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> IndexEndpointServiceTracingConnection::UndeployIndex( google::cloud::aiplatform::v1::UndeployIndexRequest const& request) { @@ -101,6 +173,30 @@ IndexEndpointServiceTracingConnection::UndeployIndex( return internal::EndSpan(std::move(span), child_->UndeployIndex(request)); } +StatusOr +IndexEndpointServiceTracingConnection::UndeployIndex( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::UndeployIndex( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> IndexEndpointServiceTracingConnection::MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) { @@ -111,6 +207,30 @@ IndexEndpointServiceTracingConnection::MutateDeployedIndex( child_->MutateDeployedIndex(request)); } +StatusOr +IndexEndpointServiceTracingConnection::MutateDeployedIndex( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IndexEndpointServiceTracingConnection::MutateDeployedIndex( + google::cloud::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(google::cloud::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..fb176f93e30b2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& request) + override; + + future> + CreateIndexEndpoint(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& request) + override; + + future> + DeleteIndexEndpoint(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployIndex(google::cloud::aiplatform::v1::DeployIndexRequest const& request) override; + StatusOr DeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request) + override; + + future> + DeployIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployIndex(google::cloud::aiplatform::v1::UndeployIndexRequest const& request) override; + StatusOr UndeployIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request) + override; + + future> + UndeployIndex(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MutateDeployedIndex( google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) override; + StatusOr MutateDeployedIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request) + override; + + future> + MutateDeployedIndex(google::cloud::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..fa5227e48ec5e 100644 --- a/google/cloud/aiplatform/v1/internal/index_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/index_tracing_connection.cc @@ -42,6 +42,30 @@ IndexServiceTracingConnection::CreateIndex( return internal::EndSpan(std::move(span), child_->CreateIndex(request)); } +StatusOr +IndexServiceTracingConnection::CreateIndex( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IndexServiceTracingConnection::CreateIndex( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr IndexServiceTracingConnection::GetIndex( google::cloud::aiplatform::v1::GetIndexRequest const& request) { @@ -71,6 +95,30 @@ IndexServiceTracingConnection::UpdateIndex( return internal::EndSpan(std::move(span), child_->UpdateIndex(request)); } +StatusOr +IndexServiceTracingConnection::UpdateIndex( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IndexServiceTracingConnection::UpdateIndex( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> IndexServiceTracingConnection::DeleteIndex( google::cloud::aiplatform::v1::DeleteIndexRequest const& request) { @@ -80,6 +128,30 @@ IndexServiceTracingConnection::DeleteIndex( return internal::EndSpan(std::move(span), child_->DeleteIndex(request)); } +StatusOr +IndexServiceTracingConnection::DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IndexServiceTracingConnection::DeleteIndex( + google::cloud::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(google::cloud::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..057288579a6ee 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request) + override; + + future> CreateIndex( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request) + override; + + future> UpdateIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteIndex(google::cloud::aiplatform::v1::DeleteIndexRequest const& request) override; + StatusOr DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request) + override; + + future> + DeleteIndex(google::cloud::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..d3f99a30087d0 100644 --- a/google/cloud/aiplatform/v1/internal/job_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/job_connection_impl.cc @@ -168,6 +168,61 @@ JobServiceConnectionImpl::DeleteCustomJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteCustomJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +344,62 @@ JobServiceConnectionImpl::DeleteDataLabelingJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteDataLabelingJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +526,62 @@ JobServiceConnectionImpl::DeleteHyperparameterTuningJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +699,60 @@ JobServiceConnectionImpl::DeleteNasJob( polling_policy(*current), __func__); } +StatusOr JobServiceConnectionImpl::DeleteNasJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +927,63 @@ JobServiceConnectionImpl::DeleteBatchPredictionJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteBatchPredictionJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1159,64 @@ JobServiceConnectionImpl::UpdateModelDeploymentMonitoringJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1259,64 @@ JobServiceConnectionImpl::DeleteModelDeploymentMonitoringJob( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..c60d5990a5fad 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request) + override; + + future> + DeleteCustomJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request) override; + + future> + DeleteDataLabelingJob( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request) override; + + future> + DeleteHyperparameterTuningJob( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) + override; + + future> + DeleteNasJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request) override; + + future> + DeleteBatchPredictionJob( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request) override; + + future> + UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: DeleteModelDeploymentMonitoringJobRequest const& request) override; + StatusOr DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request) override; + + future> + DeleteModelDeploymentMonitoringJob( + google::cloud::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..d2d39cbcc6ee5 100644 --- a/google/cloud/aiplatform/v1/internal/job_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/job_tracing_connection.cc @@ -71,6 +71,30 @@ JobServiceTracingConnection::DeleteCustomJob( return internal::EndSpan(std::move(span), child_->DeleteCustomJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteCustomJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteCustomJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelCustomJob( google::cloud::aiplatform::v1::CancelCustomJobRequest const& request) { auto span = internal::MakeSpan( @@ -121,6 +145,31 @@ JobServiceTracingConnection::DeleteDataLabelingJob( child_->DeleteDataLabelingJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteDataLabelingJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteDataLabelingJob( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelDataLabelingJob( google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const& request) { @@ -175,6 +224,31 @@ JobServiceTracingConnection::DeleteHyperparameterTuningJob( child_->DeleteHyperparameterTuningJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteHyperparameterTuningJob( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelHyperparameterTuningJob( google::cloud::aiplatform::v1::CancelHyperparameterTuningJobRequest const& request) { @@ -223,6 +297,30 @@ JobServiceTracingConnection::DeleteNasJob( return internal::EndSpan(std::move(span), child_->DeleteNasJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteNasJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteNasJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelNasJob( google::cloud::aiplatform::v1::CancelNasJobRequest const& request) { auto span = @@ -295,6 +393,31 @@ JobServiceTracingConnection::DeleteBatchPredictionJob( child_->DeleteBatchPredictionJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteBatchPredictionJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteBatchPredictionJob( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::CancelBatchPredictionJob( google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const& request) { @@ -367,6 +490,33 @@ JobServiceTracingConnection::UpdateModelDeploymentMonitoringJob( child_->UpdateModelDeploymentMonitoringJob(request)); } +StatusOr +JobServiceTracingConnection::UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::UpdateModelDeploymentMonitoringJob( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> JobServiceTracingConnection::DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: @@ -379,6 +529,33 @@ JobServiceTracingConnection::DeleteModelDeploymentMonitoringJob( child_->DeleteModelDeploymentMonitoringJob(request)); } +StatusOr +JobServiceTracingConnection::DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::DeleteModelDeploymentMonitoringJob( + google::cloud::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( + google::cloud::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..d23be77942f9a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request) + override; + + future> + DeleteCustomJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request) override; + + future> + DeleteDataLabelingJob( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request) override; + + future> + DeleteHyperparameterTuningJob( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request) + override; + + future> + DeleteNasJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request) override; + + future> + DeleteBatchPredictionJob( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request) override; + + future> + UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: DeleteModelDeploymentMonitoringJobRequest const& request) override; + StatusOr DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request) override; + + future> + DeleteModelDeploymentMonitoringJob( + google::cloud::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..395d5d63c4c21 100644 --- a/google/cloud/aiplatform/v1/internal/metadata_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/metadata_connection_impl.cc @@ -107,6 +107,61 @@ MetadataServiceConnectionImpl::CreateMetadataStore( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::CreateMetadataStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +253,62 @@ MetadataServiceConnectionImpl::DeleteMetadataStore( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::DeleteMetadataStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +426,61 @@ MetadataServiceConnectionImpl::DeleteArtifact( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::DeleteArtifact( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +520,61 @@ MetadataServiceConnectionImpl::PurgeArtifacts( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::PurgeArtifacts( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +692,61 @@ MetadataServiceConnectionImpl::DeleteContext( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::DeleteContext( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +786,61 @@ MetadataServiceConnectionImpl::PurgeContexts( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::PurgeContexts( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1025,61 @@ MetadataServiceConnectionImpl::DeleteExecution( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1120,61 @@ MetadataServiceConnectionImpl::PurgeExecutions( polling_policy(*current), __func__); } +StatusOr +MetadataServiceConnectionImpl::PurgeExecutions( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..a623f83cfee15 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request) + override; + + future> + CreateMetadataStore(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request) + override; + + future> + DeleteMetadataStore(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) + override; + + future> + DeleteArtifact(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeArtifacts(google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) override; + StatusOr PurgeArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) + override; + + future> + PurgeArtifacts(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request) + override; + + future> + DeleteContext(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeContexts(google::cloud::aiplatform::v1::PurgeContextsRequest const& request) override; + StatusOr PurgeContexts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request) + override; + + future> + PurgeContexts(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request) + override; + + future> + DeleteExecution(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeExecutions(google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) override; + StatusOr PurgeExecutions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) + override; + + future> + PurgeExecutions(google::cloud::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..7ed420d5b3ff6 100644 --- a/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/metadata_tracing_connection.cc @@ -43,6 +43,30 @@ MetadataServiceTracingConnection::CreateMetadataStore( child_->CreateMetadataStore(request)); } +StatusOr +MetadataServiceTracingConnection::CreateMetadataStore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::CreateMetadataStore( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr MetadataServiceTracingConnection::GetMetadataStore( google::cloud::aiplatform::v1::GetMetadataStoreRequest const& request) { @@ -75,6 +99,31 @@ MetadataServiceTracingConnection::DeleteMetadataStore( child_->DeleteMetadataStore(request)); } +StatusOr +MetadataServiceTracingConnection::DeleteMetadataStore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::DeleteMetadataStore( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr MetadataServiceTracingConnection::CreateArtifact( google::cloud::aiplatform::v1::CreateArtifactRequest const& request) { @@ -122,6 +171,30 @@ MetadataServiceTracingConnection::DeleteArtifact( return internal::EndSpan(std::move(span), child_->DeleteArtifact(request)); } +StatusOr +MetadataServiceTracingConnection::DeleteArtifact( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::DeleteArtifact( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MetadataServiceTracingConnection::PurgeArtifacts( google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) { @@ -131,6 +204,30 @@ MetadataServiceTracingConnection::PurgeArtifacts( return internal::EndSpan(std::move(span), child_->PurgeArtifacts(request)); } +StatusOr +MetadataServiceTracingConnection::PurgeArtifacts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::PurgeArtifacts( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr MetadataServiceTracingConnection::CreateContext( google::cloud::aiplatform::v1::CreateContextRequest const& request) { @@ -178,6 +275,30 @@ MetadataServiceTracingConnection::DeleteContext( return internal::EndSpan(std::move(span), child_->DeleteContext(request)); } +StatusOr +MetadataServiceTracingConnection::DeleteContext( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::DeleteContext( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MetadataServiceTracingConnection::PurgeContexts( google::cloud::aiplatform::v1::PurgeContextsRequest const& request) { @@ -187,6 +308,30 @@ MetadataServiceTracingConnection::PurgeContexts( return internal::EndSpan(std::move(span), child_->PurgeContexts(request)); } +StatusOr +MetadataServiceTracingConnection::PurgeContexts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::PurgeContexts( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr< google::cloud::aiplatform::v1::AddContextArtifactsAndExecutionsResponse> MetadataServiceTracingConnection::AddContextArtifactsAndExecutions( @@ -276,6 +421,30 @@ MetadataServiceTracingConnection::DeleteExecution( return internal::EndSpan(std::move(span), child_->DeleteExecution(request)); } +StatusOr +MetadataServiceTracingConnection::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::DeleteExecution( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MetadataServiceTracingConnection::PurgeExecutions( google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) { @@ -285,6 +454,30 @@ MetadataServiceTracingConnection::PurgeExecutions( return internal::EndSpan(std::move(span), child_->PurgeExecutions(request)); } +StatusOr +MetadataServiceTracingConnection::PurgeExecutions( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetadataServiceTracingConnection::PurgeExecutions( + google::cloud::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(google::cloud::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..0bebd69f6f483 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request) + override; + + future> + CreateMetadataStore(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request) + override; + + future> + DeleteMetadataStore(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request) + override; + + future> + DeleteArtifact(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeArtifacts(google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) override; + StatusOr PurgeArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request) + override; + + future> + PurgeArtifacts(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request) + override; + + future> + DeleteContext(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeContexts(google::cloud::aiplatform::v1::PurgeContextsRequest const& request) override; + StatusOr PurgeContexts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request) + override; + + future> + PurgeContexts(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request) + override; + + future> + DeleteExecution(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeExecutions(google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) override; + StatusOr PurgeExecutions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request) + override; + + future> + PurgeExecutions(google::cloud::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..33488c26be94e 100644 --- a/google/cloud/aiplatform/v1/internal/migration_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/migration_connection_impl.cc @@ -144,6 +144,62 @@ MigrationServiceConnectionImpl::BatchMigrateResources( polling_policy(*current), __func__); } +StatusOr +MigrationServiceConnectionImpl::BatchMigrateResources( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..27d0f3bc62197 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request) override; + + future> + BatchMigrateResources( + google::cloud::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..fa44e84f284d2 100644 --- a/google/cloud/aiplatform/v1/internal/migration_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/migration_tracing_connection.cc @@ -56,6 +56,31 @@ MigrationServiceTracingConnection::BatchMigrateResources( child_->BatchMigrateResources(request)); } +StatusOr +MigrationServiceTracingConnection::BatchMigrateResources( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationServiceTracingConnection::BatchMigrateResources( + google::cloud::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( + google::cloud::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..e657971bd6386 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request) override; + + future> + BatchMigrateResources( + google::cloud::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..8b848e5ddbf33 100644 --- a/google/cloud/aiplatform/v1/internal/model_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/model_connection_impl.cc @@ -103,6 +103,60 @@ ModelServiceConnectionImpl::UploadModel( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::UploadModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +296,64 @@ ModelServiceConnectionImpl::UpdateExplanationDataset( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::UpdateExplanationDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +393,60 @@ ModelServiceConnectionImpl::DeleteModel( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::DeleteModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +487,61 @@ ModelServiceConnectionImpl::DeleteModelVersion( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::DeleteModelVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +596,60 @@ ModelServiceConnectionImpl::ExportModel( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::ExportModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +688,59 @@ ModelServiceConnectionImpl::CopyModel( polling_policy(*current), __func__); } +StatusOr ModelServiceConnectionImpl::CopyModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..00f4b47e6ec9c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request) + override; + + future> + UploadModel(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request) override; + + future< + StatusOr> + UpdateExplanationDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModel(google::cloud::aiplatform::v1::DeleteModelRequest const& request) override; + StatusOr DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request) + override; + + future> + DeleteModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) override; + StatusOr DeleteModelVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) + override; + + future> + DeleteModelVersion(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request) + override; + + future> + ExportModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const& request) override; + StatusOr CopyModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request) override; + + future> CopyModel( + google::cloud::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..b0c2192c189f1 100644 --- a/google/cloud/aiplatform/v1/internal/model_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/model_tracing_connection.cc @@ -42,6 +42,30 @@ ModelServiceTracingConnection::UploadModel( return internal::EndSpan(std::move(span), child_->UploadModel(request)); } +StatusOr +ModelServiceTracingConnection::UploadModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::UploadModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ModelServiceTracingConnection::GetModel( google::cloud::aiplatform::v1::GetModelRequest const& request) { @@ -94,6 +118,32 @@ ModelServiceTracingConnection::UpdateExplanationDataset( child_->UpdateExplanationDataset(request)); } +StatusOr +ModelServiceTracingConnection::UpdateExplanationDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +ModelServiceTracingConnection::UpdateExplanationDataset( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ModelServiceTracingConnection::DeleteModel( google::cloud::aiplatform::v1::DeleteModelRequest const& request) { @@ -103,6 +153,30 @@ ModelServiceTracingConnection::DeleteModel( return internal::EndSpan(std::move(span), child_->DeleteModel(request)); } +StatusOr +ModelServiceTracingConnection::DeleteModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::DeleteModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ModelServiceTracingConnection::DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) { @@ -113,6 +187,30 @@ ModelServiceTracingConnection::DeleteModelVersion( child_->DeleteModelVersion(request)); } +StatusOr +ModelServiceTracingConnection::DeleteModelVersion( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::DeleteModelVersion( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ModelServiceTracingConnection::MergeVersionAliases( google::cloud::aiplatform::v1::MergeVersionAliasesRequest const& request) { @@ -131,6 +229,30 @@ ModelServiceTracingConnection::ExportModel( return internal::EndSpan(std::move(span), child_->ExportModel(request)); } +StatusOr +ModelServiceTracingConnection::ExportModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::ExportModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ModelServiceTracingConnection::CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const& request) { @@ -140,6 +262,30 @@ ModelServiceTracingConnection::CopyModel( return internal::EndSpan(std::move(span), child_->CopyModel(request)); } +StatusOr +ModelServiceTracingConnection::CopyModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::CopyModel( + google::cloud::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(google::cloud::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..1155165aa1357 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request) + override; + + future> + UploadModel(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request) override; + + future< + StatusOr> + UpdateExplanationDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModel(google::cloud::aiplatform::v1::DeleteModelRequest const& request) override; + StatusOr DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request) + override; + + future> + DeleteModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) override; + StatusOr DeleteModelVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request) + override; + + future> + DeleteModelVersion(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request) + override; + + future> + ExportModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const& request) override; + StatusOr CopyModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request) override; + + future> CopyModel( + google::cloud::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..cb872ec6071dd 100644 --- a/google/cloud/aiplatform/v1/internal/notebook_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/notebook_connection_impl.cc @@ -107,6 +107,62 @@ NotebookServiceConnectionImpl::CreateNotebookRuntimeTemplate( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +258,62 @@ NotebookServiceConnectionImpl::DeleteNotebookRuntimeTemplate( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +371,62 @@ NotebookServiceConnectionImpl::AssignNotebookRuntime( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::AssignNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +518,62 @@ NotebookServiceConnectionImpl::DeleteNotebookRuntime( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +615,62 @@ NotebookServiceConnectionImpl::UpgradeNotebookRuntime( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +711,61 @@ NotebookServiceConnectionImpl::StartNotebookRuntime( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::StartNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..7c552491c14c3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request) override; + + future> + CreateNotebookRuntimeTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request) override; + + future> + DeleteNotebookRuntimeTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request) override; + + future> + AssignNotebookRuntime( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request) override; + + future> + DeleteNotebookRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& request) override; + StatusOr UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request) override; + + future< + StatusOr> + UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) override; + StatusOr StartNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) + override; + + future> + StartNotebookRuntime( + google::cloud::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..040cdf04605af 100644 --- a/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/notebook_tracing_connection.cc @@ -45,6 +45,33 @@ NotebookServiceTracingConnection::CreateNotebookRuntimeTemplate( child_->CreateNotebookRuntimeTemplate(request)); } +StatusOr +NotebookServiceTracingConnection::CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateNotebookRuntimeTemplate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::GetNotebookRuntimeTemplate( google::cloud::aiplatform::v1::GetNotebookRuntimeTemplateRequest const& @@ -80,6 +107,33 @@ NotebookServiceTracingConnection::DeleteNotebookRuntimeTemplate( child_->DeleteNotebookRuntimeTemplate(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteNotebookRuntimeTemplate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::UpdateNotebookRuntimeTemplate( google::cloud::aiplatform::v1::UpdateNotebookRuntimeTemplateRequest const& @@ -103,6 +157,31 @@ NotebookServiceTracingConnection::AssignNotebookRuntime( child_->AssignNotebookRuntime(request)); } +StatusOr +NotebookServiceTracingConnection::AssignNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::AssignNotebookRuntime( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::GetNotebookRuntime( google::cloud::aiplatform::v1::GetNotebookRuntimeRequest const& request) { @@ -135,6 +214,31 @@ NotebookServiceTracingConnection::DeleteNotebookRuntime( child_->DeleteNotebookRuntime(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteNotebookRuntime( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& @@ -146,6 +250,31 @@ NotebookServiceTracingConnection::UpgradeNotebookRuntime( child_->UpgradeNotebookRuntime(request)); } +StatusOr +NotebookServiceTracingConnection::UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpgradeNotebookRuntime( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) { @@ -156,6 +285,30 @@ NotebookServiceTracingConnection::StartNotebookRuntime( child_->StartNotebookRuntime(request)); } +StatusOr +NotebookServiceTracingConnection::StartNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StartNotebookRuntime( + google::cloud::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( + google::cloud::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..5ca881ceb2fe2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request) override; + + future> + CreateNotebookRuntimeTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request) override; + + future> + DeleteNotebookRuntimeTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request) override; + + future> + AssignNotebookRuntime( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request) override; + + future> + DeleteNotebookRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& request) override; + StatusOr UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request) override; + + future< + StatusOr> + UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) override; + StatusOr StartNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request) + override; + + future> + StartNotebookRuntime( + google::cloud::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..77ce2d3cb1c1a 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,63 @@ PersistentResourceServiceConnectionImpl::CreatePersistentResource( polling_policy(*current), __func__); } +StatusOr +PersistentResourceServiceConnectionImpl::CreatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +267,63 @@ PersistentResourceServiceConnectionImpl::DeletePersistentResource( polling_policy(*current), __func__); } +StatusOr +PersistentResourceServiceConnectionImpl::DeletePersistentResource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +365,63 @@ PersistentResourceServiceConnectionImpl::UpdatePersistentResource( polling_policy(*current), __func__); } +StatusOr +PersistentResourceServiceConnectionImpl::UpdatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +463,63 @@ PersistentResourceServiceConnectionImpl::RebootPersistentResource( polling_policy(*current), __func__); } +StatusOr +PersistentResourceServiceConnectionImpl::RebootPersistentResource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..03a0c3d6c62bc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request) override; + + future> + CreatePersistentResource( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request) override; + + future> + DeletePersistentResource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& request) override; + StatusOr UpdatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request) override; + + future> + UpdatePersistentResource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& request) override; + StatusOr RebootPersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request) override; + + future> + RebootPersistentResource( + google::cloud::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..a57c6c39abbf8 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,33 @@ PersistentResourceServiceTracingConnection::CreatePersistentResource( child_->CreatePersistentResource(request)); } +StatusOr +PersistentResourceServiceTracingConnection::CreatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PersistentResourceServiceTracingConnection::CreatePersistentResource( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr PersistentResourceServiceTracingConnection::GetPersistentResource( google::cloud::aiplatform::v1::GetPersistentResourceRequest const& @@ -83,6 +110,33 @@ PersistentResourceServiceTracingConnection::DeletePersistentResource( child_->DeletePersistentResource(request)); } +StatusOr +PersistentResourceServiceTracingConnection::DeletePersistentResource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PersistentResourceServiceTracingConnection::DeletePersistentResource( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> PersistentResourceServiceTracingConnection::UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& @@ -95,6 +149,33 @@ PersistentResourceServiceTracingConnection::UpdatePersistentResource( child_->UpdatePersistentResource(request)); } +StatusOr +PersistentResourceServiceTracingConnection::UpdatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PersistentResourceServiceTracingConnection::UpdatePersistentResource( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> PersistentResourceServiceTracingConnection::RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& @@ -107,6 +188,33 @@ PersistentResourceServiceTracingConnection::RebootPersistentResource( child_->RebootPersistentResource(request)); } +StatusOr +PersistentResourceServiceTracingConnection::RebootPersistentResource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PersistentResourceServiceTracingConnection::RebootPersistentResource( + google::cloud::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( + google::cloud::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..d215275982f6d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request) override; + + future> + CreatePersistentResource( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request) override; + + future> + DeletePersistentResource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& request) override; + StatusOr UpdatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request) override; + + future> + UpdatePersistentResource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& request) override; + StatusOr RebootPersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request) override; + + future> + RebootPersistentResource( + google::cloud::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..34f47a79b5a14 100644 --- a/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/pipeline_connection_impl.cc @@ -175,6 +175,62 @@ PipelineServiceConnectionImpl::DeleteTrainingPipeline( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::DeleteTrainingPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +350,61 @@ PipelineServiceConnectionImpl::DeletePipelineJob( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::DeletePipelineJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +446,63 @@ PipelineServiceConnectionImpl::BatchDeletePipelineJobs( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +558,63 @@ PipelineServiceConnectionImpl::BatchCancelPipelineJobs( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::BatchCancelPipelineJobs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..28913015ff1ff 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request) override; + + future> + DeleteTrainingPipeline( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request) + override; + + future> + DeletePipelineJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& request) override; + StatusOr BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request) override; + + future< + StatusOr> + BatchDeletePipelineJobs( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request) override; + + future< + StatusOr> + BatchCancelPipelineJobs( + google::cloud::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..43e60e80e172d 100644 --- a/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/pipeline_tracing_connection.cc @@ -75,6 +75,31 @@ PipelineServiceTracingConnection::DeleteTrainingPipeline( child_->DeleteTrainingPipeline(request)); } +StatusOr +PipelineServiceTracingConnection::DeleteTrainingPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PipelineServiceTracingConnection::DeleteTrainingPipeline( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status PipelineServiceTracingConnection::CancelTrainingPipeline( google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const& request) { @@ -123,6 +148,30 @@ PipelineServiceTracingConnection::DeletePipelineJob( return internal::EndSpan(std::move(span), child_->DeletePipelineJob(request)); } +StatusOr +PipelineServiceTracingConnection::DeletePipelineJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PipelineServiceTracingConnection::DeletePipelineJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> PipelineServiceTracingConnection::BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& @@ -134,6 +183,31 @@ PipelineServiceTracingConnection::BatchDeletePipelineJobs( child_->BatchDeletePipelineJobs(request)); } +StatusOr +PipelineServiceTracingConnection::BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PipelineServiceTracingConnection::BatchDeletePipelineJobs( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status PipelineServiceTracingConnection::CancelPipelineJob( google::cloud::aiplatform::v1::CancelPipelineJobRequest const& request) { auto span = internal::MakeSpan( @@ -153,6 +227,31 @@ PipelineServiceTracingConnection::BatchCancelPipelineJobs( child_->BatchCancelPipelineJobs(request)); } +StatusOr +PipelineServiceTracingConnection::BatchCancelPipelineJobs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PipelineServiceTracingConnection::BatchCancelPipelineJobs( + google::cloud::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( + google::cloud::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..672d43822d5cd 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request) override; + + future> + DeleteTrainingPipeline( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request) + override; + + future> + DeletePipelineJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& request) override; + StatusOr BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request) override; + + future< + StatusOr> + BatchDeletePipelineJobs( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request) override; + + future< + StatusOr> + BatchCancelPipelineJobs( + google::cloud::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..23d136abce495 100644 --- a/google/cloud/aiplatform/v1/internal/schedule_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/schedule_connection_impl.cc @@ -121,6 +121,61 @@ ScheduleServiceConnectionImpl::DeleteSchedule( polling_policy(*current), __func__); } +StatusOr +ScheduleServiceConnectionImpl::DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..ca75e3772b28c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) + override; + + future> + DeleteSchedule(google::cloud::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..09fad91fe2627 100644 --- a/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/schedule_tracing_connection.cc @@ -51,6 +51,30 @@ ScheduleServiceTracingConnection::DeleteSchedule( return internal::EndSpan(std::move(span), child_->DeleteSchedule(request)); } +StatusOr +ScheduleServiceTracingConnection::DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ScheduleServiceTracingConnection::DeleteSchedule( + google::cloud::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(google::cloud::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..9882711627821 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request) + override; + + future> + DeleteSchedule(google::cloud::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..dc7999c2216ba 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,61 @@ SpecialistPoolServiceConnectionImpl::CreateSpecialistPool( polling_policy(*current), __func__); } +StatusOr +SpecialistPoolServiceConnectionImpl::CreateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +253,61 @@ SpecialistPoolServiceConnectionImpl::DeleteSpecialistPool( polling_policy(*current), __func__); } +StatusOr +SpecialistPoolServiceConnectionImpl::DeleteSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +348,61 @@ SpecialistPoolServiceConnectionImpl::UpdateSpecialistPool( polling_policy(*current), __func__); } +StatusOr +SpecialistPoolServiceConnectionImpl::UpdateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..0a7cd22b14632 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request) + override; + + future> + CreateSpecialistPool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request) + override; + + future> + DeleteSpecialistPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) override; + StatusOr UpdateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) + override; + + future> + UpdateSpecialistPool( + google::cloud::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..337dd4fa9aa2b 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,30 @@ SpecialistPoolServiceTracingConnection::CreateSpecialistPool( child_->CreateSpecialistPool(request)); } +StatusOr +SpecialistPoolServiceTracingConnection::CreateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpecialistPoolServiceTracingConnection::CreateSpecialistPool( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SpecialistPoolServiceTracingConnection::GetSpecialistPool( google::cloud::aiplatform::v1::GetSpecialistPoolRequest const& request) { @@ -74,6 +98,30 @@ SpecialistPoolServiceTracingConnection::DeleteSpecialistPool( child_->DeleteSpecialistPool(request)); } +StatusOr +SpecialistPoolServiceTracingConnection::DeleteSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpecialistPoolServiceTracingConnection::DeleteSpecialistPool( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> SpecialistPoolServiceTracingConnection::UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) { @@ -84,6 +132,30 @@ SpecialistPoolServiceTracingConnection::UpdateSpecialistPool( child_->UpdateSpecialistPool(request)); } +StatusOr +SpecialistPoolServiceTracingConnection::UpdateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpecialistPoolServiceTracingConnection::UpdateSpecialistPool( + google::cloud::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( + google::cloud::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..6a04309d39080 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request) + override; + + future> + CreateSpecialistPool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request) + override; + + future> + DeleteSpecialistPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) override; + StatusOr UpdateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request) + override; + + future> + UpdateSpecialistPool( + google::cloud::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..ad0e674e35a94 100644 --- a/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/tensorboard_connection_impl.cc @@ -113,6 +113,61 @@ TensorboardServiceConnectionImpl::CreateTensorboard( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::CreateTensorboard( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +223,61 @@ TensorboardServiceConnectionImpl::UpdateTensorboard( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::UpdateTensorboard( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +352,61 @@ TensorboardServiceConnectionImpl::DeleteTensorboard( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::DeleteTensorboard( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +563,62 @@ TensorboardServiceConnectionImpl::DeleteTensorboardExperiment( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::DeleteTensorboardExperiment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +755,61 @@ TensorboardServiceConnectionImpl::DeleteTensorboardRun( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::DeleteTensorboardRun( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +953,62 @@ TensorboardServiceConnectionImpl::DeleteTensorboardTimeSeries( polling_policy(*current), __func__); } +StatusOr +TensorboardServiceConnectionImpl::DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..684fce4b767a3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request) + override; + + future> + CreateTensorboard(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request) + override; + + future> + UpdateTensorboard(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request) + override; + + future> + DeleteTensorboard(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request) override; + + future> + DeleteTensorboardExperiment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request) + override; + + future> + DeleteTensorboardRun( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request) override; + + future> + DeleteTensorboardTimeSeries( + google::cloud::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..52976fe431dea 100644 --- a/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/tensorboard_tracing_connection.cc @@ -42,6 +42,30 @@ TensorboardServiceTracingConnection::CreateTensorboard( return internal::EndSpan(std::move(span), child_->CreateTensorboard(request)); } +StatusOr +TensorboardServiceTracingConnection::CreateTensorboard( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::CreateTensorboard( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TensorboardServiceTracingConnection::GetTensorboard( google::cloud::aiplatform::v1::GetTensorboardRequest const& request) { @@ -60,6 +84,30 @@ TensorboardServiceTracingConnection::UpdateTensorboard( return internal::EndSpan(std::move(span), child_->UpdateTensorboard(request)); } +StatusOr +TensorboardServiceTracingConnection::UpdateTensorboard( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::UpdateTensorboard( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TensorboardServiceTracingConnection::ListTensorboards( google::cloud::aiplatform::v1::ListTensorboardsRequest request) { @@ -81,6 +129,30 @@ TensorboardServiceTracingConnection::DeleteTensorboard( return internal::EndSpan(std::move(span), child_->DeleteTensorboard(request)); } +StatusOr +TensorboardServiceTracingConnection::DeleteTensorboard( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::DeleteTensorboard( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TensorboardServiceTracingConnection::ReadTensorboardUsage( google::cloud::aiplatform::v1::ReadTensorboardUsageRequest const& request) { @@ -156,6 +228,33 @@ TensorboardServiceTracingConnection::DeleteTensorboardExperiment( child_->DeleteTensorboardExperiment(request)); } +StatusOr +TensorboardServiceTracingConnection::DeleteTensorboardExperiment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::DeleteTensorboardExperiment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TensorboardServiceTracingConnection::CreateTensorboardRun( google::cloud::aiplatform::v1::CreateTensorboardRunRequest const& request) { @@ -216,6 +315,30 @@ TensorboardServiceTracingConnection::DeleteTensorboardRun( child_->DeleteTensorboardRun(request)); } +StatusOr +TensorboardServiceTracingConnection::DeleteTensorboardRun( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::DeleteTensorboardRun( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr< google::cloud::aiplatform::v1::BatchCreateTensorboardTimeSeriesResponse> TensorboardServiceTracingConnection::BatchCreateTensorboardTimeSeries( @@ -285,6 +408,33 @@ TensorboardServiceTracingConnection::DeleteTensorboardTimeSeries( child_->DeleteTensorboardTimeSeries(request)); } +StatusOr +TensorboardServiceTracingConnection::DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TensorboardServiceTracingConnection::DeleteTensorboardTimeSeries( + google::cloud::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( + google::cloud::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..b5a9fbe0fe205 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request) + override; + + future> + CreateTensorboard(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request) + override; + + future> + UpdateTensorboard(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request) + override; + + future> + DeleteTensorboard(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request) override; + + future> + DeleteTensorboardExperiment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request) + override; + + future> + DeleteTensorboardRun( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request) override; + + future> + DeleteTensorboardTimeSeries( + google::cloud::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..4a2c3f88bac67 100644 --- a/google/cloud/aiplatform/v1/internal/vizier_connection_impl.cc +++ b/google/cloud/aiplatform/v1/internal/vizier_connection_impl.cc @@ -194,6 +194,61 @@ VizierServiceConnectionImpl::SuggestTrials( polling_policy(*current), __func__); } +StatusOr +VizierServiceConnectionImpl::SuggestTrials( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +395,63 @@ VizierServiceConnectionImpl::CheckTrialEarlyStoppingState( polling_policy(*current), __func__); } +StatusOr +VizierServiceConnectionImpl::CheckTrialEarlyStoppingState( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..fe905c58b2da7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) + override; + + future> + SuggestTrials(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request) override; + + future> + CheckTrialEarlyStoppingState( + google::cloud::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..eb5142f27b7d7 100644 --- a/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.cc +++ b/google/cloud/aiplatform/v1/internal/vizier_tracing_connection.cc @@ -88,6 +88,30 @@ VizierServiceTracingConnection::SuggestTrials( return internal::EndSpan(std::move(span), child_->SuggestTrials(request)); } +StatusOr +VizierServiceTracingConnection::SuggestTrials( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VizierServiceTracingConnection::SuggestTrials( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VizierServiceTracingConnection::CreateTrial( google::cloud::aiplatform::v1::CreateTrialRequest const& request) { @@ -155,6 +179,32 @@ VizierServiceTracingConnection::CheckTrialEarlyStoppingState( child_->CheckTrialEarlyStoppingState(request)); } +StatusOr +VizierServiceTracingConnection::CheckTrialEarlyStoppingState( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VizierServiceTracingConnection::CheckTrialEarlyStoppingState( + google::cloud::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( + google::cloud::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..55b93be3afc3a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request) + override; + + future> + SuggestTrials(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request) override; + + future> + CheckTrialEarlyStoppingState( + google::cloud::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_client.cc b/google/cloud/aiplatform/v1/job_client.cc index cf8ab599cec0f..2be1b2c17ee9e 100644 --- a/google/cloud/aiplatform/v1/job_client.cc +++ b/google/cloud/aiplatform/v1/job_client.cc @@ -91,6 +91,16 @@ JobServiceClient::DeleteCustomJob(std::string const& name, Options opts) { return connection_->DeleteCustomJob(request); } +StatusOr JobServiceClient::DeleteCustomJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteCustomJobRequest request; + request.set_name(name); + return connection_->DeleteCustomJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::DeleteCustomJob( google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request, @@ -99,6 +109,24 @@ JobServiceClient::DeleteCustomJob( return connection_->DeleteCustomJob(request); } +StatusOr JobServiceClient::DeleteCustomJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCustomJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::DeleteCustomJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCustomJob(google::cloud::ExperimentalTag{}, + operation); +} + Status JobServiceClient::CancelCustomJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -175,6 +203,17 @@ JobServiceClient::DeleteDataLabelingJob(std::string const& name, Options opts) { return connection_->DeleteDataLabelingJob(request); } +StatusOr +JobServiceClient::DeleteDataLabelingJob(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest request; + request.set_name(name); + return connection_->DeleteDataLabelingJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::DeleteDataLabelingJob( google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& request, @@ -183,6 +222,25 @@ JobServiceClient::DeleteDataLabelingJob( return connection_->DeleteDataLabelingJob(request); } +StatusOr +JobServiceClient::DeleteDataLabelingJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataLabelingJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::DeleteDataLabelingJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataLabelingJob(google::cloud::ExperimentalTag{}, + operation); +} + Status JobServiceClient::CancelDataLabelingJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -264,6 +322,18 @@ JobServiceClient::DeleteHyperparameterTuningJob(std::string const& name, return connection_->DeleteHyperparameterTuningJob(request); } +StatusOr +JobServiceClient::DeleteHyperparameterTuningJob(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest request; + request.set_name(name); + return connection_->DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::DeleteHyperparameterTuningJob( google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& @@ -273,6 +343,26 @@ JobServiceClient::DeleteHyperparameterTuningJob( return connection_->DeleteHyperparameterTuningJob(request); } +StatusOr +JobServiceClient::DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag{}, operation); +} + Status JobServiceClient::CancelHyperparameterTuningJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -344,6 +434,16 @@ JobServiceClient::DeleteNasJob(std::string const& name, Options opts) { return connection_->DeleteNasJob(request); } +StatusOr JobServiceClient::DeleteNasJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteNasJobRequest request; + request.set_name(name); + return connection_->DeleteNasJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::DeleteNasJob( google::cloud::aiplatform::v1::DeleteNasJobRequest const& request, @@ -352,6 +452,23 @@ JobServiceClient::DeleteNasJob( return connection_->DeleteNasJob(request); } +StatusOr JobServiceClient::DeleteNasJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNasJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::DeleteNasJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNasJob(google::cloud::ExperimentalTag{}, operation); +} + Status JobServiceClient::CancelNasJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); google::cloud::aiplatform::v1::CancelNasJobRequest request; @@ -462,6 +579,18 @@ JobServiceClient::DeleteBatchPredictionJob(std::string const& name, return connection_->DeleteBatchPredictionJob(request); } +StatusOr +JobServiceClient::DeleteBatchPredictionJob(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest request; + request.set_name(name); + return connection_->DeleteBatchPredictionJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::DeleteBatchPredictionJob( google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& @@ -471,6 +600,26 @@ JobServiceClient::DeleteBatchPredictionJob( return connection_->DeleteBatchPredictionJob(request); } +StatusOr +JobServiceClient::DeleteBatchPredictionJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBatchPredictionJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::DeleteBatchPredictionJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBatchPredictionJob(google::cloud::ExperimentalTag{}, + operation); +} + Status JobServiceClient::CancelBatchPredictionJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -584,6 +733,22 @@ JobServiceClient::UpdateModelDeploymentMonitoringJob( return connection_->UpdateModelDeploymentMonitoringJob(request); } +StatusOr +JobServiceClient::UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ModelDeploymentMonitoringJob const& + model_deployment_monitoring_job, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateModelDeploymentMonitoringJobRequest + request; + *request.mutable_model_deployment_monitoring_job() = + model_deployment_monitoring_job; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::UpdateModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: @@ -593,6 +758,26 @@ JobServiceClient::UpdateModelDeploymentMonitoringJob( return connection_->UpdateModelDeploymentMonitoringJob(request); } +StatusOr +JobServiceClient::UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag{}, operation); +} + future> JobServiceClient::DeleteModelDeploymentMonitoringJob(std::string const& name, Options opts) { @@ -603,6 +788,18 @@ JobServiceClient::DeleteModelDeploymentMonitoringJob(std::string const& name, return connection_->DeleteModelDeploymentMonitoringJob(request); } +StatusOr +JobServiceClient::DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteModelDeploymentMonitoringJobRequest + request; + request.set_name(name); + return connection_->DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::DeleteModelDeploymentMonitoringJob( google::cloud::aiplatform::v1:: @@ -612,6 +809,26 @@ JobServiceClient::DeleteModelDeploymentMonitoringJob( return connection_->DeleteModelDeploymentMonitoringJob(request); } +StatusOr +JobServiceClient::DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag{}, operation); +} + Status JobServiceClient::PauseModelDeploymentMonitoringJob( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/aiplatform/v1/job_client.h b/google/cloud/aiplatform/v1/job_client.h index e924206edc436..2aaf6f46fc01d 100644 --- a/google/cloud/aiplatform/v1/job_client.h +++ b/google/cloud/aiplatform/v1/job_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_JOB_CLIENT_H #include "google/cloud/aiplatform/v1/job_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -314,6 +316,10 @@ class JobServiceClient { future> DeleteCustomJob(std::string const& name, Options opts = {}); + StatusOr DeleteCustomJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a CustomJob. @@ -353,6 +359,16 @@ class JobServiceClient { google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request, Options opts = {}); + StatusOr DeleteCustomJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request, + Options opts = {}); + + future> + DeleteCustomJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Cancels a CustomJob. @@ -667,6 +683,10 @@ class JobServiceClient { future> DeleteDataLabelingJob(std::string const& name, Options opts = {}); + StatusOr DeleteDataLabelingJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a DataLabelingJob. @@ -707,6 +727,17 @@ class JobServiceClient { request, Options opts = {}); + StatusOr DeleteDataLabelingJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request, + Options opts = {}); + + future> + DeleteDataLabelingJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Cancels a DataLabelingJob. Success of cancellation is not guaranteed. @@ -996,6 +1027,10 @@ class JobServiceClient { future> DeleteHyperparameterTuningJob(std::string const& name, Options opts = {}); + StatusOr DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a HyperparameterTuningJob. @@ -1036,6 +1071,17 @@ class JobServiceClient { request, Options opts = {}); + StatusOr DeleteHyperparameterTuningJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteHyperparameterTuningJobRequest const& + request, + Options opts = {}); + + future> + DeleteHyperparameterTuningJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Cancels a HyperparameterTuningJob. @@ -1349,6 +1395,10 @@ class JobServiceClient { future> DeleteNasJob(std::string const& name, Options opts = {}); + StatusOr DeleteNasJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a NasJob. @@ -1388,6 +1438,16 @@ class JobServiceClient { google::cloud::aiplatform::v1::DeleteNasJobRequest const& request, Options opts = {}); + StatusOr DeleteNasJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request, + Options opts = {}); + + future> + DeleteNasJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Cancels a NasJob. @@ -1843,6 +1903,10 @@ class JobServiceClient { future> DeleteBatchPredictionJob(std::string const& name, Options opts = {}); + StatusOr DeleteBatchPredictionJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a BatchPredictionJob. Can only be called on jobs that already @@ -1884,6 +1948,17 @@ class JobServiceClient { request, Options opts = {}); + StatusOr DeleteBatchPredictionJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request, + Options opts = {}); + + future> + DeleteBatchPredictionJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Cancels a BatchPredictionJob. @@ -2296,6 +2371,12 @@ class JobServiceClient { model_deployment_monitoring_job, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ModelDeploymentMonitoringJob const& + model_deployment_monitoring_job, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a ModelDeploymentMonitoringJob. @@ -2336,6 +2417,17 @@ class JobServiceClient { UpdateModelDeploymentMonitoringJobRequest const& request, Options opts = {}); + StatusOr UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request, + Options opts = {}); + + future> + UpdateModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a ModelDeploymentMonitoringJob. @@ -2371,6 +2463,10 @@ class JobServiceClient { DeleteModelDeploymentMonitoringJob(std::string const& name, Options opts = {}); + StatusOr DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a ModelDeploymentMonitoringJob. @@ -2411,6 +2507,17 @@ class JobServiceClient { DeleteModelDeploymentMonitoringJobRequest const& request, Options opts = {}); + StatusOr DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request, + Options opts = {}); + + future> + DeleteModelDeploymentMonitoringJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Pauses a ModelDeploymentMonitoringJob. If the job is running, the server 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_client.h b/google/cloud/aiplatform/v1/llm_utility_client.h index 3400f977947f4..7cef8b829bf3c 100644 --- a/google/cloud/aiplatform/v1/llm_utility_client.h +++ b/google/cloud/aiplatform/v1/llm_utility_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_LLM_UTILITY_CLIENT_H #include "google/cloud/aiplatform/v1/llm_utility_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/aiplatform/v1/match_client.h index 7ad126a1b23ae..cd0e54d9e0c62 100644 --- a/google/cloud/aiplatform/v1/match_client.h +++ b/google/cloud/aiplatform/v1/match_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_MATCH_CLIENT_H #include "google/cloud/aiplatform/v1/match_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/aiplatform/v1/metadata_client.cc index 62da42de889bb..5c215f2626fe2 100644 --- a/google/cloud/aiplatform/v1/metadata_client.cc +++ b/google/cloud/aiplatform/v1/metadata_client.cc @@ -45,6 +45,21 @@ MetadataServiceClient::CreateMetadataStore( return connection_->CreateMetadataStore(request); } +StatusOr +MetadataServiceClient::CreateMetadataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::MetadataStore const& metadata_store, + std::string const& metadata_store_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateMetadataStoreRequest request; + request.set_parent(parent); + *request.mutable_metadata_store() = metadata_store; + request.set_metadata_store_id(metadata_store_id); + return connection_->CreateMetadataStore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MetadataServiceClient::CreateMetadataStore( google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request, @@ -53,6 +68,25 @@ MetadataServiceClient::CreateMetadataStore( return connection_->CreateMetadataStore(request); } +StatusOr +MetadataServiceClient::CreateMetadataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMetadataStore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MetadataServiceClient::CreateMetadataStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMetadataStore(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr MetadataServiceClient::GetMetadataStore(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -96,6 +130,18 @@ MetadataServiceClient::DeleteMetadataStore(std::string const& name, return connection_->DeleteMetadataStore(request); } +StatusOr +MetadataServiceClient::DeleteMetadataStore(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest request; + request.set_name(name); + return connection_->DeleteMetadataStore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MetadataServiceClient::DeleteMetadataStore( @@ -105,6 +151,26 @@ MetadataServiceClient::DeleteMetadataStore( return connection_->DeleteMetadataStore(request); } +StatusOr +MetadataServiceClient::DeleteMetadataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMetadataStore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MetadataServiceClient::DeleteMetadataStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMetadataStore(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr MetadataServiceClient::CreateArtifact( std::string const& parent, @@ -184,6 +250,16 @@ MetadataServiceClient::DeleteArtifact(std::string const& name, Options opts) { return connection_->DeleteArtifact(request); } +StatusOr MetadataServiceClient::DeleteArtifact( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteArtifactRequest request; + request.set_name(name); + return connection_->DeleteArtifact(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MetadataServiceClient::DeleteArtifact( google::cloud::aiplatform::v1::DeleteArtifactRequest const& request, @@ -192,6 +268,24 @@ MetadataServiceClient::DeleteArtifact( return connection_->DeleteArtifact(request); } +StatusOr MetadataServiceClient::DeleteArtifact( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteArtifact(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MetadataServiceClient::DeleteArtifact( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteArtifact(google::cloud::ExperimentalTag{}, + operation); +} + future> MetadataServiceClient::PurgeArtifacts(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -200,6 +294,16 @@ MetadataServiceClient::PurgeArtifacts(std::string const& parent, Options opts) { return connection_->PurgeArtifacts(request); } +StatusOr MetadataServiceClient::PurgeArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::PurgeArtifactsRequest request; + request.set_parent(parent); + return connection_->PurgeArtifacts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MetadataServiceClient::PurgeArtifacts( google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request, @@ -208,6 +312,24 @@ MetadataServiceClient::PurgeArtifacts( return connection_->PurgeArtifacts(request); } +StatusOr MetadataServiceClient::PurgeArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeArtifacts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MetadataServiceClient::PurgeArtifacts( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeArtifacts(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr MetadataServiceClient::CreateContext( std::string const& parent, @@ -287,6 +409,16 @@ MetadataServiceClient::DeleteContext(std::string const& name, Options opts) { return connection_->DeleteContext(request); } +StatusOr MetadataServiceClient::DeleteContext( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteContextRequest request; + request.set_name(name); + return connection_->DeleteContext(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MetadataServiceClient::DeleteContext( google::cloud::aiplatform::v1::DeleteContextRequest const& request, @@ -295,6 +427,24 @@ MetadataServiceClient::DeleteContext( return connection_->DeleteContext(request); } +StatusOr MetadataServiceClient::DeleteContext( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteContext(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MetadataServiceClient::DeleteContext( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteContext(google::cloud::ExperimentalTag{}, + operation); +} + future> MetadataServiceClient::PurgeContexts(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -303,6 +453,16 @@ MetadataServiceClient::PurgeContexts(std::string const& parent, Options opts) { return connection_->PurgeContexts(request); } +StatusOr MetadataServiceClient::PurgeContexts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::PurgeContextsRequest request; + request.set_parent(parent); + return connection_->PurgeContexts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MetadataServiceClient::PurgeContexts( google::cloud::aiplatform::v1::PurgeContextsRequest const& request, @@ -311,6 +471,24 @@ MetadataServiceClient::PurgeContexts( return connection_->PurgeContexts(request); } +StatusOr MetadataServiceClient::PurgeContexts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeContexts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MetadataServiceClient::PurgeContexts( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeContexts(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr< google::cloud::aiplatform::v1::AddContextArtifactsAndExecutionsResponse> MetadataServiceClient::AddContextArtifactsAndExecutions( @@ -473,6 +651,16 @@ MetadataServiceClient::DeleteExecution(std::string const& name, Options opts) { return connection_->DeleteExecution(request); } +StatusOr MetadataServiceClient::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteExecutionRequest request; + request.set_name(name); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MetadataServiceClient::DeleteExecution( google::cloud::aiplatform::v1::DeleteExecutionRequest const& request, @@ -481,6 +669,24 @@ MetadataServiceClient::DeleteExecution( return connection_->DeleteExecution(request); } +StatusOr MetadataServiceClient::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MetadataServiceClient::DeleteExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + operation); +} + future> MetadataServiceClient::PurgeExecutions(std::string const& parent, Options opts) { @@ -490,6 +696,16 @@ MetadataServiceClient::PurgeExecutions(std::string const& parent, return connection_->PurgeExecutions(request); } +StatusOr MetadataServiceClient::PurgeExecutions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::PurgeExecutionsRequest request; + request.set_parent(parent); + return connection_->PurgeExecutions(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MetadataServiceClient::PurgeExecutions( google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request, @@ -498,6 +714,24 @@ MetadataServiceClient::PurgeExecutions( return connection_->PurgeExecutions(request); } +StatusOr MetadataServiceClient::PurgeExecutions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeExecutions(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MetadataServiceClient::PurgeExecutions( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeExecutions(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr MetadataServiceClient::AddExecutionEvents( std::string const& execution, diff --git a/google/cloud/aiplatform/v1/metadata_client.h b/google/cloud/aiplatform/v1/metadata_client.h index c6fa246e5e653..73389407d22f2 100644 --- a/google/cloud/aiplatform/v1/metadata_client.h +++ b/google/cloud/aiplatform/v1/metadata_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_METADATA_CLIENT_H #include "google/cloud/aiplatform/v1/metadata_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -133,6 +135,12 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::MetadataStore const& metadata_store, std::string const& metadata_store_id, Options opts = {}); + StatusOr CreateMetadataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::MetadataStore const& metadata_store, + std::string const& metadata_store_id, Options opts = {}); + // clang-format off /// /// Initializes a MetadataStore, including allocation of resources. @@ -172,6 +180,16 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request, Options opts = {}); + StatusOr CreateMetadataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& request, + Options opts = {}); + + future> + CreateMetadataStore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a specific MetadataStore. @@ -342,6 +360,10 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::DeleteMetadataStoreOperationMetadata>> DeleteMetadataStore(std::string const& name, Options opts = {}); + StatusOr DeleteMetadataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single MetadataStore and all its child resources (Artifacts, @@ -383,6 +405,17 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request, Options opts = {}); + StatusOr DeleteMetadataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& request, + Options opts = {}); + + future> + DeleteMetadataStore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates an Artifact associated with a MetadataStore. @@ -682,6 +715,10 @@ class MetadataServiceClient { future> DeleteArtifact(std::string const& name, Options opts = {}); + StatusOr DeleteArtifact( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an Artifact. @@ -721,6 +758,16 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::DeleteArtifactRequest const& request, Options opts = {}); + StatusOr DeleteArtifact( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request, + Options opts = {}); + + future> + DeleteArtifact(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Purges Artifacts. @@ -755,6 +802,10 @@ class MetadataServiceClient { future> PurgeArtifacts(std::string const& parent, Options opts = {}); + StatusOr PurgeArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Purges Artifacts. @@ -794,6 +845,16 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request, Options opts = {}); + StatusOr PurgeArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request, + Options opts = {}); + + future> + PurgeArtifacts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a Context associated with a MetadataStore. @@ -1092,6 +1153,10 @@ class MetadataServiceClient { future> DeleteContext(std::string const& name, Options opts = {}); + StatusOr DeleteContext( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a stored Context. @@ -1131,6 +1196,16 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::DeleteContextRequest const& request, Options opts = {}); + StatusOr DeleteContext( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request, + Options opts = {}); + + future> + DeleteContext(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Purges Contexts. @@ -1165,6 +1240,10 @@ class MetadataServiceClient { future> PurgeContexts(std::string const& parent, Options opts = {}); + StatusOr PurgeContexts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Purges Contexts. @@ -1204,6 +1283,16 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::PurgeContextsRequest const& request, Options opts = {}); + StatusOr PurgeContexts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request, + Options opts = {}); + + future> + PurgeContexts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds a set of Artifacts and Executions to a Context. If any of the @@ -1788,6 +1877,10 @@ class MetadataServiceClient { future> DeleteExecution(std::string const& name, Options opts = {}); + StatusOr DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an Execution. @@ -1827,6 +1920,16 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::DeleteExecutionRequest const& request, Options opts = {}); + StatusOr DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request, + Options opts = {}); + + future> + DeleteExecution(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Purges Executions. @@ -1861,6 +1964,10 @@ class MetadataServiceClient { future> PurgeExecutions(std::string const& parent, Options opts = {}); + StatusOr PurgeExecutions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Purges Executions. @@ -1900,6 +2007,16 @@ class MetadataServiceClient { google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request, Options opts = {}); + StatusOr PurgeExecutions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request, + Options opts = {}); + + future> + PurgeExecutions(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds Events to the specified Execution. An Event indicates whether an 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_client.cc b/google/cloud/aiplatform/v1/migration_client.cc index 4d1099f58a47b..1f76cee1a111f 100644 --- a/google/cloud/aiplatform/v1/migration_client.cc +++ b/google/cloud/aiplatform/v1/migration_client.cc @@ -63,6 +63,22 @@ MigrationServiceClient::BatchMigrateResources( return connection_->BatchMigrateResources(request); } +StatusOr +MigrationServiceClient::BatchMigrateResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + migrate_resource_requests, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest request; + request.set_parent(parent); + *request.mutable_migrate_resource_requests() = { + migrate_resource_requests.begin(), migrate_resource_requests.end()}; + return connection_->BatchMigrateResources( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> MigrationServiceClient::BatchMigrateResources( google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& request, @@ -71,6 +87,25 @@ MigrationServiceClient::BatchMigrateResources( return connection_->BatchMigrateResources(request); } +StatusOr +MigrationServiceClient::BatchMigrateResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchMigrateResources( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationServiceClient::BatchMigrateResources( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchMigrateResources(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/migration_client.h b/google/cloud/aiplatform/v1/migration_client.h index cb6fed1338ad8..8070b97c1ecc5 100644 --- a/google/cloud/aiplatform/v1/migration_client.h +++ b/google/cloud/aiplatform/v1/migration_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_MIGRATION_CLIENT_H #include "google/cloud/aiplatform/v1/migration_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,6 +213,13 @@ class MigrationServiceClient { migrate_resource_requests, Options opts = {}); + StatusOr BatchMigrateResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + migrate_resource_requests, + Options opts = {}); + // clang-format off /// /// Batch migrates resources from ml.googleapis.com, automl.googleapis.com, @@ -252,6 +261,17 @@ class MigrationServiceClient { request, Options opts = {}); + StatusOr BatchMigrateResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request, + Options opts = {}); + + future> + BatchMigrateResources(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..f7c776b904e2c 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetDataset, (google::cloud::aiplatform::v1::GetDatasetRequest const& request), (override)); @@ -72,24 +84,73 @@ class MockDatasetServiceConnection (google::cloud::aiplatform::v1::DeleteDatasetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataset, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteDataset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportData, (google::cloud::aiplatform::v1::ImportDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ImportData, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportDataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportData, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportData, (google::cloud::aiplatform::v1::ExportDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportData, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportDataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportData, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateDatasetVersion, (google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateDatasetVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDatasetVersionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateDatasetVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateDatasetVersion, (google::cloud::aiplatform::v1::UpdateDatasetVersionRequest const& @@ -103,6 +164,19 @@ class MockDatasetServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteDatasetVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDatasetVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDatasetVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDatasetVersion, @@ -122,6 +196,19 @@ class MockDatasetServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, RestoreDatasetVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RestoreDatasetVersionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RestoreDatasetVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListDataItems, (google::cloud::aiplatform::v1::ListDataItemsRequest request), @@ -143,6 +230,19 @@ class MockDatasetServiceConnection (google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSavedQuery, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSavedQueryRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSavedQuery, + (google::cloud::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..ebdb439a8564c 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,20 @@ class MockDeploymentResourcePoolServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateDeploymentResourcePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateDeploymentResourcePoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateDeploymentResourcePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDeploymentResourcePool, @@ -74,6 +88,20 @@ class MockDeploymentResourcePoolServiceConnection (google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteDeploymentResourcePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDeploymentResourcePoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDeploymentResourcePool, + (google::cloud::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..40a78bcc85f0f 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEndpoint, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetEndpoint, (google::cloud::aiplatform::v1::GetEndpointRequest const& request), @@ -73,18 +85,57 @@ class MockEndpointServiceConnection (google::cloud::aiplatform::v1::DeleteEndpointRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEndpoint, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEndpointRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteEndpoint, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeployModel, (google::cloud::aiplatform::v1::DeployModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeployModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeployModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeployModel, (google::cloud::aiplatform::v1::UndeployModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeployModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UndeployModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -92,6 +143,20 @@ class MockEndpointServiceConnection (google::cloud::aiplatform::v1::MutateDeployedModelRequest const& request), (override)); + + MOCK_METHOD(StatusOr, MutateDeployedModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedModelRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + MutateDeployedModel, + (google::cloud::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..cb707bddb6830 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,20 @@ class MockFeatureOnlineStoreAdminServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateFeatureOnlineStore, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureOnlineStoreRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateFeatureOnlineStore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFeatureOnlineStore, @@ -74,6 +88,20 @@ class MockFeatureOnlineStoreAdminServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeatureOnlineStore, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureOnlineStoreRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateFeatureOnlineStore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeatureOnlineStore, @@ -81,12 +109,38 @@ class MockFeatureOnlineStoreAdminServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeatureOnlineStore, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureOnlineStoreRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeatureOnlineStore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateFeatureView, (google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFeatureView, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureViewRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeatureView, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFeatureView, (google::cloud::aiplatform::v1::GetFeatureViewRequest const& request), @@ -103,12 +157,37 @@ class MockFeatureOnlineStoreAdminServiceConnection (google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeatureView, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureViewRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeatureView, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeatureView, (google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeatureView, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureViewRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeatureView, + (google::cloud::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..bf4e4f4a263c9 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeatureGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFeatureGroup, (google::cloud::aiplatform::v1::GetFeatureGroupRequest const& request), @@ -69,17 +81,54 @@ class MockFeatureRegistryServiceConnection (google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeatureGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeatureGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeatureGroup, (google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeatureGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureGroupRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeatureGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateFeature, (google::cloud::aiplatform::v1::CreateFeatureRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFeature, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeature, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetFeature, (google::cloud::aiplatform::v1::GetFeatureRequest const& request), (override)); @@ -94,11 +143,36 @@ class MockFeatureRegistryServiceConnection (google::cloud::aiplatform::v1::UpdateFeatureRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeature, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeature, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeature, (google::cloud::aiplatform::v1::DeleteFeatureRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteFeature, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeature, + (google::cloud::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..4d8386ac20464 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeaturestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeaturestore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetFeaturestore, (google::cloud::aiplatform::v1::GetFeaturestoreRequest const& request), @@ -69,18 +81,55 @@ class MockFeaturestoreServiceConnection (google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFeaturestore, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateFeaturestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeaturestore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFeaturestore, (google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeaturestore, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeaturestoreRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeaturestore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateEntityType, (google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEntityType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateEntityTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEntityType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetEntityType, (google::cloud::aiplatform::v1::GetEntityTypeRequest const& request), @@ -102,11 +151,36 @@ class MockFeaturestoreServiceConnection (google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEntityType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteEntityTypeRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteEntityType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateFeature, (google::cloud::aiplatform::v1::CreateFeatureRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFeature, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeature, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -115,6 +189,20 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, BatchCreateFeatures, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCreateFeaturesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + BatchCreateFeatures, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetFeature, (google::cloud::aiplatform::v1::GetFeatureRequest const& request), (override)); @@ -135,6 +223,19 @@ class MockFeaturestoreServiceConnection (google::cloud::aiplatform::v1::DeleteFeatureRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFeature, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFeature, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -143,6 +244,20 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, ImportFeatureValues, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ImportFeatureValuesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ImportFeatureValues, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -151,6 +266,21 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchReadFeatureValues, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchReadFeatureValuesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchReadFeatureValues, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -159,6 +289,20 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, ExportFeatureValues, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportFeatureValuesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ExportFeatureValues, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -167,6 +311,20 @@ class MockFeaturestoreServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteFeatureValues, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteFeatureValuesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteFeatureValues, + (google::cloud::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..b676447fa6eca 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateIndex, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIndex, (google::cloud::aiplatform::v1::GetIndexRequest const& request), (override)); @@ -65,12 +77,37 @@ class MockIndexServiceConnection (google::cloud::aiplatform::v1::UpdateIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateIndex, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateIndexRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateIndex, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteIndex, (google::cloud::aiplatform::v1::DeleteIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteIndex, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteIndex, + (google::cloud::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..e84563294c3fe 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateIndexEndpointRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateIndexEndpoint, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetIndexEndpoint, (google::cloud::aiplatform::v1::GetIndexEndpointRequest const& request), @@ -77,18 +89,57 @@ class MockIndexEndpointServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteIndexEndpoint, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteIndexEndpointRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteIndexEndpoint, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeployIndex, (google::cloud::aiplatform::v1::DeployIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeployIndex, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeployIndexRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeployIndex, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeployIndex, (google::cloud::aiplatform::v1::UndeployIndexRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeployIndex, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UndeployIndexRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UndeployIndex, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -96,6 +147,20 @@ class MockIndexEndpointServiceConnection (google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& request), (override)); + + MOCK_METHOD(StatusOr, MutateDeployedIndex, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::MutateDeployedIndexRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + MutateDeployedIndex, + (google::cloud::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..25f8b97ef290f 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_job_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_job_connection.h @@ -67,6 +67,19 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { (google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCustomJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteCustomJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCustomJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelCustomJob, (google::cloud::aiplatform::v1::CancelCustomJobRequest const& request), @@ -98,6 +111,20 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataLabelingJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteDataLabelingJobRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDataLabelingJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelDataLabelingJob, (google::cloud::aiplatform::v1::CancelDataLabelingJobRequest const& @@ -131,6 +158,20 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { DeleteHyperparameterTuningJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteHyperparameterTuningJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteHyperparameterTuningJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteHyperparameterTuningJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, CancelHyperparameterTuningJob, (google::cloud::aiplatform::v1:: CancelHyperparameterTuningJobRequest const& request), @@ -155,6 +196,19 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { (google::cloud::aiplatform::v1::DeleteNasJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteNasJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNasJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteNasJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelNasJob, (google::cloud::aiplatform::v1::CancelNasJobRequest const& request), @@ -199,6 +253,20 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteBatchPredictionJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteBatchPredictionJobRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteBatchPredictionJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelBatchPredictionJob, (google::cloud::aiplatform::v1::CancelBatchPredictionJobRequest const& @@ -242,6 +310,20 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { UpdateModelDeploymentMonitoringJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateModelDeploymentMonitoringJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + UpdateModelDeploymentMonitoringJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateModelDeploymentMonitoringJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteModelDeploymentMonitoringJob, @@ -249,6 +331,20 @@ class MockJobServiceConnection : public aiplatform_v1::JobServiceConnection { DeleteModelDeploymentMonitoringJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteModelDeploymentMonitoringJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteModelDeploymentMonitoringJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteModelDeploymentMonitoringJob, + (google::cloud::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..36d66a06bb72a 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateMetadataStoreRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateMetadataStore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetMetadataStore, (google::cloud::aiplatform::v1::GetMetadataStoreRequest const& request), @@ -72,6 +84,20 @@ class MockMetadataServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteMetadataStore, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteMetadataStoreRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteMetadataStore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateArtifact, (google::cloud::aiplatform::v1::CreateArtifactRequest const& request), @@ -98,12 +124,38 @@ class MockMetadataServiceConnection (google::cloud::aiplatform::v1::DeleteArtifactRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteArtifact, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteArtifactRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteArtifact, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PurgeArtifacts, (google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PurgeArtifacts, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeArtifactsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeArtifacts, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateContext, (google::cloud::aiplatform::v1::CreateContextRequest const& request), @@ -129,12 +181,38 @@ class MockMetadataServiceConnection (google::cloud::aiplatform::v1::DeleteContextRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteContext, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteContextRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteContext, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PurgeContexts, (google::cloud::aiplatform::v1::PurgeContextsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PurgeContexts, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeContextsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeContexts, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, AddContextArtifactsAndExecutions, @@ -188,12 +266,38 @@ class MockMetadataServiceConnection (google::cloud::aiplatform::v1::DeleteExecutionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteExecution, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteExecutionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteExecution, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PurgeExecutions, (google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PurgeExecutions, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PurgeExecutionsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeExecutions, + (google::cloud::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..093d37e70b250 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_migration_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_migration_connection.h @@ -60,6 +60,21 @@ class MockMigrationServiceConnection (google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, BatchMigrateResources, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchMigrateResourcesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchMigrateResources, + (google::cloud::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..7aeba23518c85 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_model_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_model_connection.h @@ -53,6 +53,19 @@ class MockModelServiceConnection (google::cloud::aiplatform::v1::UploadModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UploadModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UploadModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetModel, (google::cloud::aiplatform::v1::GetModelRequest const& request), (override)); @@ -79,18 +92,59 @@ class MockModelServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateExplanationDataset, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateExplanationDataset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteModel, (google::cloud::aiplatform::v1::DeleteModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteModelVersion, (google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteModelVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteModelVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, MergeVersionAliases, (google::cloud::aiplatform::v1::MergeVersionAliasesRequest const& @@ -103,12 +157,37 @@ class MockModelServiceConnection (google::cloud::aiplatform::v1::ExportModelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CopyModel, (google::cloud::aiplatform::v1::CopyModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, CopyModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CopyModel, + (google::cloud::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..c34bcc955fa33 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_notebook_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_notebook_connection.h @@ -54,6 +54,20 @@ class MockNotebookServiceConnection CreateNotebookRuntimeTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateNotebookRuntimeTemplate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + CreateNotebookRuntimeTemplateRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateNotebookRuntimeTemplate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNotebookRuntimeTemplate, @@ -75,6 +89,20 @@ class MockNotebookServiceConnection DeleteNotebookRuntimeTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteNotebookRuntimeTemplate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1:: + DeleteNotebookRuntimeTemplateRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteNotebookRuntimeTemplate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateNotebookRuntimeTemplate, (google::cloud::aiplatform::v1:: @@ -88,6 +116,19 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, AssignNotebookRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AssignNotebookRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNotebookRuntime, @@ -107,6 +148,20 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteNotebookRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteNotebookRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -115,12 +170,40 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpgradeNotebookRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpgradeNotebookRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartNotebookRuntime, (google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request), (override)); + + MOCK_METHOD(StatusOr, StartNotebookRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + StartNotebookRuntime, + (google::cloud::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..c7cb477699830 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,20 @@ class MockPersistentResourceServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreatePersistentResource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreatePersistentResource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetPersistentResource, @@ -74,6 +88,20 @@ class MockPersistentResourceServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePersistentResource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeletePersistentResource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdatePersistentResource, @@ -81,12 +109,40 @@ class MockPersistentResourceServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdatePersistentResource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdatePersistentResource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RebootPersistentResource, (google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RebootPersistentResource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RebootPersistentResource, + (google::cloud::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..694489cd3b0a7 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_pipeline_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_pipeline_connection.h @@ -73,6 +73,20 @@ class MockPipelineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTrainingPipeline, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTrainingPipeline, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelTrainingPipeline, (google::cloud::aiplatform::v1::CancelTrainingPipelineRequest const& @@ -100,6 +114,19 @@ class MockPipelineServiceConnection (google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeletePipelineJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeletePipelineJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -108,6 +135,21 @@ class MockPipelineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchDeletePipelineJobs, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchDeletePipelineJobs, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, CancelPipelineJob, (google::cloud::aiplatform::v1::CancelPipelineJobRequest const& request), @@ -120,6 +162,21 @@ class MockPipelineServiceConnection (google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, BatchCancelPipelineJobs, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchCancelPipelineJobs, + (google::cloud::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..0815cdf0b21f6 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_schedule_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_schedule_connection.h @@ -58,6 +58,19 @@ class MockScheduleServiceConnection (google::cloud::aiplatform::v1::DeleteScheduleRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSchedule, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSchedule, + (google::cloud::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..6f651624bfddd 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSpecialistPool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSpecialistPool, @@ -72,11 +84,36 @@ class MockSpecialistPoolServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteSpecialistPool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteSpecialistPool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateSpecialistPool, (google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request), (override)); + + MOCK_METHOD(StatusOr, UpdateSpecialistPool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateSpecialistPool, + (google::cloud::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..8bc2626acb841 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateTensorboard, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateTensorboard, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListTensorboards, (google::cloud::aiplatform::v1::ListTensorboardsRequest request), @@ -75,6 +99,19 @@ class MockTensorboardServiceConnection (google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteTensorboard, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteTensorboard, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ReadTensorboardUsage, @@ -124,6 +161,20 @@ class MockTensorboardServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTensorboardExperiment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTensorboardExperiment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, CreateTensorboardRun, (google::cloud::aiplatform::v1::CreateTensorboardRunRequest const& @@ -163,6 +214,19 @@ class MockTensorboardServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteTensorboardRun, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTensorboardRun, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, BatchCreateTensorboardTimeSeries, @@ -204,6 +268,20 @@ class MockTensorboardServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTensorboardTimeSeries, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTensorboardTimeSeries, + (google::cloud::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..506b4d9285ea3 100644 --- a/google/cloud/aiplatform/v1/mocks/mock_vizier_connection.h +++ b/google/cloud/aiplatform/v1/mocks/mock_vizier_connection.h @@ -76,6 +76,19 @@ class MockVizierServiceConnection (google::cloud::aiplatform::v1::SuggestTrialsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SuggestTrials, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + SuggestTrials, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateTrial, (google::cloud::aiplatform::v1::CreateTrialRequest const& request), @@ -113,6 +126,21 @@ class MockVizierServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CheckTrialEarlyStoppingState, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CheckTrialEarlyStoppingState, + (google::cloud::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_client.cc b/google/cloud/aiplatform/v1/model_client.cc index ef44a0342a7ed..5bd718da7c390 100644 --- a/google/cloud/aiplatform/v1/model_client.cc +++ b/google/cloud/aiplatform/v1/model_client.cc @@ -43,6 +43,18 @@ ModelServiceClient::UploadModel( return connection_->UploadModel(request); } +StatusOr ModelServiceClient::UploadModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Model const& model, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UploadModelRequest request; + request.set_parent(parent); + *request.mutable_model() = model; + return connection_->UploadModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ModelServiceClient::UploadModel( google::cloud::aiplatform::v1::UploadModelRequest const& request, @@ -51,6 +63,23 @@ ModelServiceClient::UploadModel( return connection_->UploadModel(request); } +StatusOr ModelServiceClient::UploadModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UploadModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ModelServiceClient::UploadModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UploadModel(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ModelServiceClient::GetModel( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -124,6 +153,18 @@ ModelServiceClient::UpdateExplanationDataset(std::string const& model, return connection_->UpdateExplanationDataset(request); } +StatusOr +ModelServiceClient::UpdateExplanationDataset(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& model, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest request; + request.set_model(model); + return connection_->UpdateExplanationDataset( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> ModelServiceClient::UpdateExplanationDataset( @@ -134,6 +175,27 @@ ModelServiceClient::UpdateExplanationDataset( return connection_->UpdateExplanationDataset(request); } +StatusOr +ModelServiceClient::UpdateExplanationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateExplanationDataset( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +ModelServiceClient::UpdateExplanationDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateExplanationDataset(google::cloud::ExperimentalTag{}, + operation); +} + future> ModelServiceClient::DeleteModel(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -142,6 +204,16 @@ ModelServiceClient::DeleteModel(std::string const& name, Options opts) { return connection_->DeleteModel(request); } +StatusOr ModelServiceClient::DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteModelRequest request; + request.set_name(name); + return connection_->DeleteModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ModelServiceClient::DeleteModel( google::cloud::aiplatform::v1::DeleteModelRequest const& request, @@ -150,6 +222,23 @@ ModelServiceClient::DeleteModel( return connection_->DeleteModel(request); } +StatusOr ModelServiceClient::DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ModelServiceClient::DeleteModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteModel(google::cloud::ExperimentalTag{}, operation); +} + future> ModelServiceClient::DeleteModelVersion(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -158,6 +247,16 @@ ModelServiceClient::DeleteModelVersion(std::string const& name, Options opts) { return connection_->DeleteModelVersion(request); } +StatusOr ModelServiceClient::DeleteModelVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteModelVersionRequest request; + request.set_name(name); + return connection_->DeleteModelVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ModelServiceClient::DeleteModelVersion( google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request, @@ -166,6 +265,24 @@ ModelServiceClient::DeleteModelVersion( return connection_->DeleteModelVersion(request); } +StatusOr ModelServiceClient::DeleteModelVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteModelVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ModelServiceClient::DeleteModelVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteModelVersion(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ModelServiceClient::MergeVersionAliases( std::string const& name, std::vector const& version_aliases, @@ -199,6 +316,20 @@ ModelServiceClient::ExportModel( return connection_->ExportModel(request); } +StatusOr ModelServiceClient::ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::aiplatform::v1::ExportModelRequest::OutputConfig const& + output_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::ExportModelRequest request; + request.set_name(name); + *request.mutable_output_config() = output_config; + return connection_->ExportModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ModelServiceClient::ExportModel( google::cloud::aiplatform::v1::ExportModelRequest const& request, @@ -207,6 +338,23 @@ ModelServiceClient::ExportModel( return connection_->ExportModel(request); } +StatusOr ModelServiceClient::ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ModelServiceClient::ExportModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportModel(google::cloud::ExperimentalTag{}, operation); +} + future> ModelServiceClient::CopyModel(std::string const& parent, std::string const& source_model, Options opts) { @@ -217,6 +365,17 @@ ModelServiceClient::CopyModel(std::string const& parent, return connection_->CopyModel(request); } +StatusOr ModelServiceClient::CopyModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& source_model, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CopyModelRequest request; + request.set_parent(parent); + request.set_source_model(source_model); + return connection_->CopyModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ModelServiceClient::CopyModel( google::cloud::aiplatform::v1::CopyModelRequest const& request, @@ -225,6 +384,23 @@ ModelServiceClient::CopyModel( return connection_->CopyModel(request); } +StatusOr ModelServiceClient::CopyModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CopyModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ModelServiceClient::CopyModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CopyModel(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ModelServiceClient::ImportModelEvaluation( std::string const& parent, diff --git a/google/cloud/aiplatform/v1/model_client.h b/google/cloud/aiplatform/v1/model_client.h index 17479f179f48d..5540d6b98af53 100644 --- a/google/cloud/aiplatform/v1/model_client.h +++ b/google/cloud/aiplatform/v1/model_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_MODEL_CLIENT_H #include "google/cloud/aiplatform/v1/model_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -123,6 +125,11 @@ class ModelServiceClient { google::cloud::aiplatform::v1::Model const& model, Options opts = {}); + StatusOr UploadModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Model const& model, Options opts = {}); + // clang-format off /// /// Uploads a Model artifact into Vertex AI. @@ -161,6 +168,16 @@ class ModelServiceClient { UploadModel(google::cloud::aiplatform::v1::UploadModelRequest const& request, Options opts = {}); + StatusOr UploadModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UploadModelRequest const& request, + Options opts = {}); + + future> + UploadModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a Model. @@ -489,6 +506,10 @@ class ModelServiceClient { StatusOr> UpdateExplanationDataset(std::string const& model, Options opts = {}); + StatusOr UpdateExplanationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& model, Options opts = {}); + // clang-format off /// /// Incrementally update the dataset used for an examples model. @@ -530,6 +551,18 @@ class ModelServiceClient { request, Options opts = {}); + StatusOr UpdateExplanationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateExplanationDatasetRequest const& + request, + Options opts = {}); + + future< + StatusOr> + UpdateExplanationDataset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a Model. @@ -570,6 +603,10 @@ class ModelServiceClient { future> DeleteModel(std::string const& name, Options opts = {}); + StatusOr DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Model. @@ -615,6 +652,16 @@ class ModelServiceClient { DeleteModel(google::cloud::aiplatform::v1::DeleteModelRequest const& request, Options opts = {}); + StatusOr DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelRequest const& request, + Options opts = {}); + + future> + DeleteModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a Model version. @@ -657,6 +704,10 @@ class ModelServiceClient { future> DeleteModelVersion(std::string const& name, Options opts = {}); + StatusOr DeleteModelVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Model version. @@ -703,6 +754,16 @@ class ModelServiceClient { google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request, Options opts = {}); + StatusOr DeleteModelVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteModelVersionRequest const& request, + Options opts = {}); + + future> + DeleteModelVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Merges a set of aliases for a Model version. @@ -818,6 +879,13 @@ class ModelServiceClient { output_config, Options opts = {}); + StatusOr ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::aiplatform::v1::ExportModelRequest::OutputConfig const& + output_config, + Options opts = {}); + // clang-format off /// /// Exports a trained, exportable Model to a location specified by the @@ -860,6 +928,16 @@ class ModelServiceClient { ExportModel(google::cloud::aiplatform::v1::ExportModelRequest const& request, Options opts = {}); + StatusOr ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::ExportModelRequest const& request, + Options opts = {}); + + future> + ExportModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Copies an already existing Vertex AI Model into the specified Location. @@ -903,6 +981,11 @@ class ModelServiceClient { std::string const& parent, std::string const& source_model, Options opts = {}); + StatusOr CopyModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& source_model, + Options opts = {}); + // clang-format off /// /// Copies an already existing Vertex AI Model into the specified Location. @@ -947,6 +1030,15 @@ class ModelServiceClient { google::cloud::aiplatform::v1::CopyModelRequest const& request, Options opts = {}); + StatusOr CopyModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CopyModelRequest const& request, + Options opts = {}); + + future> CopyModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Imports an externally generated ModelEvaluation. 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_client.h b/google/cloud/aiplatform/v1/model_garden_client.h index 3bb859768b1ed..788987bc9d42f 100644 --- a/google/cloud/aiplatform/v1/model_garden_client.h +++ b/google/cloud/aiplatform/v1/model_garden_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_MODEL_GARDEN_CLIENT_H #include "google/cloud/aiplatform/v1/model_garden_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/aiplatform/v1/notebook_client.cc index 6d88972e7aa97..5fc15aff9fae4 100644 --- a/google/cloud/aiplatform/v1/notebook_client.cc +++ b/google/cloud/aiplatform/v1/notebook_client.cc @@ -46,6 +46,22 @@ NotebookServiceClient::CreateNotebookRuntimeTemplate( return connection_->CreateNotebookRuntimeTemplate(request); } +StatusOr +NotebookServiceClient::CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::NotebookRuntimeTemplate const& + notebook_runtime_template, + std::string const& notebook_runtime_template_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest request; + request.set_parent(parent); + *request.mutable_notebook_runtime_template() = notebook_runtime_template; + request.set_notebook_runtime_template_id(notebook_runtime_template_id); + return connection_->CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::CreateNotebookRuntimeTemplate( google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& @@ -55,6 +71,26 @@ NotebookServiceClient::CreateNotebookRuntimeTemplate( return connection_->CreateNotebookRuntimeTemplate(request); } +StatusOr +NotebookServiceClient::CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr NotebookServiceClient::GetNotebookRuntimeTemplate(std::string const& name, Options opts) { @@ -99,6 +135,17 @@ NotebookServiceClient::DeleteNotebookRuntimeTemplate(std::string const& name, return connection_->DeleteNotebookRuntimeTemplate(request); } +StatusOr +NotebookServiceClient::DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest request; + request.set_name(name); + return connection_->DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DeleteNotebookRuntimeTemplate( google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& @@ -108,6 +155,26 @@ NotebookServiceClient::DeleteNotebookRuntimeTemplate( return connection_->DeleteNotebookRuntimeTemplate(request); } +StatusOr +NotebookServiceClient::DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr NotebookServiceClient::UpdateNotebookRuntimeTemplate( google::cloud::aiplatform::v1::NotebookRuntimeTemplate const& @@ -143,6 +210,22 @@ NotebookServiceClient::AssignNotebookRuntime( return connection_->AssignNotebookRuntime(request); } +StatusOr +NotebookServiceClient::AssignNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& notebook_runtime_template, + google::cloud::aiplatform::v1::NotebookRuntime const& notebook_runtime, + std::string const& notebook_runtime_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest request; + request.set_parent(parent); + request.set_notebook_runtime_template(notebook_runtime_template); + *request.mutable_notebook_runtime() = notebook_runtime; + request.set_notebook_runtime_id(notebook_runtime_id); + return connection_->AssignNotebookRuntime( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::AssignNotebookRuntime( google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& request, @@ -151,6 +234,25 @@ NotebookServiceClient::AssignNotebookRuntime( return connection_->AssignNotebookRuntime(request); } +StatusOr +NotebookServiceClient::AssignNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AssignNotebookRuntime( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::AssignNotebookRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AssignNotebookRuntime(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NotebookServiceClient::GetNotebookRuntime(std::string const& name, Options opts) { @@ -194,6 +296,18 @@ NotebookServiceClient::DeleteNotebookRuntime(std::string const& name, return connection_->DeleteNotebookRuntime(request); } +StatusOr +NotebookServiceClient::DeleteNotebookRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest request; + request.set_name(name); + return connection_->DeleteNotebookRuntime( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DeleteNotebookRuntime( google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& request, @@ -202,6 +316,25 @@ NotebookServiceClient::DeleteNotebookRuntime( return connection_->DeleteNotebookRuntime(request); } +StatusOr +NotebookServiceClient::DeleteNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNotebookRuntime( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DeleteNotebookRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNotebookRuntime(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::UpgradeNotebookRuntime(std::string const& name, Options opts) { @@ -211,6 +344,18 @@ NotebookServiceClient::UpgradeNotebookRuntime(std::string const& name, return connection_->UpgradeNotebookRuntime(request); } +StatusOr +NotebookServiceClient::UpgradeNotebookRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest request; + request.set_name(name); + return connection_->UpgradeNotebookRuntime( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::UpgradeNotebookRuntime( google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& request, @@ -219,6 +364,25 @@ NotebookServiceClient::UpgradeNotebookRuntime( return connection_->UpgradeNotebookRuntime(request); } +StatusOr +NotebookServiceClient::UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeNotebookRuntime( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeNotebookRuntime(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::StartNotebookRuntime(std::string const& name, Options opts) { @@ -228,6 +392,18 @@ NotebookServiceClient::StartNotebookRuntime(std::string const& name, return connection_->StartNotebookRuntime(request); } +StatusOr +NotebookServiceClient::StartNotebookRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest request; + request.set_name(name); + return connection_->StartNotebookRuntime( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::StartNotebookRuntime( google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request, @@ -236,6 +412,25 @@ NotebookServiceClient::StartNotebookRuntime( return connection_->StartNotebookRuntime(request); } +StatusOr +NotebookServiceClient::StartNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartNotebookRuntime( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::StartNotebookRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartNotebookRuntime(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/notebook_client.h b/google/cloud/aiplatform/v1/notebook_client.h index 152dc2fe0e0f3..11467e4581b8a 100644 --- a/google/cloud/aiplatform/v1/notebook_client.h +++ b/google/cloud/aiplatform/v1/notebook_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_NOTEBOOK_CLIENT_H #include "google/cloud/aiplatform/v1/notebook_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,13 @@ class NotebookServiceClient { notebook_runtime_template, std::string const& notebook_runtime_template_id, Options opts = {}); + StatusOr CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::NotebookRuntimeTemplate const& + notebook_runtime_template, + std::string const& notebook_runtime_template_id, Options opts = {}); + // clang-format off /// /// Creates a NotebookRuntimeTemplate. @@ -166,6 +175,17 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr CreateNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateNotebookRuntimeTemplateRequest const& + request, + Options opts = {}); + + future> + CreateNotebookRuntimeTemplate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a NotebookRuntimeTemplate. @@ -338,6 +358,10 @@ class NotebookServiceClient { future> DeleteNotebookRuntimeTemplate(std::string const& name, Options opts = {}); + StatusOr DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a NotebookRuntimeTemplate. @@ -378,6 +402,17 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr DeleteNotebookRuntimeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeTemplateRequest const& + request, + Options opts = {}); + + future> + DeleteNotebookRuntimeTemplate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a NotebookRuntimeTemplate. @@ -488,6 +523,12 @@ class NotebookServiceClient { google::cloud::aiplatform::v1::NotebookRuntime const& notebook_runtime, std::string const& notebook_runtime_id, Options opts = {}); + StatusOr AssignNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& notebook_runtime_template, + google::cloud::aiplatform::v1::NotebookRuntime const& notebook_runtime, + std::string const& notebook_runtime_id, Options opts = {}); + // clang-format off /// /// Assigns a NotebookRuntime to a user for a particular Notebook file. This @@ -529,6 +570,17 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr AssignNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::AssignNotebookRuntimeRequest const& + request, + Options opts = {}); + + future> + AssignNotebookRuntime(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a NotebookRuntime. @@ -700,6 +752,10 @@ class NotebookServiceClient { future> DeleteNotebookRuntime(std::string const& name, Options opts = {}); + StatusOr DeleteNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a NotebookRuntime. @@ -740,6 +796,17 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr DeleteNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteNotebookRuntimeRequest const& + request, + Options opts = {}); + + future> + DeleteNotebookRuntime(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Upgrades a NotebookRuntime. @@ -776,6 +843,10 @@ class NotebookServiceClient { StatusOr> UpgradeNotebookRuntime(std::string const& name, Options opts = {}); + StatusOr UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Upgrades a NotebookRuntime. @@ -817,6 +888,18 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr UpgradeNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpgradeNotebookRuntimeRequest const& + request, + Options opts = {}); + + future< + StatusOr> + UpgradeNotebookRuntime(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts a NotebookRuntime. @@ -852,6 +935,10 @@ class NotebookServiceClient { future> StartNotebookRuntime(std::string const& name, Options opts = {}); + StatusOr StartNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Starts a NotebookRuntime. @@ -891,6 +978,16 @@ class NotebookServiceClient { google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request, Options opts = {}); + StatusOr StartNotebookRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::StartNotebookRuntimeRequest const& request, + Options opts = {}); + + future> + StartNotebookRuntime(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/aiplatform/v1/persistent_resource_client.cc index c3daa200dede3..c3d738be0e680 100644 --- a/google/cloud/aiplatform/v1/persistent_resource_client.cc +++ b/google/cloud/aiplatform/v1/persistent_resource_client.cc @@ -47,6 +47,22 @@ PersistentResourceServiceClient::CreatePersistentResource( return connection_->CreatePersistentResource(request); } +StatusOr +PersistentResourceServiceClient::CreatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::PersistentResource const& + persistent_resource, + std::string const& persistent_resource_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreatePersistentResourceRequest request; + request.set_parent(parent); + *request.mutable_persistent_resource() = persistent_resource; + request.set_persistent_resource_id(persistent_resource_id); + return connection_->CreatePersistentResource( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PersistentResourceServiceClient::CreatePersistentResource( google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& @@ -56,6 +72,26 @@ PersistentResourceServiceClient::CreatePersistentResource( return connection_->CreatePersistentResource(request); } +StatusOr +PersistentResourceServiceClient::CreatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePersistentResource( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PersistentResourceServiceClient::CreatePersistentResource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePersistentResource(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr PersistentResourceServiceClient::GetPersistentResource(std::string const& name, Options opts) { @@ -99,6 +135,17 @@ PersistentResourceServiceClient::DeletePersistentResource( return connection_->DeletePersistentResource(request); } +StatusOr +PersistentResourceServiceClient::DeletePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeletePersistentResourceRequest request; + request.set_name(name); + return connection_->DeletePersistentResource( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PersistentResourceServiceClient::DeletePersistentResource( google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& @@ -108,6 +155,26 @@ PersistentResourceServiceClient::DeletePersistentResource( return connection_->DeletePersistentResource(request); } +StatusOr +PersistentResourceServiceClient::DeletePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePersistentResource( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PersistentResourceServiceClient::DeletePersistentResource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePersistentResource(google::cloud::ExperimentalTag{}, + operation); +} + future> PersistentResourceServiceClient::UpdatePersistentResource( google::cloud::aiplatform::v1::PersistentResource const& @@ -120,6 +187,20 @@ PersistentResourceServiceClient::UpdatePersistentResource( return connection_->UpdatePersistentResource(request); } +StatusOr +PersistentResourceServiceClient::UpdatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PersistentResource const& + persistent_resource, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest request; + *request.mutable_persistent_resource() = persistent_resource; + *request.mutable_update_mask() = update_mask; + return connection_->UpdatePersistentResource( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PersistentResourceServiceClient::UpdatePersistentResource( google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& @@ -129,6 +210,26 @@ PersistentResourceServiceClient::UpdatePersistentResource( return connection_->UpdatePersistentResource(request); } +StatusOr +PersistentResourceServiceClient::UpdatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePersistentResource( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PersistentResourceServiceClient::UpdatePersistentResource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePersistentResource(google::cloud::ExperimentalTag{}, + operation); +} + future> PersistentResourceServiceClient::RebootPersistentResource( std::string const& name, Options opts) { @@ -138,6 +239,17 @@ PersistentResourceServiceClient::RebootPersistentResource( return connection_->RebootPersistentResource(request); } +StatusOr +PersistentResourceServiceClient::RebootPersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::RebootPersistentResourceRequest request; + request.set_name(name); + return connection_->RebootPersistentResource( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PersistentResourceServiceClient::RebootPersistentResource( google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& @@ -147,6 +259,26 @@ PersistentResourceServiceClient::RebootPersistentResource( return connection_->RebootPersistentResource(request); } +StatusOr +PersistentResourceServiceClient::RebootPersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RebootPersistentResource( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PersistentResourceServiceClient::RebootPersistentResource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RebootPersistentResource(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/persistent_resource_client.h b/google/cloud/aiplatform/v1/persistent_resource_client.h index 1f9da16982efc..825cc1c209bbb 100644 --- a/google/cloud/aiplatform/v1/persistent_resource_client.h +++ b/google/cloud/aiplatform/v1/persistent_resource_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_PERSISTENT_RESOURCE_CLIENT_H #include "google/cloud/aiplatform/v1/persistent_resource_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -134,6 +136,13 @@ class PersistentResourceServiceClient { persistent_resource, std::string const& persistent_resource_id, Options opts = {}); + StatusOr CreatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::PersistentResource const& + persistent_resource, + std::string const& persistent_resource_id, Options opts = {}); + // clang-format off /// /// Creates a PersistentResource. @@ -174,6 +183,17 @@ class PersistentResourceServiceClient { request, Options opts = {}); + StatusOr CreatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreatePersistentResourceRequest const& + request, + Options opts = {}); + + future> + CreatePersistentResource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a PersistentResource. @@ -344,6 +364,10 @@ class PersistentResourceServiceClient { future> DeletePersistentResource(std::string const& name, Options opts = {}); + StatusOr DeletePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a PersistentResource. @@ -384,6 +408,17 @@ class PersistentResourceServiceClient { request, Options opts = {}); + StatusOr DeletePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePersistentResourceRequest const& + request, + Options opts = {}); + + future> + DeletePersistentResource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a PersistentResource. @@ -425,6 +460,12 @@ class PersistentResourceServiceClient { persistent_resource, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::PersistentResource const& + persistent_resource, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a PersistentResource. @@ -465,6 +506,17 @@ class PersistentResourceServiceClient { request, Options opts = {}); + StatusOr UpdatePersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdatePersistentResourceRequest const& + request, + Options opts = {}); + + future> + UpdatePersistentResource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Reboots a PersistentResource. @@ -499,6 +551,10 @@ class PersistentResourceServiceClient { future> RebootPersistentResource(std::string const& name, Options opts = {}); + StatusOr RebootPersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Reboots a PersistentResource. @@ -539,6 +595,17 @@ class PersistentResourceServiceClient { request, Options opts = {}); + StatusOr RebootPersistentResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::RebootPersistentResourceRequest const& + request, + Options opts = {}); + + future> + RebootPersistentResource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/aiplatform/v1/pipeline_client.cc index 2b7bffd7e20c0..df9b0badda3c2 100644 --- a/google/cloud/aiplatform/v1/pipeline_client.cc +++ b/google/cloud/aiplatform/v1/pipeline_client.cc @@ -95,6 +95,18 @@ PipelineServiceClient::DeleteTrainingPipeline(std::string const& name, return connection_->DeleteTrainingPipeline(request); } +StatusOr +PipelineServiceClient::DeleteTrainingPipeline(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest request; + request.set_name(name); + return connection_->DeleteTrainingPipeline( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PipelineServiceClient::DeleteTrainingPipeline( google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& request, @@ -103,6 +115,25 @@ PipelineServiceClient::DeleteTrainingPipeline( return connection_->DeleteTrainingPipeline(request); } +StatusOr +PipelineServiceClient::DeleteTrainingPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTrainingPipeline( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PipelineServiceClient::DeleteTrainingPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTrainingPipeline(google::cloud::ExperimentalTag{}, + operation); +} + Status PipelineServiceClient::CancelTrainingPipeline(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -181,6 +212,18 @@ PipelineServiceClient::DeletePipelineJob(std::string const& name, return connection_->DeletePipelineJob(request); } +StatusOr +PipelineServiceClient::DeletePipelineJob(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeletePipelineJobRequest request; + request.set_name(name); + return connection_->DeletePipelineJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PipelineServiceClient::DeletePipelineJob( google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request, @@ -189,6 +232,25 @@ PipelineServiceClient::DeletePipelineJob( return connection_->DeletePipelineJob(request); } +StatusOr +PipelineServiceClient::DeletePipelineJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePipelineJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +PipelineServiceClient::DeletePipelineJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePipelineJob(google::cloud::ExperimentalTag{}, + operation); +} + future> PipelineServiceClient::BatchDeletePipelineJobs( std::string const& parent, std::vector const& names, @@ -200,6 +262,19 @@ PipelineServiceClient::BatchDeletePipelineJobs( return connection_->BatchDeletePipelineJobs(request); } +StatusOr +PipelineServiceClient::BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& names, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest request; + request.set_parent(parent); + *request.mutable_names() = {names.begin(), names.end()}; + return connection_->BatchDeletePipelineJobs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PipelineServiceClient::BatchDeletePipelineJobs( google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& @@ -209,6 +284,26 @@ PipelineServiceClient::BatchDeletePipelineJobs( return connection_->BatchDeletePipelineJobs(request); } +StatusOr +PipelineServiceClient::BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeletePipelineJobs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PipelineServiceClient::BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeletePipelineJobs(google::cloud::ExperimentalTag{}, + operation); +} + Status PipelineServiceClient::CancelPipelineJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -235,6 +330,19 @@ PipelineServiceClient::BatchCancelPipelineJobs( return connection_->BatchCancelPipelineJobs(request); } +StatusOr +PipelineServiceClient::BatchCancelPipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& names, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest request; + request.set_parent(parent); + *request.mutable_names() = {names.begin(), names.end()}; + return connection_->BatchCancelPipelineJobs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PipelineServiceClient::BatchCancelPipelineJobs( google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& @@ -244,6 +352,26 @@ PipelineServiceClient::BatchCancelPipelineJobs( return connection_->BatchCancelPipelineJobs(request); } +StatusOr +PipelineServiceClient::BatchCancelPipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCancelPipelineJobs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PipelineServiceClient::BatchCancelPipelineJobs( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCancelPipelineJobs(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/pipeline_client.h b/google/cloud/aiplatform/v1/pipeline_client.h index 607a53423dcfc..605392cf73681 100644 --- a/google/cloud/aiplatform/v1/pipeline_client.h +++ b/google/cloud/aiplatform/v1/pipeline_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_PIPELINE_CLIENT_H #include "google/cloud/aiplatform/v1/pipeline_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -322,6 +324,10 @@ class PipelineServiceClient { future> DeleteTrainingPipeline(std::string const& name, Options opts = {}); + StatusOr DeleteTrainingPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a TrainingPipeline. @@ -362,6 +368,17 @@ class PipelineServiceClient { request, Options opts = {}); + StatusOr DeleteTrainingPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTrainingPipelineRequest const& + request, + Options opts = {}); + + future> + DeleteTrainingPipeline(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Cancels a TrainingPipeline. @@ -681,6 +698,10 @@ class PipelineServiceClient { future> DeletePipelineJob(std::string const& name, Options opts = {}); + StatusOr DeletePipelineJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a PipelineJob. @@ -720,6 +741,16 @@ class PipelineServiceClient { google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request, Options opts = {}); + StatusOr DeletePipelineJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeletePipelineJobRequest const& request, + Options opts = {}); + + future> + DeletePipelineJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Batch deletes PipelineJobs @@ -762,6 +793,11 @@ class PipelineServiceClient { std::vector const& names, Options opts = {}); + StatusOr BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& names, + Options opts = {}); + // clang-format off /// /// Batch deletes PipelineJobs @@ -805,6 +841,18 @@ class PipelineServiceClient { request, Options opts = {}); + StatusOr BatchDeletePipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchDeletePipelineJobsRequest const& + request, + Options opts = {}); + + future< + StatusOr> + BatchDeletePipelineJobs(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Cancels a PipelineJob. @@ -934,6 +982,11 @@ class PipelineServiceClient { std::vector const& names, Options opts = {}); + StatusOr BatchCancelPipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& names, + Options opts = {}); + // clang-format off /// /// Batch cancel PipelineJobs. @@ -981,6 +1034,18 @@ class PipelineServiceClient { request, Options opts = {}); + StatusOr BatchCancelPipelineJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::BatchCancelPipelineJobsRequest const& + request, + Options opts = {}); + + future< + StatusOr> + BatchCancelPipelineJobs(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/aiplatform/v1/prediction_client.h index 5ca1fb7254036..9d664bddf4014 100644 --- a/google/cloud/aiplatform/v1/prediction_client.h +++ b/google/cloud/aiplatform/v1/prediction_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_PREDICTION_CLIENT_H #include "google/cloud/aiplatform/v1/prediction_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/aiplatform/v1/schedule_client.cc index 7b80ca5819a6b..1fba12d3766c9 100644 --- a/google/cloud/aiplatform/v1/schedule_client.cc +++ b/google/cloud/aiplatform/v1/schedule_client.cc @@ -59,6 +59,16 @@ ScheduleServiceClient::DeleteSchedule(std::string const& name, Options opts) { return connection_->DeleteSchedule(request); } +StatusOr ScheduleServiceClient::DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteScheduleRequest request; + request.set_name(name); + return connection_->DeleteSchedule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ScheduleServiceClient::DeleteSchedule( google::cloud::aiplatform::v1::DeleteScheduleRequest const& request, @@ -67,6 +77,24 @@ ScheduleServiceClient::DeleteSchedule( return connection_->DeleteSchedule(request); } +StatusOr ScheduleServiceClient::DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSchedule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ScheduleServiceClient::DeleteSchedule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSchedule(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ScheduleServiceClient::GetSchedule(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/aiplatform/v1/schedule_client.h b/google/cloud/aiplatform/v1/schedule_client.h index 844284c61e7be..5e080667f9cae 100644 --- a/google/cloud/aiplatform/v1/schedule_client.h +++ b/google/cloud/aiplatform/v1/schedule_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_SCHEDULE_CLIENT_H #include "google/cloud/aiplatform/v1/schedule_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -181,6 +183,10 @@ class ScheduleServiceClient { future> DeleteSchedule(std::string const& name, Options opts = {}); + StatusOr DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Schedule. @@ -220,6 +226,16 @@ class ScheduleServiceClient { google::cloud::aiplatform::v1::DeleteScheduleRequest const& request, Options opts = {}); + StatusOr DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteScheduleRequest const& request, + Options opts = {}); + + future> + DeleteSchedule(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a Schedule. 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_client.cc b/google/cloud/aiplatform/v1/specialist_pool_client.cc index 7516ab9e9afbf..1ea23029397b6 100644 --- a/google/cloud/aiplatform/v1/specialist_pool_client.cc +++ b/google/cloud/aiplatform/v1/specialist_pool_client.cc @@ -44,6 +44,20 @@ SpecialistPoolServiceClient::CreateSpecialistPool( return connection_->CreateSpecialistPool(request); } +StatusOr +SpecialistPoolServiceClient::CreateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::SpecialistPool const& specialist_pool, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest request; + request.set_parent(parent); + *request.mutable_specialist_pool() = specialist_pool; + return connection_->CreateSpecialistPool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SpecialistPoolServiceClient::CreateSpecialistPool( google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request, @@ -52,6 +66,25 @@ SpecialistPoolServiceClient::CreateSpecialistPool( return connection_->CreateSpecialistPool(request); } +StatusOr +SpecialistPoolServiceClient::CreateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSpecialistPool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SpecialistPoolServiceClient::CreateSpecialistPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSpecialistPool(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SpecialistPoolServiceClient::GetSpecialistPool(std::string const& name, Options opts) { @@ -95,6 +128,17 @@ SpecialistPoolServiceClient::DeleteSpecialistPool(std::string const& name, return connection_->DeleteSpecialistPool(request); } +StatusOr +SpecialistPoolServiceClient::DeleteSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest request; + request.set_name(name); + return connection_->DeleteSpecialistPool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SpecialistPoolServiceClient::DeleteSpecialistPool( google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request, @@ -103,6 +147,25 @@ SpecialistPoolServiceClient::DeleteSpecialistPool( return connection_->DeleteSpecialistPool(request); } +StatusOr +SpecialistPoolServiceClient::DeleteSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSpecialistPool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SpecialistPoolServiceClient::DeleteSpecialistPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSpecialistPool(google::cloud::ExperimentalTag{}, + operation); +} + future> SpecialistPoolServiceClient::UpdateSpecialistPool( google::cloud::aiplatform::v1::SpecialistPool const& specialist_pool, @@ -114,6 +177,19 @@ SpecialistPoolServiceClient::UpdateSpecialistPool( return connection_->UpdateSpecialistPool(request); } +StatusOr +SpecialistPoolServiceClient::UpdateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::SpecialistPool const& specialist_pool, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest request; + *request.mutable_specialist_pool() = specialist_pool; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSpecialistPool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SpecialistPoolServiceClient::UpdateSpecialistPool( google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request, @@ -122,6 +198,25 @@ SpecialistPoolServiceClient::UpdateSpecialistPool( return connection_->UpdateSpecialistPool(request); } +StatusOr +SpecialistPoolServiceClient::UpdateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSpecialistPool( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SpecialistPoolServiceClient::UpdateSpecialistPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSpecialistPool(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace aiplatform_v1 } // namespace cloud diff --git a/google/cloud/aiplatform/v1/specialist_pool_client.h b/google/cloud/aiplatform/v1/specialist_pool_client.h index 6be86f5f32a9b..1461977390537 100644 --- a/google/cloud/aiplatform/v1/specialist_pool_client.h +++ b/google/cloud/aiplatform/v1/specialist_pool_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_SPECIALIST_POOL_CLIENT_H #include "google/cloud/aiplatform/v1/specialist_pool_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -131,6 +133,12 @@ class SpecialistPoolServiceClient { google::cloud::aiplatform::v1::SpecialistPool const& specialist_pool, Options opts = {}); + StatusOr CreateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::SpecialistPool const& specialist_pool, + Options opts = {}); + // clang-format off /// /// Creates a SpecialistPool. @@ -170,6 +178,16 @@ class SpecialistPoolServiceClient { google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request, Options opts = {}); + StatusOr CreateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateSpecialistPoolRequest const& request, + Options opts = {}); + + future> + CreateSpecialistPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a SpecialistPool. @@ -337,6 +355,10 @@ class SpecialistPoolServiceClient { future> DeleteSpecialistPool(std::string const& name, Options opts = {}); + StatusOr DeleteSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a SpecialistPool as well as all Specialists in the pool. @@ -376,6 +398,16 @@ class SpecialistPoolServiceClient { google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request, Options opts = {}); + StatusOr DeleteSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteSpecialistPoolRequest const& request, + Options opts = {}); + + future> + DeleteSpecialistPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a SpecialistPool. @@ -411,6 +443,11 @@ class SpecialistPoolServiceClient { google::cloud::aiplatform::v1::SpecialistPool const& specialist_pool, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::SpecialistPool const& specialist_pool, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a SpecialistPool. @@ -450,6 +487,16 @@ class SpecialistPoolServiceClient { google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request, Options opts = {}); + StatusOr UpdateSpecialistPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateSpecialistPoolRequest const& request, + Options opts = {}); + + future> + UpdateSpecialistPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/aiplatform/v1/tensorboard_client.cc index 9684cab0368c4..426e6e16b1fd3 100644 --- a/google/cloud/aiplatform/v1/tensorboard_client.cc +++ b/google/cloud/aiplatform/v1/tensorboard_client.cc @@ -44,6 +44,20 @@ TensorboardServiceClient::CreateTensorboard( return connection_->CreateTensorboard(request); } +StatusOr +TensorboardServiceClient::CreateTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Tensorboard const& tensorboard, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::CreateTensorboardRequest request; + request.set_parent(parent); + *request.mutable_tensorboard() = tensorboard; + return connection_->CreateTensorboard(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TensorboardServiceClient::CreateTensorboard( google::cloud::aiplatform::v1::CreateTensorboardRequest const& request, @@ -52,6 +66,25 @@ TensorboardServiceClient::CreateTensorboard( return connection_->CreateTensorboard(request); } +StatusOr +TensorboardServiceClient::CreateTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTensorboard(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TensorboardServiceClient::CreateTensorboard( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTensorboard(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TensorboardServiceClient::GetTensorboard(std::string const& name, Options opts) { @@ -80,6 +113,19 @@ TensorboardServiceClient::UpdateTensorboard( return connection_->UpdateTensorboard(request); } +StatusOr +TensorboardServiceClient::UpdateTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::Tensorboard const& tensorboard, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::UpdateTensorboardRequest request; + *request.mutable_tensorboard() = tensorboard; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTensorboard(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TensorboardServiceClient::UpdateTensorboard( google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request, @@ -88,6 +134,25 @@ TensorboardServiceClient::UpdateTensorboard( return connection_->UpdateTensorboard(request); } +StatusOr +TensorboardServiceClient::UpdateTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTensorboard(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TensorboardServiceClient::UpdateTensorboard( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTensorboard(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TensorboardServiceClient::ListTensorboards(std::string const& parent, Options opts) { @@ -114,6 +179,18 @@ TensorboardServiceClient::DeleteTensorboard(std::string const& name, return connection_->DeleteTensorboard(request); } +StatusOr +TensorboardServiceClient::DeleteTensorboard(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteTensorboardRequest request; + request.set_name(name); + return connection_->DeleteTensorboard(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TensorboardServiceClient::DeleteTensorboard( google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request, @@ -122,6 +199,25 @@ TensorboardServiceClient::DeleteTensorboard( return connection_->DeleteTensorboard(request); } +StatusOr +TensorboardServiceClient::DeleteTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTensorboard(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TensorboardServiceClient::DeleteTensorboard( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTensorboard(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TensorboardServiceClient::ReadTensorboardUsage(std::string const& tensorboard, Options opts) { @@ -244,6 +340,17 @@ TensorboardServiceClient::DeleteTensorboardExperiment(std::string const& name, return connection_->DeleteTensorboardExperiment(request); } +StatusOr +TensorboardServiceClient::DeleteTensorboardExperiment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest request; + request.set_name(name); + return connection_->DeleteTensorboardExperiment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TensorboardServiceClient::DeleteTensorboardExperiment( google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& @@ -253,6 +360,26 @@ TensorboardServiceClient::DeleteTensorboardExperiment( return connection_->DeleteTensorboardExperiment(request); } +StatusOr +TensorboardServiceClient::DeleteTensorboardExperiment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTensorboardExperiment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TensorboardServiceClient::DeleteTensorboardExperiment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTensorboardExperiment( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr TensorboardServiceClient::CreateTensorboardRun( std::string const& parent, @@ -359,6 +486,18 @@ TensorboardServiceClient::DeleteTensorboardRun(std::string const& name, return connection_->DeleteTensorboardRun(request); } +StatusOr +TensorboardServiceClient::DeleteTensorboardRun(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest request; + request.set_name(name); + return connection_->DeleteTensorboardRun( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TensorboardServiceClient::DeleteTensorboardRun( google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request, @@ -367,6 +506,25 @@ TensorboardServiceClient::DeleteTensorboardRun( return connection_->DeleteTensorboardRun(request); } +StatusOr +TensorboardServiceClient::DeleteTensorboardRun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTensorboardRun( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TensorboardServiceClient::DeleteTensorboardRun( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTensorboardRun(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr< google::cloud::aiplatform::v1::BatchCreateTensorboardTimeSeriesResponse> TensorboardServiceClient::BatchCreateTensorboardTimeSeries( @@ -479,6 +637,17 @@ TensorboardServiceClient::DeleteTensorboardTimeSeries(std::string const& name, return connection_->DeleteTensorboardTimeSeries(request); } +StatusOr +TensorboardServiceClient::DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest request; + request.set_name(name); + return connection_->DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TensorboardServiceClient::DeleteTensorboardTimeSeries( google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& @@ -488,6 +657,26 @@ TensorboardServiceClient::DeleteTensorboardTimeSeries( return connection_->DeleteTensorboardTimeSeries(request); } +StatusOr +TensorboardServiceClient::DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TensorboardServiceClient::DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr< google::cloud::aiplatform::v1::BatchReadTensorboardTimeSeriesDataResponse> TensorboardServiceClient::BatchReadTensorboardTimeSeriesData( diff --git a/google/cloud/aiplatform/v1/tensorboard_client.h b/google/cloud/aiplatform/v1/tensorboard_client.h index 71dc63ac9cd99..6f29ebf542cc9 100644 --- a/google/cloud/aiplatform/v1/tensorboard_client.h +++ b/google/cloud/aiplatform/v1/tensorboard_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_TENSORBOARD_CLIENT_H #include "google/cloud/aiplatform/v1/tensorboard_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,12 @@ class TensorboardServiceClient { google::cloud::aiplatform::v1::Tensorboard const& tensorboard, Options opts = {}); + StatusOr CreateTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::aiplatform::v1::Tensorboard const& tensorboard, + Options opts = {}); + // clang-format off /// /// Creates a Tensorboard. @@ -165,6 +173,16 @@ class TensorboardServiceClient { google::cloud::aiplatform::v1::CreateTensorboardRequest const& request, Options opts = {}); + StatusOr CreateTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CreateTensorboardRequest const& request, + Options opts = {}); + + future> + CreateTensorboard(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a Tensorboard. @@ -265,6 +283,11 @@ class TensorboardServiceClient { google::cloud::aiplatform::v1::Tensorboard const& tensorboard, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::Tensorboard const& tensorboard, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a Tensorboard. @@ -304,6 +327,16 @@ class TensorboardServiceClient { google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request, Options opts = {}); + StatusOr UpdateTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::UpdateTensorboardRequest const& request, + Options opts = {}); + + future> + UpdateTensorboard(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Tensorboards in a Location. @@ -414,6 +447,10 @@ class TensorboardServiceClient { future> DeleteTensorboard(std::string const& name, Options opts = {}); + StatusOr DeleteTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Tensorboard. @@ -453,6 +490,16 @@ class TensorboardServiceClient { google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request, Options opts = {}); + StatusOr DeleteTensorboard( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRequest const& request, + Options opts = {}); + + future> + DeleteTensorboard(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns a list of monthly active users for a given TensorBoard instance. @@ -881,6 +928,10 @@ class TensorboardServiceClient { future> DeleteTensorboardExperiment(std::string const& name, Options opts = {}); + StatusOr DeleteTensorboardExperiment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a TensorboardExperiment. @@ -921,6 +972,17 @@ class TensorboardServiceClient { request, Options opts = {}); + StatusOr DeleteTensorboardExperiment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardExperimentRequest const& + request, + Options opts = {}); + + future> + DeleteTensorboardExperiment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a TensorboardRun. @@ -1290,6 +1352,10 @@ class TensorboardServiceClient { future> DeleteTensorboardRun(std::string const& name, Options opts = {}); + StatusOr DeleteTensorboardRun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a TensorboardRun. @@ -1329,6 +1395,16 @@ class TensorboardServiceClient { google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request, Options opts = {}); + StatusOr DeleteTensorboardRun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardRunRequest const& request, + Options opts = {}); + + future> + DeleteTensorboardRun(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Batch create TensorboardTimeSeries that belong to a TensorboardExperiment. @@ -1708,6 +1784,10 @@ class TensorboardServiceClient { future> DeleteTensorboardTimeSeries(std::string const& name, Options opts = {}); + StatusOr DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a TensorboardTimeSeries. @@ -1748,6 +1828,17 @@ class TensorboardServiceClient { request, Options opts = {}); + StatusOr DeleteTensorboardTimeSeries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::DeleteTensorboardTimeSeriesRequest const& + request, + Options opts = {}); + + future> + DeleteTensorboardTimeSeries(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Reads multiple TensorboardTimeSeries' data. The data point number limit is 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_client.cc b/google/cloud/aiplatform/v1/vizier_client.cc index a76f30c656d02..3c43a709be47a 100644 --- a/google/cloud/aiplatform/v1/vizier_client.cc +++ b/google/cloud/aiplatform/v1/vizier_client.cc @@ -116,6 +116,24 @@ VizierServiceClient::SuggestTrials( return connection_->SuggestTrials(request); } +StatusOr VizierServiceClient::SuggestTrials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SuggestTrials(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VizierServiceClient::SuggestTrials( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SuggestTrials(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VizierServiceClient::CreateTrial( std::string const& parent, google::cloud::aiplatform::v1::Trial const& trial, Options opts) { @@ -203,6 +221,27 @@ VizierServiceClient::CheckTrialEarlyStoppingState( return connection_->CheckTrialEarlyStoppingState(request); } +StatusOr +VizierServiceClient::CheckTrialEarlyStoppingState( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CheckTrialEarlyStoppingState( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VizierServiceClient::CheckTrialEarlyStoppingState( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CheckTrialEarlyStoppingState( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr VizierServiceClient::StopTrial( google::cloud::aiplatform::v1::StopTrialRequest const& request, Options opts) { diff --git a/google/cloud/aiplatform/v1/vizier_client.h b/google/cloud/aiplatform/v1/vizier_client.h index 722f6b74bdb29..54c41c3ab3c4a 100644 --- a/google/cloud/aiplatform/v1/vizier_client.h +++ b/google/cloud/aiplatform/v1/vizier_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AIPLATFORM_V1_VIZIER_CLIENT_H #include "google/cloud/aiplatform/v1/vizier_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -437,6 +439,16 @@ class VizierServiceClient { google::cloud::aiplatform::v1::SuggestTrialsRequest const& request, Options opts = {}); + StatusOr SuggestTrials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::SuggestTrialsRequest const& request, + Options opts = {}); + + future> + SuggestTrials(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds a user provided Trial to a Study. @@ -787,6 +799,18 @@ class VizierServiceClient { request, Options opts = {}); + StatusOr CheckTrialEarlyStoppingState( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::aiplatform::v1::CheckTrialEarlyStoppingStateRequest const& + request, + Options opts = {}); + + future> + CheckTrialEarlyStoppingState(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stops a Trial. 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_client.cc b/google/cloud/alloydb/v1/alloy_db_admin_client.cc index 92835db388cb2..1cf54c7154c87 100644 --- a/google/cloud/alloydb/v1/alloy_db_admin_client.cc +++ b/google/cloud/alloydb/v1/alloy_db_admin_client.cc @@ -75,6 +75,20 @@ AlloyDBAdminClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr AlloyDBAdminClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::CreateClusterRequest request; + request.set_parent(parent); + *request.mutable_cluster() = cluster; + request.set_cluster_id(cluster_id); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::CreateCluster( google::cloud::alloydb::v1::CreateClusterRequest const& request, @@ -83,6 +97,24 @@ AlloyDBAdminClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr AlloyDBAdminClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::UpdateCluster( google::cloud::alloydb::v1::Cluster const& cluster, @@ -94,6 +126,18 @@ AlloyDBAdminClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr AlloyDBAdminClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::UpdateClusterRequest request; + *request.mutable_cluster() = cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request, @@ -102,6 +146,24 @@ AlloyDBAdminClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr AlloyDBAdminClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::DeleteCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -110,6 +172,16 @@ AlloyDBAdminClient::DeleteCluster(std::string const& name, Options opts) { return connection_->DeleteCluster(request); } +StatusOr AlloyDBAdminClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::DeleteClusterRequest request; + request.set_name(name); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request, @@ -118,6 +190,24 @@ AlloyDBAdminClient::DeleteCluster( return connection_->DeleteCluster(request); } +StatusOr AlloyDBAdminClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::PromoteCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -126,6 +216,16 @@ AlloyDBAdminClient::PromoteCluster(std::string const& name, Options opts) { return connection_->PromoteCluster(request); } +StatusOr AlloyDBAdminClient::PromoteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::PromoteClusterRequest request; + request.set_name(name); + return connection_->PromoteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request, @@ -134,6 +234,24 @@ AlloyDBAdminClient::PromoteCluster( return connection_->PromoteCluster(request); } +StatusOr AlloyDBAdminClient::PromoteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PromoteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::PromoteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PromoteCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request, @@ -142,6 +260,24 @@ AlloyDBAdminClient::RestoreCluster( return connection_->RestoreCluster(request); } +StatusOr AlloyDBAdminClient::RestoreCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::RestoreCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::CreateSecondaryCluster( std::string const& parent, @@ -155,6 +291,21 @@ AlloyDBAdminClient::CreateSecondaryCluster( return connection_->CreateSecondaryCluster(request); } +StatusOr +AlloyDBAdminClient::CreateSecondaryCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::CreateSecondaryClusterRequest request; + request.set_parent(parent); + *request.mutable_cluster() = cluster; + request.set_cluster_id(cluster_id); + return connection_->CreateSecondaryCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request, @@ -163,6 +314,25 @@ AlloyDBAdminClient::CreateSecondaryCluster( return connection_->CreateSecondaryCluster(request); } +StatusOr +AlloyDBAdminClient::CreateSecondaryCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSecondaryCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::CreateSecondaryCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSecondaryCluster(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AlloyDBAdminClient::ListInstances(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -206,6 +376,20 @@ AlloyDBAdminClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr AlloyDBAdminClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Instance const& instance, + std::string const& instance_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::CreateInstanceRequest request; + request.set_parent(parent); + *request.mutable_instance() = instance; + request.set_instance_id(instance_id); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::CreateInstance( google::cloud::alloydb::v1::CreateInstanceRequest const& request, @@ -214,6 +398,24 @@ AlloyDBAdminClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr AlloyDBAdminClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::CreateSecondaryInstance( std::string const& parent, @@ -227,6 +429,21 @@ AlloyDBAdminClient::CreateSecondaryInstance( return connection_->CreateSecondaryInstance(request); } +StatusOr +AlloyDBAdminClient::CreateSecondaryInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Instance const& instance, + std::string const& instance_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest request; + request.set_parent(parent); + *request.mutable_instance() = instance; + request.set_instance_id(instance_id); + return connection_->CreateSecondaryInstance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request, @@ -235,6 +452,25 @@ AlloyDBAdminClient::CreateSecondaryInstance( return connection_->CreateSecondaryInstance(request); } +StatusOr +AlloyDBAdminClient::CreateSecondaryInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSecondaryInstance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::CreateSecondaryInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSecondaryInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::BatchCreateInstances( google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request, @@ -243,6 +479,25 @@ AlloyDBAdminClient::BatchCreateInstances( return connection_->BatchCreateInstances(request); } +StatusOr +AlloyDBAdminClient::BatchCreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateInstances( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::BatchCreateInstances( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::UpdateInstance( google::cloud::alloydb::v1::Instance const& instance, @@ -254,6 +509,18 @@ AlloyDBAdminClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr AlloyDBAdminClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::UpdateInstanceRequest request; + *request.mutable_instance() = instance; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const& request, @@ -262,6 +529,24 @@ AlloyDBAdminClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr AlloyDBAdminClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::DeleteInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -270,6 +555,16 @@ AlloyDBAdminClient::DeleteInstance(std::string const& name, Options opts) { return connection_->DeleteInstance(request); } +StatusOr AlloyDBAdminClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::DeleteInstanceRequest request; + request.set_name(name); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::DeleteInstance( google::cloud::alloydb::v1::DeleteInstanceRequest const& request, @@ -278,6 +573,24 @@ AlloyDBAdminClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr AlloyDBAdminClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::FailoverInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -286,6 +599,16 @@ AlloyDBAdminClient::FailoverInstance(std::string const& name, Options opts) { return connection_->FailoverInstance(request); } +StatusOr AlloyDBAdminClient::FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::FailoverInstanceRequest request; + request.set_name(name); + return connection_->FailoverInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const& request, @@ -294,6 +617,24 @@ AlloyDBAdminClient::FailoverInstance( return connection_->FailoverInstance(request); } +StatusOr AlloyDBAdminClient::FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->FailoverInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::FailoverInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->FailoverInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> AlloyDBAdminClient::InjectFault( google::cloud::alloydb::v1::InjectFaultRequest::FaultType fault_type, @@ -305,6 +646,18 @@ AlloyDBAdminClient::InjectFault( return connection_->InjectFault(request); } +StatusOr AlloyDBAdminClient::InjectFault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest::FaultType fault_type, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::InjectFaultRequest request; + request.set_fault_type(fault_type); + request.set_name(name); + return connection_->InjectFault(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const& request, @@ -313,6 +666,23 @@ AlloyDBAdminClient::InjectFault( return connection_->InjectFault(request); } +StatusOr AlloyDBAdminClient::InjectFault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InjectFault(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::InjectFault(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InjectFault(google::cloud::ExperimentalTag{}, operation); +} + future> AlloyDBAdminClient::RestartInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -321,6 +691,16 @@ AlloyDBAdminClient::RestartInstance(std::string const& name, Options opts) { return connection_->RestartInstance(request); } +StatusOr AlloyDBAdminClient::RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::RestartInstanceRequest request; + request.set_name(name); + return connection_->RestartInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const& request, @@ -329,6 +709,24 @@ AlloyDBAdminClient::RestartInstance( return connection_->RestartInstance(request); } +StatusOr AlloyDBAdminClient::RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestartInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::RestartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestartInstance(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AlloyDBAdminClient::ListBackups( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -369,6 +767,19 @@ AlloyDBAdminClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr AlloyDBAdminClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::alloydb::v1::Backup const& backup, + std::string const& backup_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::CreateBackupRequest request; + request.set_parent(parent); + *request.mutable_backup() = backup; + request.set_backup_id(backup_id); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::CreateBackup( google::cloud::alloydb::v1::CreateBackupRequest const& request, @@ -377,6 +788,23 @@ AlloyDBAdminClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr AlloyDBAdminClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, operation); +} + future> AlloyDBAdminClient::UpdateBackup( google::cloud::alloydb::v1::Backup const& backup, @@ -388,6 +816,18 @@ AlloyDBAdminClient::UpdateBackup( return connection_->UpdateBackup(request); } +StatusOr AlloyDBAdminClient::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::Backup const& backup, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::UpdateBackupRequest request; + *request.mutable_backup() = backup; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request, @@ -396,6 +836,23 @@ AlloyDBAdminClient::UpdateBackup( return connection_->UpdateBackup(request); } +StatusOr AlloyDBAdminClient::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, operation); +} + future> AlloyDBAdminClient::DeleteBackup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -404,6 +861,16 @@ AlloyDBAdminClient::DeleteBackup(std::string const& name, Options opts) { return connection_->DeleteBackup(request); } +StatusOr AlloyDBAdminClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::alloydb::v1::DeleteBackupRequest request; + request.set_name(name); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AlloyDBAdminClient::DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const& request, @@ -412,6 +879,23 @@ AlloyDBAdminClient::DeleteBackup( return connection_->DeleteBackup(request); } +StatusOr AlloyDBAdminClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AlloyDBAdminClient::DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, operation); +} + StreamRange AlloyDBAdminClient::ListSupportedDatabaseFlags(std::string const& parent, Options opts) { diff --git a/google/cloud/alloydb/v1/alloy_db_admin_client.h b/google/cloud/alloydb/v1/alloy_db_admin_client.h index 6337770abffd9..ac20f8a96863b 100644 --- a/google/cloud/alloydb/v1/alloy_db_admin_client.h +++ b/google/cloud/alloydb/v1/alloy_db_admin_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ALLOYDB_V1_ALLOY_DB_ADMIN_CLIENT_H #include "google/cloud/alloydb/v1/alloy_db_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -258,6 +260,12 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::Cluster const& cluster, std::string const& cluster_id, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new Cluster in a given project and location. @@ -296,6 +304,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::CreateClusterRequest const& request, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request, + Options opts = {}); + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Cluster. @@ -334,6 +351,11 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::Cluster const& cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Cluster. @@ -372,6 +394,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::UpdateClusterRequest const& request, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request, + Options opts = {}); + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Cluster. @@ -405,6 +436,10 @@ class AlloyDBAdminClient { future> DeleteCluster( std::string const& name, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Cluster. @@ -443,6 +478,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::DeleteClusterRequest const& request, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request, + Options opts = {}); + + future> DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Promotes a SECONDARY cluster. This turns down replication @@ -479,6 +523,10 @@ class AlloyDBAdminClient { future> PromoteCluster( std::string const& name, Options opts = {}); + StatusOr PromoteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Promotes a SECONDARY cluster. This turns down replication @@ -520,6 +568,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::PromoteClusterRequest const& request, Options opts = {}); + StatusOr PromoteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request, + Options opts = {}); + + future> PromoteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a new Cluster in a given project and location, with a volume @@ -560,6 +617,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::RestoreClusterRequest const& request, Options opts = {}); + StatusOr RestoreCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request, + Options opts = {}); + + future> RestoreCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a cluster of type SECONDARY in the given location using @@ -598,6 +664,12 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::Cluster const& cluster, std::string const& cluster_id, Options opts = {}); + StatusOr CreateSecondaryCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts = {}); + // clang-format off /// /// Creates a cluster of type SECONDARY in the given location using @@ -637,6 +709,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request, Options opts = {}); + StatusOr CreateSecondaryCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request, + Options opts = {}); + + future> CreateSecondaryCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists Instances in a given project and location. @@ -810,6 +891,12 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::Instance const& instance, std::string const& instance_id, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Instance const& instance, + std::string const& instance_id, Options opts = {}); + // clang-format off /// /// Creates a new Instance in a given project and location. @@ -848,6 +935,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::CreateInstanceRequest const& request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request, + Options opts = {}); + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a new SECONDARY Instance in a given project and location. @@ -885,6 +981,12 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::Instance const& instance, std::string const& instance_id, Options opts = {}); + StatusOr CreateSecondaryInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Instance const& instance, + std::string const& instance_id, Options opts = {}); + // clang-format off /// /// Creates a new SECONDARY Instance in a given project and location. @@ -924,6 +1026,16 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request, Options opts = {}); + StatusOr CreateSecondaryInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request, + Options opts = {}); + + future> + CreateSecondaryInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates new instances under the given project, location and cluster. @@ -972,6 +1084,16 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request, Options opts = {}); + StatusOr BatchCreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request, + Options opts = {}); + + future> + BatchCreateInstances(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Instance. @@ -1010,6 +1132,11 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::Instance const& instance, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Instance. @@ -1048,6 +1175,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::UpdateInstanceRequest const& request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request, + Options opts = {}); + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Instance. @@ -1081,6 +1217,10 @@ class AlloyDBAdminClient { future> DeleteInstance(std::string const& name, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Instance. @@ -1120,6 +1260,16 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::DeleteInstanceRequest const& request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request, + Options opts = {}); + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Forces a Failover for a highly available instance. @@ -1155,6 +1305,10 @@ class AlloyDBAdminClient { future> FailoverInstance( std::string const& name, Options opts = {}); + StatusOr FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Forces a Failover for a highly available instance. @@ -1195,6 +1349,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::FailoverInstanceRequest const& request, Options opts = {}); + StatusOr FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request, + Options opts = {}); + + future> FailoverInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Injects fault in an instance. @@ -1231,6 +1394,11 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::InjectFaultRequest::FaultType fault_type, std::string const& name, Options opts = {}); + StatusOr InjectFault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest::FaultType fault_type, + std::string const& name, Options opts = {}); + // clang-format off /// /// Injects fault in an instance. @@ -1270,6 +1438,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::InjectFaultRequest const& request, Options opts = {}); + StatusOr InjectFault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request, + Options opts = {}); + + future> InjectFault( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Restart an Instance in a cluster. @@ -1304,6 +1481,10 @@ class AlloyDBAdminClient { future> RestartInstance( std::string const& name, Options opts = {}); + StatusOr RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Restart an Instance in a cluster. @@ -1343,6 +1524,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::RestartInstanceRequest const& request, Options opts = {}); + StatusOr RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request, + Options opts = {}); + + future> RestartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists Backups in a given project and location. @@ -1509,6 +1699,12 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::Backup const& backup, std::string const& backup_id, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::alloydb::v1::Backup const& backup, + std::string const& backup_id, Options opts = {}); + // clang-format off /// /// Creates a new Backup in a given project and location. @@ -1547,6 +1743,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::CreateBackupRequest const& request, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request, + Options opts = {}); + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Backup. @@ -1585,6 +1790,11 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::Backup const& backup, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::Backup const& backup, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Backup. @@ -1623,6 +1833,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::UpdateBackupRequest const& request, Options opts = {}); + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request, + Options opts = {}); + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Backup. @@ -1656,6 +1875,10 @@ class AlloyDBAdminClient { future> DeleteBackup( std::string const& name, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Backup. @@ -1694,6 +1917,15 @@ class AlloyDBAdminClient { google::cloud::alloydb::v1::DeleteBackupRequest const& request, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request, + Options opts = {}); + + future> DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists SupportedDatabaseFlags for a given project and location. 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..61d4a02b39b8b 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,58 @@ AlloyDBAdminConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +242,58 @@ AlloyDBAdminConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +333,59 @@ AlloyDBAdminConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +425,58 @@ AlloyDBAdminConnectionImpl::PromoteCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::PromoteCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +516,58 @@ AlloyDBAdminConnectionImpl::RestoreCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::RestoreCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +608,59 @@ AlloyDBAdminConnectionImpl::CreateSecondaryCluster( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::CreateSecondaryCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +748,58 @@ AlloyDBAdminConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +834,359 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1204,44 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::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 +1259,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 +1295,44 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::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 +1350,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 +1367,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 +1392,39 @@ AlloyDBAdminConnectionImpl::InjectFault( polling_policy(*current), __func__); } -future> +StatusOr AlloyDBAdminConnectionImpl::RestartInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1442,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 +1532,58 @@ AlloyDBAdminConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1623,58 @@ AlloyDBAdminConnectionImpl::UpdateBackup( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1714,59 @@ AlloyDBAdminConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr +AlloyDBAdminConnectionImpl::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..3841a5759b645 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request) override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request) override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request) override; + + future> DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request) override; + StatusOr PromoteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request) + override; + + future> PromoteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request) override; + StatusOr RestoreCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request) + override; + + future> RestoreCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) override; + StatusOr CreateSecondaryCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) + override; + + future> CreateSecondaryCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) override; + StatusOr CreateSecondaryInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) + override; + + future> + CreateSecondaryInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateInstances( google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) override; + StatusOr BatchCreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) + override; + + future> + BatchCreateInstances( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::alloydb::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const& request) override; + StatusOr FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) + override; + + future> FailoverInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const& request) override; + StatusOr InjectFault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request) override; + + future> InjectFault( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const& request) override; + StatusOr RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request) + override; + + future> RestartInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request) override; + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request) override; + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request) override; + + future> DeleteBackup( + google::cloud::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..dbe5a35ad7e07 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,30 @@ AlloyDBAdminTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request) { @@ -71,6 +95,30 @@ AlloyDBAdminTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::UpdateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request) { @@ -80,6 +128,30 @@ AlloyDBAdminTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::DeleteCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request) { @@ -89,6 +161,30 @@ AlloyDBAdminTracingConnection::PromoteCluster( return internal::EndSpan(std::move(span), child_->PromoteCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::PromoteCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::PromoteCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request) { @@ -98,6 +194,30 @@ AlloyDBAdminTracingConnection::RestoreCluster( return internal::EndSpan(std::move(span), child_->RestoreCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::RestoreCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::RestoreCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) { @@ -108,6 +228,30 @@ AlloyDBAdminTracingConnection::CreateSecondaryCluster( child_->CreateSecondaryCluster(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateSecondaryCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateSecondaryCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AlloyDBAdminTracingConnection::ListInstances( google::cloud::alloydb::v1::ListInstancesRequest request) { @@ -137,6 +281,30 @@ AlloyDBAdminTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) { @@ -147,6 +315,30 @@ AlloyDBAdminTracingConnection::CreateSecondaryInstance( child_->CreateSecondaryInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateSecondaryInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateSecondaryInstance( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::BatchCreateInstances( google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) { @@ -157,6 +349,30 @@ AlloyDBAdminTracingConnection::BatchCreateInstances( child_->BatchCreateInstances(request)); } +StatusOr +AlloyDBAdminTracingConnection::BatchCreateInstances( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::BatchCreateInstances( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const& request) { @@ -166,6 +382,30 @@ AlloyDBAdminTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::DeleteInstance( google::cloud::alloydb::v1::DeleteInstanceRequest const& request) { @@ -175,6 +415,30 @@ AlloyDBAdminTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const& request) { @@ -184,6 +448,30 @@ AlloyDBAdminTracingConnection::FailoverInstance( return internal::EndSpan(std::move(span), child_->FailoverInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::FailoverInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const& request) { @@ -193,6 +481,30 @@ AlloyDBAdminTracingConnection::InjectFault( return internal::EndSpan(std::move(span), child_->InjectFault(request)); } +StatusOr +AlloyDBAdminTracingConnection::InjectFault( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::InjectFault( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const& request) { @@ -202,6 +514,30 @@ AlloyDBAdminTracingConnection::RestartInstance( return internal::EndSpan(std::move(span), child_->RestartInstance(request)); } +StatusOr +AlloyDBAdminTracingConnection::RestartInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::RestartInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AlloyDBAdminTracingConnection::ListBackups( google::cloud::alloydb::v1::ListBackupsRequest request) { @@ -231,6 +567,30 @@ AlloyDBAdminTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +AlloyDBAdminTracingConnection::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::CreateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request) { @@ -240,6 +600,30 @@ AlloyDBAdminTracingConnection::UpdateBackup( return internal::EndSpan(std::move(span), child_->UpdateBackup(request)); } +StatusOr +AlloyDBAdminTracingConnection::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::UpdateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AlloyDBAdminTracingConnection::DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const& request) { @@ -249,6 +633,30 @@ AlloyDBAdminTracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr +AlloyDBAdminTracingConnection::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AlloyDBAdminTracingConnection::DeleteBackup( + google::cloud::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(google::cloud::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..1ab875348ebf8 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request) override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::alloydb::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request) override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster( google::cloud::alloydb::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request) override; + + future> DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PromoteCluster( google::cloud::alloydb::v1::PromoteClusterRequest const& request) override; + StatusOr PromoteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request) + override; + + future> PromoteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreCluster( google::cloud::alloydb::v1::RestoreClusterRequest const& request) override; + StatusOr RestoreCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request) + override; + + future> RestoreCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSecondaryCluster( google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) override; + StatusOr CreateSecondaryCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request) + override; + + future> CreateSecondaryCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSecondaryInstance( google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) override; + StatusOr CreateSecondaryInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request) + override; + + future> + CreateSecondaryInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateInstances( google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) override; + StatusOr BatchCreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request) + override; + + future> + BatchCreateInstances( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::alloydb::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::alloydb::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FailoverInstance( google::cloud::alloydb::v1::FailoverInstanceRequest const& request) override; + StatusOr FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request) + override; + + future> FailoverInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> InjectFault( google::cloud::alloydb::v1::InjectFaultRequest const& request) override; + StatusOr InjectFault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request) override; + + future> InjectFault( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartInstance( google::cloud::alloydb::v1::RestartInstanceRequest const& request) override; + StatusOr RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request) + override; + + future> RestartInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request) override; + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::alloydb::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request) override; + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup( google::cloud::alloydb::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request) override; + + future> DeleteBackup( + google::cloud::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..f531cd485d41b 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateCluster, (google::cloud::alloydb::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteCluster, (google::cloud::alloydb::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PromoteCluster, (google::cloud::alloydb::v1::PromoteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PromoteCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::PromoteClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + PromoteCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreCluster, (google::cloud::alloydb::v1::RestoreClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestoreClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestoreCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateSecondaryCluster, (google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateSecondaryCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSecondaryCluster, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateSecondaryInstance, (google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateSecondaryInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateSecondaryInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSecondaryInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -112,32 +205,105 @@ class MockAlloyDBAdminConnection : public alloydb_v1::AlloyDBAdminConnection { (google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchCreateInstances, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::BatchCreateInstancesRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + BatchCreateInstances, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::alloydb::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::alloydb::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, FailoverInstance, (google::cloud::alloydb::v1::FailoverInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, FailoverInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::FailoverInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + FailoverInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, InjectFault, (google::cloud::alloydb::v1::InjectFaultRequest const& request), (override)); + MOCK_METHOD(StatusOr, InjectFault, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::InjectFaultRequest const& request), + (override)); + + MOCK_METHOD(future>, + InjectFault, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestartInstance, (google::cloud::alloydb::v1::RestartInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestartInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::RestartInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestartInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackups, (google::cloud::alloydb::v1::ListBackupsRequest request), (override)); @@ -151,16 +317,49 @@ class MockAlloyDBAdminConnection : public alloydb_v1::AlloyDBAdminConnection { (google::cloud::alloydb::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateBackup, (google::cloud::alloydb::v1::UpdateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::UpdateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteBackup, (google::cloud::alloydb::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::alloydb::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListSupportedDatabaseFlags, diff --git a/google/cloud/apigateway/v1/api_gateway_client.cc b/google/cloud/apigateway/v1/api_gateway_client.cc index 51286a588ff31..e6ba9a2bb322f 100644 --- a/google/cloud/apigateway/v1/api_gateway_client.cc +++ b/google/cloud/apigateway/v1/api_gateway_client.cc @@ -76,6 +76,20 @@ ApiGatewayServiceClient::CreateGateway( return connection_->CreateGateway(request); } +StatusOr ApiGatewayServiceClient::CreateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apigateway::v1::Gateway const& gateway, + std::string const& gateway_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::CreateGatewayRequest request; + request.set_parent(parent); + *request.mutable_gateway() = gateway; + request.set_gateway_id(gateway_id); + return connection_->CreateGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::CreateGateway( google::cloud::apigateway::v1::CreateGatewayRequest const& request, @@ -84,6 +98,24 @@ ApiGatewayServiceClient::CreateGateway( return connection_->CreateGateway(request); } +StatusOr ApiGatewayServiceClient::CreateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::CreateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGateway(google::cloud::ExperimentalTag{}, + operation); +} + future> ApiGatewayServiceClient::UpdateGateway( google::cloud::apigateway::v1::Gateway const& gateway, @@ -95,6 +127,18 @@ ApiGatewayServiceClient::UpdateGateway( return connection_->UpdateGateway(request); } +StatusOr ApiGatewayServiceClient::UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::Gateway const& gateway, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::UpdateGatewayRequest request; + *request.mutable_gateway() = gateway; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request, @@ -103,6 +147,24 @@ ApiGatewayServiceClient::UpdateGateway( return connection_->UpdateGateway(request); } +StatusOr ApiGatewayServiceClient::UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::UpdateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGateway(google::cloud::ExperimentalTag{}, + operation); +} + future> ApiGatewayServiceClient::DeleteGateway(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -111,6 +173,16 @@ ApiGatewayServiceClient::DeleteGateway(std::string const& name, Options opts) { return connection_->DeleteGateway(request); } +StatusOr ApiGatewayServiceClient::DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::DeleteGatewayRequest request; + request.set_name(name); + return connection_->DeleteGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::DeleteGateway( google::cloud::apigateway::v1::DeleteGatewayRequest const& request, @@ -119,6 +191,24 @@ ApiGatewayServiceClient::DeleteGateway( return connection_->DeleteGateway(request); } +StatusOr ApiGatewayServiceClient::DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::DeleteGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGateway(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ApiGatewayServiceClient::ListApis(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -160,6 +250,19 @@ ApiGatewayServiceClient::CreateApi( return connection_->CreateApi(request); } +StatusOr ApiGatewayServiceClient::CreateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::apigateway::v1::Api const& api, + std::string const& api_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::CreateApiRequest request; + request.set_parent(parent); + *request.mutable_api() = api; + request.set_api_id(api_id); + return connection_->CreateApi(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::CreateApi( google::cloud::apigateway::v1::CreateApiRequest const& request, @@ -168,6 +271,23 @@ ApiGatewayServiceClient::CreateApi( return connection_->CreateApi(request); } +StatusOr ApiGatewayServiceClient::CreateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateApi(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::CreateApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateApi(google::cloud::ExperimentalTag{}, operation); +} + future> ApiGatewayServiceClient::UpdateApi( google::cloud::apigateway::v1::Api const& api, @@ -179,6 +299,18 @@ ApiGatewayServiceClient::UpdateApi( return connection_->UpdateApi(request); } +StatusOr ApiGatewayServiceClient::UpdateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::Api const& api, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::UpdateApiRequest request; + *request.mutable_api() = api; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateApi(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request, @@ -187,6 +319,23 @@ ApiGatewayServiceClient::UpdateApi( return connection_->UpdateApi(request); } +StatusOr ApiGatewayServiceClient::UpdateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateApi(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::UpdateApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateApi(google::cloud::ExperimentalTag{}, operation); +} + future> ApiGatewayServiceClient::DeleteApi(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -195,6 +344,16 @@ ApiGatewayServiceClient::DeleteApi(std::string const& name, Options opts) { return connection_->DeleteApi(request); } +StatusOr ApiGatewayServiceClient::DeleteApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::DeleteApiRequest request; + request.set_name(name); + return connection_->DeleteApi(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const& request, @@ -203,6 +362,23 @@ ApiGatewayServiceClient::DeleteApi( return connection_->DeleteApi(request); } +StatusOr ApiGatewayServiceClient::DeleteApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteApi(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::DeleteApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteApi(google::cloud::ExperimentalTag{}, operation); +} + StreamRange ApiGatewayServiceClient::ListApiConfigs(std::string const& parent, Options opts) { @@ -249,6 +425,21 @@ ApiGatewayServiceClient::CreateApiConfig( return connection_->CreateApiConfig(request); } +StatusOr +ApiGatewayServiceClient::CreateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apigateway::v1::ApiConfig const& api_config, + std::string const& api_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::CreateApiConfigRequest request; + request.set_parent(parent); + *request.mutable_api_config() = api_config; + request.set_api_config_id(api_config_id); + return connection_->CreateApiConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::CreateApiConfig( google::cloud::apigateway::v1::CreateApiConfigRequest const& request, @@ -257,6 +448,25 @@ ApiGatewayServiceClient::CreateApiConfig( return connection_->CreateApiConfig(request); } +StatusOr +ApiGatewayServiceClient::CreateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateApiConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::CreateApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateApiConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> ApiGatewayServiceClient::UpdateApiConfig( google::cloud::apigateway::v1::ApiConfig const& api_config, @@ -268,6 +478,19 @@ ApiGatewayServiceClient::UpdateApiConfig( return connection_->UpdateApiConfig(request); } +StatusOr +ApiGatewayServiceClient::UpdateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::ApiConfig const& api_config, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::UpdateApiConfigRequest request; + *request.mutable_api_config() = api_config; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateApiConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request, @@ -276,6 +499,25 @@ ApiGatewayServiceClient::UpdateApiConfig( return connection_->UpdateApiConfig(request); } +StatusOr +ApiGatewayServiceClient::UpdateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateApiConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::UpdateApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateApiConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> ApiGatewayServiceClient::DeleteApiConfig(std::string const& name, Options opts) { @@ -285,6 +527,18 @@ ApiGatewayServiceClient::DeleteApiConfig(std::string const& name, return connection_->DeleteApiConfig(request); } +StatusOr +ApiGatewayServiceClient::DeleteApiConfig(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apigateway::v1::DeleteApiConfigRequest request; + request.set_name(name); + return connection_->DeleteApiConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiGatewayServiceClient::DeleteApiConfig( google::cloud::apigateway::v1::DeleteApiConfigRequest const& request, @@ -293,6 +547,25 @@ ApiGatewayServiceClient::DeleteApiConfig( return connection_->DeleteApiConfig(request); } +StatusOr +ApiGatewayServiceClient::DeleteApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteApiConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApiGatewayServiceClient::DeleteApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteApiConfig(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace apigateway_v1 } // namespace cloud diff --git a/google/cloud/apigateway/v1/api_gateway_client.h b/google/cloud/apigateway/v1/api_gateway_client.h index 4a26f62d0e1d6..14baa79afc072 100644 --- a/google/cloud/apigateway/v1/api_gateway_client.h +++ b/google/cloud/apigateway/v1/api_gateway_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APIGATEWAY_V1_API_GATEWAY_CLIENT_H #include "google/cloud/apigateway/v1/api_gateway_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -258,6 +260,12 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::Gateway const& gateway, std::string const& gateway_id, Options opts = {}); + StatusOr CreateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apigateway::v1::Gateway const& gateway, + std::string const& gateway_id, Options opts = {}); + // clang-format off /// /// Creates a new Gateway in a given project and location. @@ -296,6 +304,15 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::CreateGatewayRequest const& request, Options opts = {}); + StatusOr CreateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request, + Options opts = {}); + + future> CreateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Gateway. @@ -334,6 +351,11 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::Gateway const& gateway, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::Gateway const& gateway, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Gateway. @@ -372,6 +394,15 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::UpdateGatewayRequest const& request, Options opts = {}); + StatusOr UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request, + Options opts = {}); + + future> UpdateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Gateway. @@ -405,6 +436,10 @@ class ApiGatewayServiceClient { future> DeleteGateway(std::string const& name, Options opts = {}); + StatusOr DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Gateway. @@ -444,6 +479,16 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::DeleteGatewayRequest const& request, Options opts = {}); + StatusOr DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request, + Options opts = {}); + + future> + DeleteGateway(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Apis in a given project and location. @@ -613,6 +658,11 @@ class ApiGatewayServiceClient { std::string const& parent, google::cloud::apigateway::v1::Api const& api, std::string const& api_id, Options opts = {}); + StatusOr CreateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::apigateway::v1::Api const& api, + std::string const& api_id, Options opts = {}); + // clang-format off /// /// Creates a new Api in a given project and location. @@ -651,6 +701,15 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::CreateApiRequest const& request, Options opts = {}); + StatusOr CreateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request, + Options opts = {}); + + future> CreateApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Api. @@ -689,6 +748,11 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::Api const& api, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::Api const& api, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Api. @@ -727,6 +791,15 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::UpdateApiRequest const& request, Options opts = {}); + StatusOr UpdateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request, + Options opts = {}); + + future> UpdateApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Api. @@ -760,6 +833,10 @@ class ApiGatewayServiceClient { future> DeleteApi( std::string const& name, Options opts = {}); + StatusOr DeleteApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Api. @@ -798,6 +875,15 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::DeleteApiRequest const& request, Options opts = {}); + StatusOr DeleteApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request, + Options opts = {}); + + future> DeleteApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists ApiConfigs in a given project and location. @@ -968,6 +1054,12 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::ApiConfig const& api_config, std::string const& api_config_id, Options opts = {}); + StatusOr CreateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apigateway::v1::ApiConfig const& api_config, + std::string const& api_config_id, Options opts = {}); + // clang-format off /// /// Creates a new ApiConfig in a given project and location. @@ -1006,6 +1098,15 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::CreateApiConfigRequest const& request, Options opts = {}); + StatusOr CreateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request, + Options opts = {}); + + future> CreateApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single ApiConfig. @@ -1044,6 +1145,11 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::ApiConfig const& api_config, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::ApiConfig const& api_config, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single ApiConfig. @@ -1082,6 +1188,15 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::UpdateApiConfigRequest const& request, Options opts = {}); + StatusOr UpdateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request, + Options opts = {}); + + future> UpdateApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single ApiConfig. @@ -1115,6 +1230,10 @@ class ApiGatewayServiceClient { future> DeleteApiConfig(std::string const& name, Options opts = {}); + StatusOr DeleteApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single ApiConfig. @@ -1154,6 +1273,16 @@ class ApiGatewayServiceClient { google::cloud::apigateway::v1::DeleteApiConfigRequest const& request, Options opts = {}); + StatusOr DeleteApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request, + Options opts = {}); + + future> + DeleteApiConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..29b7f6e18a915 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,59 @@ ApiGatewayServiceConnectionImpl::CreateGateway( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::CreateGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +246,59 @@ ApiGatewayServiceConnectionImpl::UpdateGateway( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +338,60 @@ ApiGatewayServiceConnectionImpl::DeleteGateway( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +477,58 @@ ApiGatewayServiceConnectionImpl::CreateApi( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::CreateApi( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +567,58 @@ ApiGatewayServiceConnectionImpl::UpdateApi( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::UpdateApi( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +657,59 @@ ApiGatewayServiceConnectionImpl::DeleteApi( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::DeleteApi( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +799,60 @@ ApiGatewayServiceConnectionImpl::CreateApiConfig( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::CreateApiConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +893,60 @@ ApiGatewayServiceConnectionImpl::UpdateApiConfig( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::UpdateApiConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +987,60 @@ ApiGatewayServiceConnectionImpl::DeleteApiConfig( polling_policy(*current), __func__); } +StatusOr +ApiGatewayServiceConnectionImpl::DeleteApiConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..7844eedd33ee3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request) + override; + + future> CreateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request) override; + StatusOr UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request) + override; + + future> UpdateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGateway(google::cloud::apigateway::v1::DeleteGatewayRequest const& request) override; + StatusOr DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request) + override; + + future> + DeleteGateway(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request) override; + + future> CreateApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request) override; + StatusOr UpdateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request) override; + + future> UpdateApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const& request) override; + StatusOr DeleteApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request) override; + + future> DeleteApi( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request) + override; + + future> CreateApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) override; + StatusOr UpdateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) + override; + + future> UpdateApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApiConfig(google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) override; + StatusOr DeleteApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) + override; + + future> + DeleteApiConfig(google::cloud::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..affaf9d865755 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,30 @@ ApiGatewayServiceTracingConnection::CreateGateway( return internal::EndSpan(std::move(span), child_->CreateGateway(request)); } +StatusOr +ApiGatewayServiceTracingConnection::CreateGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::CreateGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request) { @@ -71,6 +95,30 @@ ApiGatewayServiceTracingConnection::UpdateGateway( return internal::EndSpan(std::move(span), child_->UpdateGateway(request)); } +StatusOr +ApiGatewayServiceTracingConnection::UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::UpdateGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::DeleteGateway( google::cloud::apigateway::v1::DeleteGatewayRequest const& request) { @@ -80,6 +128,30 @@ ApiGatewayServiceTracingConnection::DeleteGateway( return internal::EndSpan(std::move(span), child_->DeleteGateway(request)); } +StatusOr +ApiGatewayServiceTracingConnection::DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::DeleteGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ApiGatewayServiceTracingConnection::ListApis( google::cloud::apigateway::v1::ListApisRequest request) { @@ -109,6 +181,30 @@ ApiGatewayServiceTracingConnection::CreateApi( return internal::EndSpan(std::move(span), child_->CreateApi(request)); } +StatusOr +ApiGatewayServiceTracingConnection::CreateApi( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::CreateApi( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request) { @@ -118,6 +214,30 @@ ApiGatewayServiceTracingConnection::UpdateApi( return internal::EndSpan(std::move(span), child_->UpdateApi(request)); } +StatusOr +ApiGatewayServiceTracingConnection::UpdateApi( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::UpdateApi( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const& request) { @@ -127,6 +247,30 @@ ApiGatewayServiceTracingConnection::DeleteApi( return internal::EndSpan(std::move(span), child_->DeleteApi(request)); } +StatusOr +ApiGatewayServiceTracingConnection::DeleteApi( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::DeleteApi( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ApiGatewayServiceTracingConnection::ListApiConfigs( google::cloud::apigateway::v1::ListApiConfigsRequest request) { @@ -156,6 +300,30 @@ ApiGatewayServiceTracingConnection::CreateApiConfig( return internal::EndSpan(std::move(span), child_->CreateApiConfig(request)); } +StatusOr +ApiGatewayServiceTracingConnection::CreateApiConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::CreateApiConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) { @@ -165,6 +333,30 @@ ApiGatewayServiceTracingConnection::UpdateApiConfig( return internal::EndSpan(std::move(span), child_->UpdateApiConfig(request)); } +StatusOr +ApiGatewayServiceTracingConnection::UpdateApiConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::UpdateApiConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApiGatewayServiceTracingConnection::DeleteApiConfig( google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) { @@ -174,6 +366,30 @@ ApiGatewayServiceTracingConnection::DeleteApiConfig( return internal::EndSpan(std::move(span), child_->DeleteApiConfig(request)); } +StatusOr +ApiGatewayServiceTracingConnection::DeleteApiConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiGatewayServiceTracingConnection::DeleteApiConfig( + google::cloud::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(google::cloud::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..712635da6db9d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request) + override; + + future> CreateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGateway( google::cloud::apigateway::v1::UpdateGatewayRequest const& request) override; + StatusOr UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request) + override; + + future> UpdateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGateway(google::cloud::apigateway::v1::DeleteGatewayRequest const& request) override; + StatusOr DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request) + override; + + future> + DeleteGateway(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request) override; + + future> CreateApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApi( google::cloud::apigateway::v1::UpdateApiRequest const& request) override; + StatusOr UpdateApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request) override; + + future> UpdateApi( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApi( google::cloud::apigateway::v1::DeleteApiRequest const& request) override; + StatusOr DeleteApi( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request) override; + + future> DeleteApi( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request) + override; + + future> CreateApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApiConfig( google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) override; + StatusOr UpdateApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request) + override; + + future> UpdateApiConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApiConfig(google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) override; + StatusOr DeleteApiConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request) + override; + + future> + DeleteApiConfig(google::cloud::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..361dd15e1fcf2 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,54 @@ class MockApiGatewayServiceConnection (google::cloud::apigateway::v1::CreateGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGateway, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGateway, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateGateway, (google::cloud::apigateway::v1::UpdateGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateGateway, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateGateway, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGateway, (google::cloud::apigateway::v1::DeleteGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGateway, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteGatewayRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGateway, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListApis, (google::cloud::apigateway::v1::ListApisRequest request), (override)); @@ -84,16 +121,48 @@ class MockApiGatewayServiceConnection (google::cloud::apigateway::v1::CreateApiRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateApi, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateApi, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateApi, (google::cloud::apigateway::v1::UpdateApiRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateApi, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateApi, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteApi, (google::cloud::apigateway::v1::DeleteApiRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteApi, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteApi, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListApiConfigs, (google::cloud::apigateway::v1::ListApiConfigsRequest request), @@ -110,17 +179,54 @@ class MockApiGatewayServiceConnection (google::cloud::apigateway::v1::CreateApiConfigRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateApiConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::CreateApiConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateApiConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateApiConfig, (google::cloud::apigateway::v1::UpdateApiConfigRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateApiConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::UpdateApiConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateApiConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteApiConfig, (google::cloud::apigateway::v1::DeleteApiConfigRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteApiConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apigateway::v1::DeleteApiConfigRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteApiConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/apigeeconnect/v1/connection_client.h b/google/cloud/apigeeconnect/v1/connection_client.h index 6acc33ea7e523..4d4f8f8508ad2 100644 --- a/google/cloud/apigeeconnect/v1/connection_client.h +++ b/google/cloud/apigeeconnect/v1/connection_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APIGEECONNECT_V1_CONNECTION_CLIENT_H #include "google/cloud/apigeeconnect/v1/connection_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/apikeys/v2/api_keys_client.cc index 94300e9d3da0d..f052e19b09473 100644 --- a/google/cloud/apikeys/v2/api_keys_client.cc +++ b/google/cloud/apikeys/v2/api_keys_client.cc @@ -43,12 +43,40 @@ future> ApiKeysClient::CreateKey( return connection_->CreateKey(request); } +StatusOr ApiKeysClient::CreateKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::api::apikeys::v2::Key const& key, + std::string const& key_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::api::apikeys::v2::CreateKeyRequest request; + request.set_parent(parent); + *request.mutable_key() = key; + request.set_key_id(key_id); + return connection_->CreateKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiKeysClient::CreateKey( google::api::apikeys::v2::CreateKeyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreateKey(request); } +StatusOr ApiKeysClient::CreateKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ApiKeysClient::CreateKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateKey(google::cloud::ExperimentalTag{}, operation); +} + StreamRange ApiKeysClient::ListKeys( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -103,12 +131,39 @@ future> ApiKeysClient::UpdateKey( return connection_->UpdateKey(request); } +StatusOr ApiKeysClient::UpdateKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::Key const& key, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::api::apikeys::v2::UpdateKeyRequest request; + *request.mutable_key() = key; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiKeysClient::UpdateKey( google::api::apikeys::v2::UpdateKeyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->UpdateKey(request); } +StatusOr ApiKeysClient::UpdateKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ApiKeysClient::UpdateKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateKey(google::cloud::ExperimentalTag{}, operation); +} + future> ApiKeysClient::DeleteKey( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -117,18 +172,58 @@ future> ApiKeysClient::DeleteKey( return connection_->DeleteKey(request); } +StatusOr ApiKeysClient::DeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::api::apikeys::v2::DeleteKeyRequest request; + request.set_name(name); + return connection_->DeleteKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ApiKeysClient::DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->DeleteKey(request); } +StatusOr ApiKeysClient::DeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ApiKeysClient::DeleteKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteKey(google::cloud::ExperimentalTag{}, operation); +} + future> ApiKeysClient::UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->UndeleteKey(request); } +StatusOr ApiKeysClient::UndeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ApiKeysClient::UndeleteKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteKey(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ApiKeysClient::LookupKey( google::api::apikeys::v2::LookupKeyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/apikeys/v2/api_keys_client.h b/google/cloud/apikeys/v2/api_keys_client.h index 5f7e09b9ff501..0b054ef9042a4 100644 --- a/google/cloud/apikeys/v2/api_keys_client.h +++ b/google/cloud/apikeys/v2/api_keys_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APIKEYS_V2_API_KEYS_CLIENT_H #include "google/cloud/apikeys/v2/api_keys_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -133,6 +135,11 @@ class ApiKeysClient { std::string const& parent, google::api::apikeys::v2::Key const& key, std::string const& key_id, Options opts = {}); + StatusOr CreateKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::api::apikeys::v2::Key const& key, + std::string const& key_id, Options opts = {}); + // clang-format off /// /// Creates a new API key. @@ -174,6 +181,15 @@ class ApiKeysClient { google::api::apikeys::v2::CreateKeyRequest const& request, Options opts = {}); + StatusOr CreateKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request, + Options opts = {}); + + future> CreateKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists the API keys owned by a project. The key string of the API key @@ -427,6 +443,11 @@ class ApiKeysClient { google::api::apikeys::v2::Key const& key, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::Key const& key, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Patches the modifiable fields of an API key. @@ -469,6 +490,15 @@ class ApiKeysClient { google::api::apikeys::v2::UpdateKeyRequest const& request, Options opts = {}); + StatusOr UpdateKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request, + Options opts = {}); + + future> UpdateKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an API key. Deleted key can be retrieved within 30 days of @@ -505,6 +535,10 @@ class ApiKeysClient { future> DeleteKey( std::string const& name, Options opts = {}); + StatusOr DeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an API key. Deleted key can be retrieved within 30 days of @@ -547,6 +581,15 @@ class ApiKeysClient { google::api::apikeys::v2::DeleteKeyRequest const& request, Options opts = {}); + StatusOr DeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request, + Options opts = {}); + + future> DeleteKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Undeletes an API key which was deleted within 30 days. @@ -588,6 +631,15 @@ class ApiKeysClient { google::api::apikeys::v2::UndeleteKeyRequest const& request, Options opts = {}); + StatusOr UndeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request, + Options opts = {}); + + future> UndeleteKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Find the parent project and resource name of the API 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..a50c8cea90d9f 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,56 @@ ApiKeysConnectionImpl::CreateKey( polling_policy(*current), __func__); } +StatusOr ApiKeysConnectionImpl::CreateKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +246,56 @@ ApiKeysConnectionImpl::UpdateKey( polling_policy(*current), __func__); } +StatusOr ApiKeysConnectionImpl::UpdateKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +334,56 @@ ApiKeysConnectionImpl::DeleteKey( polling_policy(*current), __func__); } +StatusOr ApiKeysConnectionImpl::DeleteKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +423,56 @@ ApiKeysConnectionImpl::UndeleteKey( polling_policy(*current), __func__); } +StatusOr ApiKeysConnectionImpl::UndeleteKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..d58e3546c85c5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request) override; + + future> CreateKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request) override; + + future> UpdateKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request) override; + StatusOr DeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request) override; + + future> DeleteKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request) override; + StatusOr UndeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request) override; + + future> UndeleteKey( + google::cloud::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..f54ac01a31b25 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,27 @@ ApiKeysTracingConnection::CreateKey( return internal::EndSpan(std::move(span), child_->CreateKey(request)); } +StatusOr ApiKeysTracingConnection::CreateKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiKeysTracingConnection::CreateKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ApiKeysTracingConnection::ListKeys( google::api::apikeys::v2::ListKeysRequest request) { auto span = internal::MakeSpan("apikeys_v2::ApiKeysConnection::ListKeys"); @@ -73,6 +94,27 @@ ApiKeysTracingConnection::UpdateKey( return internal::EndSpan(std::move(span), child_->UpdateKey(request)); } +StatusOr ApiKeysTracingConnection::UpdateKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiKeysTracingConnection::UpdateKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApiKeysTracingConnection::DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request) { @@ -81,6 +123,27 @@ ApiKeysTracingConnection::DeleteKey( return internal::EndSpan(std::move(span), child_->DeleteKey(request)); } +StatusOr ApiKeysTracingConnection::DeleteKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiKeysTracingConnection::DeleteKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApiKeysTracingConnection::UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request) { @@ -89,6 +152,27 @@ ApiKeysTracingConnection::UndeleteKey( return internal::EndSpan(std::move(span), child_->UndeleteKey(request)); } +StatusOr ApiKeysTracingConnection::UndeleteKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApiKeysTracingConnection::UndeleteKey( + google::cloud::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(google::cloud::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..7c18ff4c74e98 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request) override; + + future> CreateKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request) override; + + future> UpdateKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteKey( google::api::apikeys::v2::DeleteKeyRequest const& request) override; + StatusOr DeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request) override; + + future> DeleteKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteKey( google::api::apikeys::v2::UndeleteKeyRequest const& request) override; + StatusOr UndeleteKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request) override; + + future> UndeleteKey( + google::cloud::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..ed5e449665477 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::CreateKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateKey, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UpdateKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteKey, (google::api::apikeys::v2::DeleteKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::DeleteKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeleteKey, (google::api::apikeys::v2::UndeleteKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeleteKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::apikeys::v2::UndeleteKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, UndeleteKey, + (google::cloud::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_client.cc b/google/cloud/appengine/v1/applications_client.cc index 2aa3fda01e4c6..3311abb8068ba 100644 --- a/google/cloud/appengine/v1/applications_client.cc +++ b/google/cloud/appengine/v1/applications_client.cc @@ -54,6 +54,24 @@ ApplicationsClient::CreateApplication( return connection_->CreateApplication(request); } +StatusOr ApplicationsClient::CreateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApplicationsClient::CreateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateApplication(google::cloud::ExperimentalTag{}, + operation); +} + future> ApplicationsClient::UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request, @@ -62,6 +80,24 @@ ApplicationsClient::UpdateApplication( return connection_->UpdateApplication(request); } +StatusOr ApplicationsClient::UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApplicationsClient::UpdateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateApplication(google::cloud::ExperimentalTag{}, + operation); +} + future> ApplicationsClient::RepairApplication( google::appengine::v1::RepairApplicationRequest const& request, @@ -70,6 +106,24 @@ ApplicationsClient::RepairApplication( return connection_->RepairApplication(request); } +StatusOr ApplicationsClient::RepairApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RepairApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ApplicationsClient::RepairApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RepairApplication(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1 } // namespace cloud diff --git a/google/cloud/appengine/v1/applications_client.h b/google/cloud/appengine/v1/applications_client.h index 7d7ce39fb00a8..fe837d1d809aa 100644 --- a/google/cloud/appengine/v1/applications_client.h +++ b/google/cloud/appengine/v1/applications_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPENGINE_V1_APPLICATIONS_CLIENT_H #include "google/cloud/appengine/v1/applications_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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 ApplicationsClient { google::appengine::v1::CreateApplicationRequest const& request, Options opts = {}); + StatusOr CreateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request, + Options opts = {}); + + future> CreateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the specified Application resource. @@ -229,6 +240,15 @@ class ApplicationsClient { google::appengine::v1::UpdateApplicationRequest const& request, Options opts = {}); + StatusOr UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request, + Options opts = {}); + + future> UpdateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Recreates the required App Engine features for the specified App Engine @@ -276,6 +296,15 @@ class ApplicationsClient { google::appengine::v1::RepairApplicationRequest const& request, Options opts = {}); + StatusOr RepairApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request, + Options opts = {}); + + future> RepairApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/appengine/v1/authorized_certificates_client.h index ecc6774cce297..baaf090933761 100644 --- a/google/cloud/appengine/v1/authorized_certificates_client.h +++ b/google/cloud/appengine/v1/authorized_certificates_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPENGINE_V1_AUTHORIZED_CERTIFICATES_CLIENT_H #include "google/cloud/appengine/v1/authorized_certificates_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/appengine/v1/authorized_domains_client.h index 23745423a0ac6..7625b67e733c6 100644 --- a/google/cloud/appengine/v1/authorized_domains_client.h +++ b/google/cloud/appengine/v1/authorized_domains_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPENGINE_V1_AUTHORIZED_DOMAINS_CLIENT_H #include "google/cloud/appengine/v1/authorized_domains_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/appengine/v1/domain_mappings_client.cc index f5cfddbf203bb..f77e7d3dac56d 100644 --- a/google/cloud/appengine/v1/domain_mappings_client.cc +++ b/google/cloud/appengine/v1/domain_mappings_client.cc @@ -55,6 +55,25 @@ DomainMappingsClient::CreateDomainMapping( return connection_->CreateDomainMapping(request); } +StatusOr +DomainMappingsClient::CreateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDomainMapping(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DomainMappingsClient::CreateDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDomainMapping(google::cloud::ExperimentalTag{}, + operation); +} + future> DomainMappingsClient::UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request, @@ -63,6 +82,25 @@ DomainMappingsClient::UpdateDomainMapping( return connection_->UpdateDomainMapping(request); } +StatusOr +DomainMappingsClient::UpdateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDomainMapping(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DomainMappingsClient::UpdateDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDomainMapping(google::cloud::ExperimentalTag{}, + operation); +} + future> DomainMappingsClient::DeleteDomainMapping( google::appengine::v1::DeleteDomainMappingRequest const& request, @@ -71,6 +109,25 @@ DomainMappingsClient::DeleteDomainMapping( return connection_->DeleteDomainMapping(request); } +StatusOr +DomainMappingsClient::DeleteDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDomainMapping(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DomainMappingsClient::DeleteDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDomainMapping(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1 } // namespace cloud diff --git a/google/cloud/appengine/v1/domain_mappings_client.h b/google/cloud/appengine/v1/domain_mappings_client.h index ff8bb719b1a94..b0e7f93f6cb78 100644 --- a/google/cloud/appengine/v1/domain_mappings_client.h +++ b/google/cloud/appengine/v1/domain_mappings_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPENGINE_V1_DOMAIN_MAPPINGS_CLIENT_H #include "google/cloud/appengine/v1/domain_mappings_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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 DomainMappingsClient { google::appengine::v1::CreateDomainMappingRequest const& request, Options opts = {}); + StatusOr CreateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request, + Options opts = {}); + + future> CreateDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the specified domain mapping. To map an SSL certificate to a @@ -238,6 +249,15 @@ class DomainMappingsClient { google::appengine::v1::UpdateDomainMappingRequest const& request, Options opts = {}); + StatusOr UpdateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request, + Options opts = {}); + + future> UpdateDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes the specified domain mapping. A user must be authorized to @@ -279,6 +299,16 @@ class DomainMappingsClient { google::appengine::v1::DeleteDomainMappingRequest const& request, Options opts = {}); + StatusOr DeleteDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request, + Options opts = {}); + + future> + DeleteDomainMapping(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/appengine/v1/firewall_client.h index 7f637a3fa201b..14f2f8a0baca3 100644 --- a/google/cloud/appengine/v1/firewall_client.h +++ b/google/cloud/appengine/v1/firewall_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPENGINE_V1_FIREWALL_CLIENT_H #include "google/cloud/appengine/v1/firewall_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/appengine/v1/instances_client.cc index adbdd37b77df5..8791a4b041874 100644 --- a/google/cloud/appengine/v1/instances_client.cc +++ b/google/cloud/appengine/v1/instances_client.cc @@ -51,6 +51,23 @@ InstancesClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr InstancesClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::DebugInstance( google::appengine::v1::DebugInstanceRequest const& request, Options opts) { @@ -58,6 +75,23 @@ InstancesClient::DebugInstance( return connection_->DebugInstance(request); } +StatusOr InstancesClient::DebugInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DebugInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::DebugInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DebugInstance(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1 } // namespace cloud diff --git a/google/cloud/appengine/v1/instances_client.h b/google/cloud/appengine/v1/instances_client.h index ad3f1c12bf601..bf534ee9ade2d 100644 --- a/google/cloud/appengine/v1/instances_client.h +++ b/google/cloud/appengine/v1/instances_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPENGINE_V1_INSTANCES_CLIENT_H #include "google/cloud/appengine/v1/instances_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,15 @@ class InstancesClient { google::appengine::v1::DeleteInstanceRequest const& request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request, + Options opts = {}); + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Enables debugging on a VM instance. This allows you to use the SSH @@ -251,6 +262,15 @@ class InstancesClient { google::appengine::v1::DebugInstanceRequest const& request, Options opts = {}); + StatusOr DebugInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request, + Options opts = {}); + + future> DebugInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..43cb344a4720c 100644 --- a/google/cloud/appengine/v1/internal/applications_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/applications_connection_impl.cc @@ -116,6 +116,58 @@ ApplicationsConnectionImpl::CreateApplication( polling_policy(*current), __func__); } +StatusOr +ApplicationsConnectionImpl::CreateApplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +207,58 @@ ApplicationsConnectionImpl::UpdateApplication( polling_policy(*current), __func__); } +StatusOr +ApplicationsConnectionImpl::UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +298,58 @@ ApplicationsConnectionImpl::RepairApplication( polling_policy(*current), __func__); } +StatusOr +ApplicationsConnectionImpl::RepairApplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..d1f5b92b84082 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request) override; + + future> CreateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request) override; + StatusOr UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request) override; + + future> UpdateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RepairApplication( google::appengine::v1::RepairApplicationRequest const& request) override; + StatusOr RepairApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request) override; + + future> RepairApplication( + google::cloud::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..86ecbc8b40800 100644 --- a/google/cloud/appengine/v1/internal/applications_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/applications_tracing_connection.cc @@ -50,6 +50,30 @@ ApplicationsTracingConnection::CreateApplication( return internal::EndSpan(std::move(span), child_->CreateApplication(request)); } +StatusOr +ApplicationsTracingConnection::CreateApplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApplicationsTracingConnection::CreateApplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApplicationsTracingConnection::UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request) { @@ -59,6 +83,30 @@ ApplicationsTracingConnection::UpdateApplication( return internal::EndSpan(std::move(span), child_->UpdateApplication(request)); } +StatusOr +ApplicationsTracingConnection::UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApplicationsTracingConnection::UpdateApplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ApplicationsTracingConnection::RepairApplication( google::appengine::v1::RepairApplicationRequest const& request) { @@ -68,6 +116,30 @@ ApplicationsTracingConnection::RepairApplication( return internal::EndSpan(std::move(span), child_->RepairApplication(request)); } +StatusOr +ApplicationsTracingConnection::RepairApplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ApplicationsTracingConnection::RepairApplication( + google::cloud::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(google::cloud::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..b7876488de269 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request) override; + + future> CreateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateApplication( google::appengine::v1::UpdateApplicationRequest const& request) override; + StatusOr UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request) override; + + future> UpdateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RepairApplication( google::appengine::v1::RepairApplicationRequest const& request) override; + StatusOr RepairApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request) override; + + future> RepairApplication( + google::cloud::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..5a7326ebab960 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,58 @@ DomainMappingsConnectionImpl::CreateDomainMapping( polling_policy(*current), __func__); } +StatusOr +DomainMappingsConnectionImpl::CreateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +244,58 @@ DomainMappingsConnectionImpl::UpdateDomainMapping( polling_policy(*current), __func__); } +StatusOr +DomainMappingsConnectionImpl::UpdateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +335,59 @@ DomainMappingsConnectionImpl::DeleteDomainMapping( polling_policy(*current), __func__); } +StatusOr +DomainMappingsConnectionImpl::DeleteDomainMapping( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..69709821434e6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request) + override; + + future> CreateDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request) override; + StatusOr UpdateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request) + override; + + future> UpdateDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDomainMapping(google::appengine::v1::DeleteDomainMappingRequest const& request) override; + StatusOr DeleteDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request) + override; + + future> + DeleteDomainMapping(google::cloud::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..b0e7a1043c691 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,30 @@ DomainMappingsTracingConnection::CreateDomainMapping( child_->CreateDomainMapping(request)); } +StatusOr +DomainMappingsTracingConnection::CreateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainMappingsTracingConnection::CreateDomainMapping( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DomainMappingsTracingConnection::UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request) { @@ -73,6 +97,30 @@ DomainMappingsTracingConnection::UpdateDomainMapping( child_->UpdateDomainMapping(request)); } +StatusOr +DomainMappingsTracingConnection::UpdateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainMappingsTracingConnection::UpdateDomainMapping( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DomainMappingsTracingConnection::DeleteDomainMapping( google::appengine::v1::DeleteDomainMappingRequest const& request) { @@ -83,6 +131,30 @@ DomainMappingsTracingConnection::DeleteDomainMapping( child_->DeleteDomainMapping(request)); } +StatusOr +DomainMappingsTracingConnection::DeleteDomainMapping( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainMappingsTracingConnection::DeleteDomainMapping( + google::cloud::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(google::cloud::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..c96a7d949379d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request) + override; + + future> CreateDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDomainMapping( google::appengine::v1::UpdateDomainMappingRequest const& request) override; + StatusOr UpdateDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request) + override; + + future> UpdateDomainMapping( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDomainMapping(google::appengine::v1::DeleteDomainMappingRequest const& request) override; + StatusOr DeleteDomainMapping( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request) + override; + + future> + DeleteDomainMapping(google::cloud::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..5ded17966a0a1 100644 --- a/google/cloud/appengine/v1/internal/instances_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/instances_connection_impl.cc @@ -148,6 +148,59 @@ InstancesConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +InstancesConnectionImpl::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +240,57 @@ InstancesConnectionImpl::DebugInstance( polling_policy(*current), __func__); } +StatusOr InstancesConnectionImpl::DebugInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..36159a256745e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request) override; + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DebugInstance( google::appengine::v1::DebugInstanceRequest const& request) override; + StatusOr DebugInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request) override; + + future> DebugInstance( + google::cloud::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..30079472846d9 100644 --- a/google/cloud/appengine/v1/internal/instances_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/instances_tracing_connection.cc @@ -62,6 +62,30 @@ InstancesTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +InstancesTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::DebugInstance( google::appengine::v1::DebugInstanceRequest const& request) { @@ -71,6 +95,30 @@ InstancesTracingConnection::DebugInstance( return internal::EndSpan(std::move(span), child_->DebugInstance(request)); } +StatusOr +InstancesTracingConnection::DebugInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DebugInstance( + google::cloud::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(google::cloud::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..9d9251e9c12e3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request) override; + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DebugInstance( google::appengine::v1::DebugInstanceRequest const& request) override; + StatusOr DebugInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request) override; + + future> DebugInstance( + google::cloud::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..23d0f48d33455 100644 --- a/google/cloud/appengine/v1/internal/services_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/services_connection_impl.cc @@ -146,6 +146,57 @@ ServicesConnectionImpl::UpdateService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::UpdateService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +236,58 @@ ServicesConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..fc19ee6bc5782 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request) override; + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::appengine::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request) override; + + future> DeleteService( + google::cloud::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..a74cea8f97e73 100644 --- a/google/cloud/appengine/v1/internal/services_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/services_tracing_connection.cc @@ -61,6 +61,30 @@ ServicesTracingConnection::UpdateService( return internal::EndSpan(std::move(span), child_->UpdateService(request)); } +StatusOr +ServicesTracingConnection::UpdateService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::UpdateService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ServicesTracingConnection::DeleteService( google::appengine::v1::DeleteServiceRequest const& request) { @@ -70,6 +94,30 @@ ServicesTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr +ServicesTracingConnection::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::DeleteService( + google::cloud::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(google::cloud::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..e2f027332b299 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request) override; + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::appengine::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request) override; + + future> DeleteService( + google::cloud::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..38e4d918e9812 100644 --- a/google/cloud/appengine/v1/internal/versions_connection_impl.cc +++ b/google/cloud/appengine/v1/internal/versions_connection_impl.cc @@ -146,6 +146,57 @@ VersionsConnectionImpl::CreateVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::CreateVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +236,57 @@ VersionsConnectionImpl::UpdateVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::UpdateVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +326,58 @@ VersionsConnectionImpl::DeleteVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..14bfdfb39eb52 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request) override; + + future> CreateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request) override; + StatusOr UpdateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request) override; + + future> UpdateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVersion( google::appengine::v1::DeleteVersionRequest const& request) override; + StatusOr DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request) override; + + future> DeleteVersion( + google::cloud::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..160d635eb950c 100644 --- a/google/cloud/appengine/v1/internal/versions_tracing_connection.cc +++ b/google/cloud/appengine/v1/internal/versions_tracing_connection.cc @@ -61,6 +61,30 @@ VersionsTracingConnection::CreateVersion( return internal::EndSpan(std::move(span), child_->CreateVersion(request)); } +StatusOr +VersionsTracingConnection::CreateVersion( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::CreateVersion( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VersionsTracingConnection::UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request) { @@ -70,6 +94,30 @@ VersionsTracingConnection::UpdateVersion( return internal::EndSpan(std::move(span), child_->UpdateVersion(request)); } +StatusOr +VersionsTracingConnection::UpdateVersion( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::UpdateVersion( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VersionsTracingConnection::DeleteVersion( google::appengine::v1::DeleteVersionRequest const& request) { @@ -79,6 +127,30 @@ VersionsTracingConnection::DeleteVersion( return internal::EndSpan(std::move(span), child_->DeleteVersion(request)); } +StatusOr +VersionsTracingConnection::DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::DeleteVersion( + google::cloud::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(google::cloud::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..a7a270eef4c59 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request) override; + + future> CreateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request) override; + StatusOr UpdateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request) override; + + future> UpdateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVersion( google::appengine::v1::DeleteVersionRequest const& request) override; + StatusOr DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request) override; + + future> DeleteVersion( + google::cloud::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..b136fe4ee2700 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateApplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateApplication, (google::appengine::v1::UpdateApplicationRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateApplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateApplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RepairApplication, (google::appengine::v1::RepairApplicationRequest const& request), (override)); + + MOCK_METHOD(StatusOr, RepairApplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::RepairApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + RepairApplication, + (google::cloud::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..4cea5f92656a1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateDomainMappingRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDomainMapping, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDomainMapping, (google::appengine::v1::UpdateDomainMappingRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDomainMapping, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateDomainMappingRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDomainMapping, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDomainMapping, (google::appengine::v1::DeleteDomainMappingRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteDomainMapping, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteDomainMappingRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDomainMapping, + (google::cloud::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..f0b4e62426a7e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DebugInstance, (google::appengine::v1::DebugInstanceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DebugInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DebugInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, DebugInstance, + (google::cloud::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..6c778ac40510d 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteService, (google::appengine::v1::DeleteServiceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteService, + (google::cloud::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..0354af854e0d2 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateVersion, (google::appengine::v1::UpdateVersionRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteVersion, (google::appengine::v1::DeleteVersionRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/appengine/v1/services_client.cc b/google/cloud/appengine/v1/services_client.cc index e7326de80e85f..d45116042489a 100644 --- a/google/cloud/appengine/v1/services_client.cc +++ b/google/cloud/appengine/v1/services_client.cc @@ -50,6 +50,22 @@ future> ServicesClient::UpdateService( return connection_->UpdateService(request); } +StatusOr ServicesClient::UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ServicesClient::UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + operation); +} + future> ServicesClient::DeleteService( google::appengine::v1::DeleteServiceRequest const& request, Options opts) { @@ -57,6 +73,23 @@ ServicesClient::DeleteService( return connection_->DeleteService(request); } +StatusOr ServicesClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ServicesClient::DeleteService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1 } // namespace cloud diff --git a/google/cloud/appengine/v1/services_client.h b/google/cloud/appengine/v1/services_client.h index b5dd8368fb204..a8f8c1953500d 100644 --- a/google/cloud/appengine/v1/services_client.h +++ b/google/cloud/appengine/v1/services_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPENGINE_V1_SERVICES_CLIENT_H #include "google/cloud/appengine/v1/services_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,15 @@ class ServicesClient { google::appengine::v1::UpdateServiceRequest const& request, Options opts = {}); + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateServiceRequest const& request, + Options opts = {}); + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes the specified service and all enclosed versions. @@ -231,6 +242,15 @@ class ServicesClient { google::appengine::v1::DeleteServiceRequest const& request, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteServiceRequest const& request, + Options opts = {}); + + future> DeleteService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/appengine/v1/versions_client.cc index d8a9fd41b5a45..63e4fe6176897 100644 --- a/google/cloud/appengine/v1/versions_client.cc +++ b/google/cloud/appengine/v1/versions_client.cc @@ -50,12 +50,44 @@ future> VersionsClient::CreateVersion( return connection_->CreateVersion(request); } +StatusOr VersionsClient::CreateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> VersionsClient::CreateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVersion(google::cloud::ExperimentalTag{}, + operation); +} + future> VersionsClient::UpdateVersion( google::appengine::v1::UpdateVersionRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->UpdateVersion(request); } +StatusOr VersionsClient::UpdateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> VersionsClient::UpdateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVersion(google::cloud::ExperimentalTag{}, + operation); +} + future> VersionsClient::DeleteVersion( google::appengine::v1::DeleteVersionRequest const& request, Options opts) { @@ -63,6 +95,23 @@ VersionsClient::DeleteVersion( return connection_->DeleteVersion(request); } +StatusOr VersionsClient::DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VersionsClient::DeleteVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVersion(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace appengine_v1 } // namespace cloud diff --git a/google/cloud/appengine/v1/versions_client.h b/google/cloud/appengine/v1/versions_client.h index c5926fba18323..a57a1d312e332 100644 --- a/google/cloud/appengine/v1/versions_client.h +++ b/google/cloud/appengine/v1/versions_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPENGINE_V1_VERSIONS_CLIENT_H #include "google/cloud/appengine/v1/versions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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 VersionsClient { google::appengine::v1::CreateVersionRequest const& request, Options opts = {}); + StatusOr CreateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::CreateVersionRequest const& request, + Options opts = {}); + + future> CreateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the specified Version resource. @@ -268,6 +279,15 @@ class VersionsClient { google::appengine::v1::UpdateVersionRequest const& request, Options opts = {}); + StatusOr UpdateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::UpdateVersionRequest const& request, + Options opts = {}); + + future> UpdateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an existing Version resource. @@ -306,6 +326,15 @@ class VersionsClient { google::appengine::v1::DeleteVersionRequest const& request, Options opts = {}); + StatusOr DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::appengine::v1::DeleteVersionRequest const& request, + Options opts = {}); + + future> DeleteVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/apphub/v1/app_hub_client.cc index 9518e2a5f1578..ac56030c828f9 100644 --- a/google/cloud/apphub/v1/app_hub_client.cc +++ b/google/cloud/apphub/v1/app_hub_client.cc @@ -81,6 +81,22 @@ AppHubClient::CreateServiceProjectAttachment( return connection_->CreateServiceProjectAttachment(request); } +StatusOr +AppHubClient::CreateServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apphub::v1::ServiceProjectAttachment const& + service_project_attachment, + std::string const& service_project_attachment_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest request; + request.set_parent(parent); + *request.mutable_service_project_attachment() = service_project_attachment; + request.set_service_project_attachment_id(service_project_attachment_id); + return connection_->CreateServiceProjectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::CreateServiceProjectAttachment( google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& @@ -90,6 +106,26 @@ AppHubClient::CreateServiceProjectAttachment( return connection_->CreateServiceProjectAttachment(request); } +StatusOr +AppHubClient::CreateServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServiceProjectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::CreateServiceProjectAttachment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServiceProjectAttachment( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr AppHubClient::GetServiceProjectAttachment(std::string const& name, Options opts) { @@ -117,6 +153,18 @@ AppHubClient::DeleteServiceProjectAttachment(std::string const& name, return connection_->DeleteServiceProjectAttachment(request); } +StatusOr +AppHubClient::DeleteServiceProjectAttachment(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest request; + request.set_name(name); + return connection_->DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::DeleteServiceProjectAttachment( google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& @@ -126,6 +174,26 @@ AppHubClient::DeleteServiceProjectAttachment( return connection_->DeleteServiceProjectAttachment(request); } +StatusOr +AppHubClient::DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr AppHubClient::DetachServiceProjectAttachment(std::string const& name, Options opts) { @@ -220,6 +288,20 @@ AppHubClient::CreateService(std::string const& parent, return connection_->CreateService(request); } +StatusOr AppHubClient::CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apphub::v1::Service const& service, + std::string const& service_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::CreateServiceRequest request; + request.set_parent(parent); + *request.mutable_service() = service; + request.set_service_id(service_id); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::CreateService( google::cloud::apphub::v1::CreateServiceRequest const& request, @@ -228,6 +310,24 @@ AppHubClient::CreateService( return connection_->CreateService(request); } +StatusOr AppHubClient::CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::CreateService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AppHubClient::GetService( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -253,6 +353,18 @@ AppHubClient::UpdateService(google::cloud::apphub::v1::Service const& service, return connection_->UpdateService(request); } +StatusOr AppHubClient::UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::Service const& service, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::UpdateServiceRequest request; + *request.mutable_service() = service; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::UpdateService( google::cloud::apphub::v1::UpdateServiceRequest const& request, @@ -261,6 +373,24 @@ AppHubClient::UpdateService( return connection_->UpdateService(request); } +StatusOr AppHubClient::UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::UpdateService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + operation); +} + future> AppHubClient::DeleteService(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -269,6 +399,16 @@ AppHubClient::DeleteService(std::string const& name, Options opts) { return connection_->DeleteService(request); } +StatusOr AppHubClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::DeleteServiceRequest request; + request.set_name(name); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const& request, @@ -277,6 +417,24 @@ AppHubClient::DeleteService( return connection_->DeleteService(request); } +StatusOr AppHubClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::DeleteService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AppHubClient::ListDiscoveredWorkloads(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -354,6 +512,20 @@ AppHubClient::CreateWorkload( return connection_->CreateWorkload(request); } +StatusOr AppHubClient::CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apphub::v1::Workload const& workload, + std::string const& workload_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::CreateWorkloadRequest request; + request.set_parent(parent); + *request.mutable_workload() = workload; + request.set_workload_id(workload_id); + return connection_->CreateWorkload(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::CreateWorkload( google::cloud::apphub::v1::CreateWorkloadRequest const& request, @@ -362,6 +534,24 @@ AppHubClient::CreateWorkload( return connection_->CreateWorkload(request); } +StatusOr AppHubClient::CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkload(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::CreateWorkload(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkload(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AppHubClient::GetWorkload( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -388,6 +578,18 @@ AppHubClient::UpdateWorkload( return connection_->UpdateWorkload(request); } +StatusOr AppHubClient::UpdateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::Workload const& workload, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::UpdateWorkloadRequest request; + *request.mutable_workload() = workload; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateWorkload(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::UpdateWorkload( google::cloud::apphub::v1::UpdateWorkloadRequest const& request, @@ -396,6 +598,24 @@ AppHubClient::UpdateWorkload( return connection_->UpdateWorkload(request); } +StatusOr AppHubClient::UpdateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkload(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::UpdateWorkload(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkload(google::cloud::ExperimentalTag{}, + operation); +} + future> AppHubClient::DeleteWorkload(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -404,6 +624,16 @@ AppHubClient::DeleteWorkload(std::string const& name, Options opts) { return connection_->DeleteWorkload(request); } +StatusOr AppHubClient::DeleteWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::DeleteWorkloadRequest request; + request.set_name(name); + return connection_->DeleteWorkload(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request, @@ -412,6 +642,24 @@ AppHubClient::DeleteWorkload( return connection_->DeleteWorkload(request); } +StatusOr AppHubClient::DeleteWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkload(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::DeleteWorkload(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkload(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AppHubClient::ListApplications(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -440,6 +688,20 @@ AppHubClient::CreateApplication( return connection_->CreateApplication(request); } +StatusOr AppHubClient::CreateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apphub::v1::Application const& application, + std::string const& application_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::CreateApplicationRequest request; + request.set_parent(parent); + *request.mutable_application() = application; + request.set_application_id(application_id); + return connection_->CreateApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::CreateApplication( google::cloud::apphub::v1::CreateApplicationRequest const& request, @@ -448,6 +710,24 @@ AppHubClient::CreateApplication( return connection_->CreateApplication(request); } +StatusOr AppHubClient::CreateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::CreateApplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateApplication(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AppHubClient::GetApplication( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -474,6 +754,18 @@ AppHubClient::UpdateApplication( return connection_->UpdateApplication(request); } +StatusOr AppHubClient::UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::Application const& application, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::UpdateApplicationRequest request; + *request.mutable_application() = application; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::UpdateApplication( google::cloud::apphub::v1::UpdateApplicationRequest const& request, @@ -482,6 +774,24 @@ AppHubClient::UpdateApplication( return connection_->UpdateApplication(request); } +StatusOr AppHubClient::UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::UpdateApplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateApplication(google::cloud::ExperimentalTag{}, + operation); +} + future> AppHubClient::DeleteApplication(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -490,6 +800,16 @@ AppHubClient::DeleteApplication(std::string const& name, Options opts) { return connection_->DeleteApplication(request); } +StatusOr AppHubClient::DeleteApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::apphub::v1::DeleteApplicationRequest request; + request.set_name(name); + return connection_->DeleteApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppHubClient::DeleteApplication( google::cloud::apphub::v1::DeleteApplicationRequest const& request, @@ -498,6 +818,24 @@ AppHubClient::DeleteApplication( return connection_->DeleteApplication(request); } +StatusOr AppHubClient::DeleteApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteApplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppHubClient::DeleteApplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteApplication(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace apphub_v1 } // namespace cloud diff --git a/google/cloud/apphub/v1/app_hub_client.h b/google/cloud/apphub/v1/app_hub_client.h index 31d95466c882d..5bd66f5267c05 100644 --- a/google/cloud/apphub/v1/app_hub_client.h +++ b/google/cloud/apphub/v1/app_hub_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_APPHUB_V1_APP_HUB_CLIENT_H #include "google/cloud/apphub/v1/app_hub_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -265,6 +267,13 @@ class AppHubClient { service_project_attachment, std::string const& service_project_attachment_id, Options opts = {}); + StatusOr CreateServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apphub::v1::ServiceProjectAttachment const& + service_project_attachment, + std::string const& service_project_attachment_id, Options opts = {}); + // clang-format off /// /// Attaches a service project to the host project. @@ -305,6 +314,17 @@ class AppHubClient { request, Options opts = {}); + StatusOr CreateServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request, + Options opts = {}); + + future> + CreateServiceProjectAttachment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a service project attachment. @@ -399,6 +419,10 @@ class AppHubClient { future> DeleteServiceProjectAttachment(std::string const& name, Options opts = {}); + StatusOr DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a service project attachment. @@ -439,6 +463,17 @@ class AppHubClient { request, Options opts = {}); + StatusOr DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request, + Options opts = {}); + + future> + DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Detaches a service project from a host project. @@ -820,6 +855,12 @@ class AppHubClient { google::cloud::apphub::v1::Service const& service, std::string const& service_id, Options opts = {}); + StatusOr CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apphub::v1::Service const& service, + std::string const& service_id, Options opts = {}); + // clang-format off /// /// Creates a Service in an Application. @@ -858,6 +899,15 @@ class AppHubClient { google::cloud::apphub::v1::CreateServiceRequest const& request, Options opts = {}); + StatusOr CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request, + Options opts = {}); + + future> CreateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a Service in an Application. @@ -958,6 +1008,11 @@ class AppHubClient { google::cloud::apphub::v1::Service const& service, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::Service const& service, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a Service in an Application. @@ -996,6 +1051,15 @@ class AppHubClient { google::cloud::apphub::v1::UpdateServiceRequest const& request, Options opts = {}); + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request, + Options opts = {}); + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a Service from an Application. @@ -1030,6 +1094,10 @@ class AppHubClient { future> DeleteService( std::string const& name, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Service from an Application. @@ -1068,6 +1136,15 @@ class AppHubClient { google::cloud::apphub::v1::DeleteServiceRequest const& request, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request, + Options opts = {}); + + future> DeleteService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists Discovered Workloads that can be added to an Application in a host @@ -1385,6 +1462,12 @@ class AppHubClient { google::cloud::apphub::v1::Workload const& workload, std::string const& workload_id, Options opts = {}); + StatusOr CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apphub::v1::Workload const& workload, + std::string const& workload_id, Options opts = {}); + // clang-format off /// /// Creates a Workload in an Application. @@ -1423,6 +1506,15 @@ class AppHubClient { google::cloud::apphub::v1::CreateWorkloadRequest const& request, Options opts = {}); + StatusOr CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request, + Options opts = {}); + + future> CreateWorkload( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a Workload in an Application. @@ -1523,6 +1615,11 @@ class AppHubClient { google::cloud::apphub::v1::Workload const& workload, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::Workload const& workload, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a Workload in an Application. @@ -1561,6 +1658,15 @@ class AppHubClient { google::cloud::apphub::v1::UpdateWorkloadRequest const& request, Options opts = {}); + StatusOr UpdateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request, + Options opts = {}); + + future> UpdateWorkload( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a Workload from an Application. @@ -1595,6 +1701,10 @@ class AppHubClient { future> DeleteWorkload( std::string const& name, Options opts = {}); + StatusOr DeleteWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Workload from an Application. @@ -1633,6 +1743,15 @@ class AppHubClient { google::cloud::apphub::v1::DeleteWorkloadRequest const& request, Options opts = {}); + StatusOr DeleteWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request, + Options opts = {}); + + future> DeleteWorkload( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists Applications in a host project and location. @@ -1748,6 +1867,12 @@ class AppHubClient { google::cloud::apphub::v1::Application const& application, std::string const& application_id, Options opts = {}); + StatusOr CreateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::apphub::v1::Application const& application, + std::string const& application_id, Options opts = {}); + // clang-format off /// /// Creates an Application in a host project and location. @@ -1786,6 +1911,15 @@ class AppHubClient { google::cloud::apphub::v1::CreateApplicationRequest const& request, Options opts = {}); + StatusOr CreateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request, + Options opts = {}); + + future> CreateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets an Application in a host project and location. @@ -1886,6 +2020,11 @@ class AppHubClient { google::cloud::apphub::v1::Application const& application, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::Application const& application, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an Application in a host project and location. @@ -1924,6 +2063,15 @@ class AppHubClient { google::cloud::apphub::v1::UpdateApplicationRequest const& request, Options opts = {}); + StatusOr UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request, + Options opts = {}); + + future> UpdateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an Application in a host project and location. @@ -1958,6 +2106,10 @@ class AppHubClient { future> DeleteApplication(std::string const& name, Options opts = {}); + StatusOr DeleteApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an Application in a host project and location. @@ -1997,6 +2149,16 @@ class AppHubClient { google::cloud::apphub::v1::DeleteApplicationRequest const& request, Options opts = {}); + StatusOr DeleteApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request, + Options opts = {}); + + future> + DeleteApplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..39a213cdd909a 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,61 @@ AppHubConnectionImpl::CreateServiceProjectAttachment( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::CreateServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +269,61 @@ AppHubConnectionImpl::DeleteServiceProjectAttachment( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +479,57 @@ AppHubConnectionImpl::CreateService( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::CreateService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +582,57 @@ AppHubConnectionImpl::UpdateService( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::UpdateService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +672,58 @@ AppHubConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +863,57 @@ AppHubConnectionImpl::CreateWorkload( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +966,57 @@ AppHubConnectionImpl::UpdateWorkload( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::UpdateWorkload( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1056,58 @@ AppHubConnectionImpl::DeleteWorkload( polling_policy(*current), __func__); } +StatusOr AppHubConnectionImpl::DeleteWorkload( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1181,59 @@ AppHubConnectionImpl::CreateApplication( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::CreateApplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1287,59 @@ AppHubConnectionImpl::UpdateApplication( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1379,60 @@ AppHubConnectionImpl::DeleteApplication( polling_policy(*current), __func__); } +StatusOr +AppHubConnectionImpl::DeleteApplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..983c5e867fb77 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request) override; + + future> + CreateServiceProjectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request) override; + + future> + DeleteServiceProjectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request) override; + + future> CreateService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request) override; + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request) override; + + future> DeleteService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request) override; + + future> CreateWorkload( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request) override; + + future> UpdateWorkload( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request) override; + StatusOr DeleteWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request) override; + + future> DeleteWorkload( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request) + override; + + future> CreateApplication( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request) + override; + + future> UpdateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApplication(google::cloud::apphub::v1::DeleteApplicationRequest const& request) override; + StatusOr DeleteApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request) + override; + + future> + DeleteApplication(google::cloud::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..ce004f88a7df3 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,31 @@ AppHubTracingConnection::CreateServiceProjectAttachment( child_->CreateServiceProjectAttachment(request)); } +StatusOr +AppHubTracingConnection::CreateServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::CreateServiceProjectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::GetServiceProjectAttachment( google::cloud::apphub::v1::GetServiceProjectAttachmentRequest const& @@ -88,6 +113,31 @@ AppHubTracingConnection::DeleteServiceProjectAttachment( child_->DeleteServiceProjectAttachment(request)); } +StatusOr +AppHubTracingConnection::DeleteServiceProjectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::DeleteServiceProjectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::DetachServiceProjectAttachment( google::cloud::apphub::v1::DetachServiceProjectAttachmentRequest const& @@ -147,6 +197,27 @@ AppHubTracingConnection::CreateService( return internal::EndSpan(std::move(span), child_->CreateService(request)); } +StatusOr AppHubTracingConnection::CreateService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::CreateService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::GetService( google::cloud::apphub::v1::GetServiceRequest const& request) { @@ -163,6 +234,27 @@ AppHubTracingConnection::UpdateService( return internal::EndSpan(std::move(span), child_->UpdateService(request)); } +StatusOr AppHubTracingConnection::UpdateService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::UpdateService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppHubTracingConnection::DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const& request) { @@ -171,6 +263,27 @@ AppHubTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr AppHubTracingConnection::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::DeleteService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AppHubTracingConnection::ListDiscoveredWorkloads( google::cloud::apphub::v1::ListDiscoveredWorkloadsRequest request) { @@ -219,6 +332,28 @@ AppHubTracingConnection::CreateWorkload( return internal::EndSpan(std::move(span), child_->CreateWorkload(request)); } +StatusOr +AppHubTracingConnection::CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::CreateWorkload( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::GetWorkload( google::cloud::apphub::v1::GetWorkloadRequest const& request) { @@ -235,6 +370,28 @@ AppHubTracingConnection::UpdateWorkload( return internal::EndSpan(std::move(span), child_->UpdateWorkload(request)); } +StatusOr +AppHubTracingConnection::UpdateWorkload( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::UpdateWorkload( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppHubTracingConnection::DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request) { @@ -243,6 +400,28 @@ AppHubTracingConnection::DeleteWorkload( return internal::EndSpan(std::move(span), child_->DeleteWorkload(request)); } +StatusOr +AppHubTracingConnection::DeleteWorkload( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::DeleteWorkload( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AppHubTracingConnection::ListApplications( google::cloud::apphub::v1::ListApplicationsRequest request) { @@ -263,6 +442,30 @@ AppHubTracingConnection::CreateApplication( return internal::EndSpan(std::move(span), child_->CreateApplication(request)); } +StatusOr +AppHubTracingConnection::CreateApplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::CreateApplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AppHubTracingConnection::GetApplication( google::cloud::apphub::v1::GetApplicationRequest const& request) { @@ -280,6 +483,30 @@ AppHubTracingConnection::UpdateApplication( return internal::EndSpan(std::move(span), child_->UpdateApplication(request)); } +StatusOr +AppHubTracingConnection::UpdateApplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::UpdateApplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppHubTracingConnection::DeleteApplication( google::cloud::apphub::v1::DeleteApplicationRequest const& request) { @@ -289,6 +516,30 @@ AppHubTracingConnection::DeleteApplication( return internal::EndSpan(std::move(span), child_->DeleteApplication(request)); } +StatusOr +AppHubTracingConnection::DeleteApplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppHubTracingConnection::DeleteApplication( + google::cloud::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(google::cloud::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..0ba54a1b4105e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request) override; + + future> + CreateServiceProjectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request) override; + + future> + DeleteServiceProjectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request) override; + + future> CreateService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request) override; + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::cloud::apphub::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request) override; + + future> DeleteService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request) override; + + future> CreateWorkload( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request) override; + + future> UpdateWorkload( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkload( google::cloud::apphub::v1::DeleteWorkloadRequest const& request) override; + StatusOr DeleteWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request) override; + + future> DeleteWorkload( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request) + override; + + future> CreateApplication( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request) + override; + + future> UpdateApplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteApplication(google::cloud::apphub::v1::DeleteApplicationRequest const& request) override; + StatusOr DeleteApplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request) + override; + + future> + DeleteApplication(google::cloud::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..4723e95620178 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,20 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateServiceProjectAttachment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceProjectAttachmentRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateServiceProjectAttachment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetServiceProjectAttachment, @@ -81,6 +95,19 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteServiceProjectAttachment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceProjectAttachmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteServiceProjectAttachment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::apphub::v1::DetachServiceProjectAttachmentResponse>, @@ -117,6 +144,17 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::CreateServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetService, (google::cloud::apphub::v1::GetServiceRequest const& request), (override)); @@ -126,11 +164,33 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::UpdateServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteService, (google::cloud::apphub::v1::DeleteServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDiscoveredWorkloads, @@ -159,6 +219,17 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::CreateWorkloadRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateWorkload, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateWorkloadRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateWorkload, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetWorkload, (google::cloud::apphub::v1::GetWorkloadRequest const& request), (override)); @@ -168,11 +239,33 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::UpdateWorkloadRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateWorkload, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateWorkloadRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateWorkload, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteWorkload, (google::cloud::apphub::v1::DeleteWorkloadRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteWorkload, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteWorkloadRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteWorkload, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListApplications, (google::cloud::apphub::v1::ListApplicationsRequest request), @@ -184,6 +277,18 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::CreateApplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateApplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::CreateApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateApplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetApplication, (google::cloud::apphub::v1::GetApplicationRequest const& request), (override)); @@ -194,11 +299,35 @@ class MockAppHubConnection : public apphub_v1::AppHubConnection { (google::cloud::apphub::v1::UpdateApplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateApplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::UpdateApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateApplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteApplication, (google::cloud::apphub::v1::DeleteApplicationRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteApplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::apphub::v1::DeleteApplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteApplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/artifactregistry/v1/artifact_registry_client.cc b/google/cloud/artifactregistry/v1/artifact_registry_client.cc index 7b71a718159de..2b29b2b81f207 100644 --- a/google/cloud/artifactregistry/v1/artifact_registry_client.cc +++ b/google/cloud/artifactregistry/v1/artifact_registry_client.cc @@ -179,6 +179,27 @@ ArtifactRegistryClient::ImportAptArtifacts( return connection_->ImportAptArtifacts(request); } +StatusOr +ArtifactRegistryClient::ImportAptArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportAptArtifacts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ArtifactRegistryClient::ImportAptArtifacts( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportAptArtifacts(google::cloud::ExperimentalTag{}, + operation); +} + future> ArtifactRegistryClient::ImportYumArtifacts( @@ -189,6 +210,27 @@ ArtifactRegistryClient::ImportYumArtifacts( return connection_->ImportYumArtifacts(request); } +StatusOr +ArtifactRegistryClient::ImportYumArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportYumArtifacts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ArtifactRegistryClient::ImportYumArtifacts( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportYumArtifacts(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ArtifactRegistryClient::ListRepositories(std::string const& parent, Options opts) { @@ -235,6 +277,21 @@ ArtifactRegistryClient::CreateRepository( return connection_->CreateRepository(request); } +StatusOr +ArtifactRegistryClient::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::devtools::artifactregistry::v1::Repository const& repository, + std::string const& repository_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::artifactregistry::v1::CreateRepositoryRequest request; + request.set_parent(parent); + *request.mutable_repository() = repository; + request.set_repository_id(repository_id); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ArtifactRegistryClient::CreateRepository( google::devtools::artifactregistry::v1::CreateRepositoryRequest const& @@ -244,6 +301,26 @@ ArtifactRegistryClient::CreateRepository( return connection_->CreateRepository(request); } +StatusOr +ArtifactRegistryClient::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ArtifactRegistryClient::CreateRepository( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ArtifactRegistryClient::UpdateRepository( google::devtools::artifactregistry::v1::Repository const& repository, @@ -273,6 +350,18 @@ ArtifactRegistryClient::DeleteRepository(std::string const& name, return connection_->DeleteRepository(request); } +StatusOr +ArtifactRegistryClient::DeleteRepository(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::artifactregistry::v1::DeleteRepositoryRequest request; + request.set_name(name); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ArtifactRegistryClient::DeleteRepository( google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& @@ -282,6 +371,26 @@ ArtifactRegistryClient::DeleteRepository( return connection_->DeleteRepository(request); } +StatusOr +ArtifactRegistryClient::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ArtifactRegistryClient::DeleteRepository( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ArtifactRegistryClient::ListPackages(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -322,6 +431,16 @@ ArtifactRegistryClient::DeletePackage(std::string const& name, Options opts) { return connection_->DeletePackage(request); } +StatusOr ArtifactRegistryClient::DeletePackage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::artifactregistry::v1::DeletePackageRequest request; + request.set_name(name); + return connection_->DeletePackage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ArtifactRegistryClient::DeletePackage( google::devtools::artifactregistry::v1::DeletePackageRequest const& request, @@ -330,6 +449,24 @@ ArtifactRegistryClient::DeletePackage( return connection_->DeletePackage(request); } +StatusOr ArtifactRegistryClient::DeletePackage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePackage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ArtifactRegistryClient::DeletePackage( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePackage(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ArtifactRegistryClient::ListVersions(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -370,6 +507,16 @@ ArtifactRegistryClient::DeleteVersion(std::string const& name, Options opts) { return connection_->DeleteVersion(request); } +StatusOr ArtifactRegistryClient::DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::artifactregistry::v1::DeleteVersionRequest request; + request.set_name(name); + return connection_->DeleteVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ArtifactRegistryClient::DeleteVersion( google::devtools::artifactregistry::v1::DeleteVersionRequest const& request, @@ -378,6 +525,24 @@ ArtifactRegistryClient::DeleteVersion( return connection_->DeleteVersion(request); } +StatusOr ArtifactRegistryClient::DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ArtifactRegistryClient::DeleteVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVersion(google::cloud::ExperimentalTag{}, + operation); +} + future> ArtifactRegistryClient::BatchDeleteVersions( @@ -390,6 +555,19 @@ ArtifactRegistryClient::BatchDeleteVersions( return connection_->BatchDeleteVersions(request); } +StatusOr +ArtifactRegistryClient::BatchDeleteVersions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& names, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest request; + request.set_parent(parent); + *request.mutable_names() = {names.begin(), names.end()}; + return connection_->BatchDeleteVersions(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ArtifactRegistryClient::BatchDeleteVersions( @@ -400,6 +578,27 @@ ArtifactRegistryClient::BatchDeleteVersions( return connection_->BatchDeleteVersions(request); } +StatusOr +ArtifactRegistryClient::BatchDeleteVersions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteVersions(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ArtifactRegistryClient::BatchDeleteVersions( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteVersions(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ArtifactRegistryClient::ListFiles(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/artifactregistry/v1/artifact_registry_client.h b/google/cloud/artifactregistry/v1/artifact_registry_client.h index 2043a41b7b693..7e56100dd769a 100644 --- a/google/cloud/artifactregistry/v1/artifact_registry_client.h +++ b/google/cloud/artifactregistry/v1/artifact_registry_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ARTIFACTREGISTRY_V1_ARTIFACT_REGISTRY_CLIENT_H #include "google/cloud/artifactregistry/v1/artifact_registry_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -678,6 +680,18 @@ class ArtifactRegistryClient { request, Options opts = {}); + StatusOr ImportAptArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request, + Options opts = {}); + + future> + ImportAptArtifacts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports Yum (RPM) artifacts. The returned Operation will complete once the @@ -722,6 +736,18 @@ class ArtifactRegistryClient { request, Options opts = {}); + StatusOr ImportYumArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request, + Options opts = {}); + + future> + ImportYumArtifacts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists repositories. @@ -894,6 +920,12 @@ class ArtifactRegistryClient { google::devtools::artifactregistry::v1::Repository const& repository, std::string const& repository_id, Options opts = {}); + StatusOr CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::devtools::artifactregistry::v1::Repository const& repository, + std::string const& repository_id, Options opts = {}); + // clang-format off /// /// Creates a repository. The returned Operation will finish once the @@ -935,6 +967,17 @@ class ArtifactRegistryClient { request, Options opts = {}); + StatusOr CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request, + Options opts = {}); + + future> + CreateRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a repository. @@ -1030,6 +1073,10 @@ class ArtifactRegistryClient { future> DeleteRepository(std::string const& name, Options opts = {}); + StatusOr DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a repository and all of its contents. The returned Operation will @@ -1072,6 +1119,17 @@ class ArtifactRegistryClient { request, Options opts = {}); + StatusOr DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request, + Options opts = {}); + + future> + DeleteRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists packages. @@ -1235,6 +1293,10 @@ class ArtifactRegistryClient { future> DeletePackage(std::string const& name, Options opts = {}); + StatusOr DeletePackage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a package and all of its versions and tags. The returned operation @@ -1276,6 +1338,17 @@ class ArtifactRegistryClient { request, Options opts = {}); + StatusOr DeletePackage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request, + Options opts = {}); + + future> + DeletePackage(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists versions. @@ -1439,6 +1512,10 @@ class ArtifactRegistryClient { future> DeleteVersion(std::string const& name, Options opts = {}); + StatusOr DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a version and all of its content. The returned operation will @@ -1480,6 +1557,17 @@ class ArtifactRegistryClient { request, Options opts = {}); + StatusOr DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request, + Options opts = {}); + + future> + DeleteVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes multiple versions across a repository. The returned operation will @@ -1517,6 +1605,11 @@ class ArtifactRegistryClient { BatchDeleteVersions(std::string const& parent, std::vector const& names, Options opts = {}); + StatusOr BatchDeleteVersions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& names, + Options opts = {}); + // clang-format off /// /// Deletes multiple versions across a repository. The returned operation will @@ -1559,6 +1652,18 @@ class ArtifactRegistryClient { request, Options opts = {}); + StatusOr BatchDeleteVersions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request, + Options opts = {}); + + future> + BatchDeleteVersions(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists files. 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..c2652fd35fe1e 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,63 @@ ArtifactRegistryConnectionImpl::ImportAptArtifacts( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::ImportAptArtifacts( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +419,63 @@ ArtifactRegistryConnectionImpl::ImportYumArtifacts( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::ImportYumArtifacts( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +569,63 @@ ArtifactRegistryConnectionImpl::CreateRepository( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +684,63 @@ ArtifactRegistryConnectionImpl::DeleteRepository( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +833,62 @@ ArtifactRegistryConnectionImpl::DeletePackage( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::DeletePackage( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +981,62 @@ ArtifactRegistryConnectionImpl::DeleteVersion( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1078,63 @@ ArtifactRegistryConnectionImpl::BatchDeleteVersions( polling_policy(*current), __func__); } +StatusOr +ArtifactRegistryConnectionImpl::BatchDeleteVersions( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..4cf7b3b5b1a14 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request) override; + + future> + ImportAptArtifacts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportYumArtifacts( google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& request) override; + StatusOr ImportYumArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request) override; + + future> + ImportYumArtifacts(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request) override; + + future> + CreateRepository(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request) override; + + future> + DeleteRepository(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request) override; + + future> + DeletePackage(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request) override; + + future> + DeleteVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteVersions( google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& request) override; + StatusOr BatchDeleteVersions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request) override; + + future> + BatchDeleteVersions(google::cloud::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..6a85fc69f5d55 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,32 @@ ArtifactRegistryTracingConnection::ImportAptArtifacts( child_->ImportAptArtifacts(request)); } +StatusOr +ArtifactRegistryTracingConnection::ImportAptArtifacts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::ImportAptArtifacts( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ArtifactRegistryTracingConnection::ImportYumArtifacts( @@ -145,6 +171,32 @@ ArtifactRegistryTracingConnection::ImportYumArtifacts( child_->ImportYumArtifacts(request)); } +StatusOr +ArtifactRegistryTracingConnection::ImportYumArtifacts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::ImportYumArtifacts( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ArtifactRegistryTracingConnection::ListRepositories( google::devtools::artifactregistry::v1::ListRepositoriesRequest request) { @@ -177,6 +229,31 @@ ArtifactRegistryTracingConnection::CreateRepository( return internal::EndSpan(std::move(span), child_->CreateRepository(request)); } +StatusOr +ArtifactRegistryTracingConnection::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::CreateRepository( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ArtifactRegistryTracingConnection::UpdateRepository( google::devtools::artifactregistry::v1::UpdateRepositoryRequest const& @@ -197,6 +274,31 @@ ArtifactRegistryTracingConnection::DeleteRepository( return internal::EndSpan(std::move(span), child_->DeleteRepository(request)); } +StatusOr +ArtifactRegistryTracingConnection::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::DeleteRepository( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ArtifactRegistryTracingConnection::ListPackages( google::devtools::artifactregistry::v1::ListPackagesRequest request) { @@ -228,6 +330,31 @@ ArtifactRegistryTracingConnection::DeletePackage( return internal::EndSpan(std::move(span), child_->DeletePackage(request)); } +StatusOr +ArtifactRegistryTracingConnection::DeletePackage( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::DeletePackage( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ArtifactRegistryTracingConnection::ListVersions( google::devtools::artifactregistry::v1::ListVersionsRequest request) { @@ -259,6 +386,31 @@ ArtifactRegistryTracingConnection::DeleteVersion( return internal::EndSpan(std::move(span), child_->DeleteVersion(request)); } +StatusOr +ArtifactRegistryTracingConnection::DeleteVersion( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::DeleteVersion( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ArtifactRegistryTracingConnection::BatchDeleteVersions( @@ -271,6 +423,32 @@ ArtifactRegistryTracingConnection::BatchDeleteVersions( child_->BatchDeleteVersions(request)); } +StatusOr +ArtifactRegistryTracingConnection::BatchDeleteVersions( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ArtifactRegistryTracingConnection::BatchDeleteVersions( + google::cloud::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(google::cloud::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..838da540df6d0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request) override; + + future> + ImportAptArtifacts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportYumArtifacts( google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& request) override; + StatusOr ImportYumArtifacts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request) override; + + future> + ImportYumArtifacts(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request) override; + + future> + CreateRepository(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request) override; + + future> + DeleteRepository(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request) override; + + future> + DeletePackage(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request) override; + + future> + DeleteVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteVersions( google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& request) override; + StatusOr BatchDeleteVersions( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request) override; + + future> + BatchDeleteVersions(google::cloud::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..c7689a7648310 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,21 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, ImportAptArtifacts, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportAptArtifactsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportAptArtifacts, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -117,6 +132,21 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, ImportYumArtifacts, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::ImportYumArtifactsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportYumArtifacts, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRepositories, @@ -137,6 +167,20 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateRepository, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::CreateRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateRepository, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, UpdateRepository, @@ -152,6 +196,21 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteRepository, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteRepository, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListPackages, @@ -172,6 +231,21 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePackage, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeletePackageRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeletePackage, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListVersions, @@ -192,6 +266,21 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::DeleteVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -200,6 +289,21 @@ class MockArtifactRegistryConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchDeleteVersions, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::artifactregistry::v1::BatchDeleteVersionsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchDeleteVersions, + (google::cloud::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_client.cc b/google/cloud/asset/v1/asset_client.cc index 0ec9fc8dbfd76..e77f90ce166b5 100644 --- a/google/cloud/asset/v1/asset_client.cc +++ b/google/cloud/asset/v1/asset_client.cc @@ -40,6 +40,23 @@ AssetServiceClient::ExportAssets( return connection_->ExportAssets(request); } +StatusOr AssetServiceClient::ExportAssets( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportAssets(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AssetServiceClient::ExportAssets( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportAssets(google::cloud::ExperimentalTag{}, operation); +} + StreamRange AssetServiceClient::ListAssets( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -186,6 +203,25 @@ AssetServiceClient::AnalyzeIamPolicyLongrunning( return connection_->AnalyzeIamPolicyLongrunning(request); } +StatusOr +AssetServiceClient::AnalyzeIamPolicyLongrunning( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AnalyzeIamPolicyLongrunning( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AssetServiceClient::AnalyzeIamPolicyLongrunning( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AnalyzeIamPolicyLongrunning( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr AssetServiceClient::AnalyzeMove( google::cloud::asset::v1::AnalyzeMoveRequest const& request, Options opts) { diff --git a/google/cloud/asset/v1/asset_client.h b/google/cloud/asset/v1/asset_client.h index 62f7ba50b5e7f..826349c7c7407 100644 --- a/google/cloud/asset/v1/asset_client.h +++ b/google/cloud/asset/v1/asset_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ASSET_V1_ASSET_CLIENT_H #include "google/cloud/asset/v1/asset_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -137,6 +139,15 @@ class AssetServiceClient { google::cloud::asset::v1::ExportAssetsRequest const& request, Options opts = {}); + StatusOr ExportAssets( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request, + Options opts = {}); + + future> ExportAssets( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists assets with time and resource types and returns paged results in @@ -846,6 +857,18 @@ class AssetServiceClient { request, Options opts = {}); + StatusOr AnalyzeIamPolicyLongrunning( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request, + Options opts = {}); + + future< + StatusOr> + AnalyzeIamPolicyLongrunning(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Analyze moving a resource to a specified destination without kicking off 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..5acfb7b2df06d 100644 --- a/google/cloud/asset/v1/internal/asset_connection_impl.cc +++ b/google/cloud/asset/v1/internal/asset_connection_impl.cc @@ -101,6 +101,59 @@ AssetServiceConnectionImpl::ExportAssets( polling_policy(*current), __func__); } +StatusOr +AssetServiceConnectionImpl::ExportAssets( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +391,62 @@ AssetServiceConnectionImpl::AnalyzeIamPolicyLongrunning( polling_policy(*current), __func__); } +StatusOr +AssetServiceConnectionImpl::AnalyzeIamPolicyLongrunning( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..adbe47ce71fec 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request) override; + + future> ExportAssets( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request) override; + + future< + StatusOr> + AnalyzeIamPolicyLongrunning( + google::cloud::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..e162af438b9a8 100644 --- a/google/cloud/asset/v1/internal/asset_tracing_connection.cc +++ b/google/cloud/asset/v1/internal/asset_tracing_connection.cc @@ -42,6 +42,30 @@ AssetServiceTracingConnection::ExportAssets( return internal::EndSpan(std::move(span), child_->ExportAssets(request)); } +StatusOr +AssetServiceTracingConnection::ExportAssets( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AssetServiceTracingConnection::ExportAssets( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AssetServiceTracingConnection::ListAssets( google::cloud::asset::v1::ListAssetsRequest request) { @@ -147,6 +171,31 @@ AssetServiceTracingConnection::AnalyzeIamPolicyLongrunning( child_->AnalyzeIamPolicyLongrunning(request)); } +StatusOr +AssetServiceTracingConnection::AnalyzeIamPolicyLongrunning( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AssetServiceTracingConnection::AnalyzeIamPolicyLongrunning( + google::cloud::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( + google::cloud::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..dca13627d5647 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request) override; + + future> ExportAssets( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request) override; + + future< + StatusOr> + AnalyzeIamPolicyLongrunning( + google::cloud::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..c883869877a5c 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::ExportAssetsRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportAssets, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListAssets, (google::cloud::asset::v1::ListAssetsRequest request), (override)); @@ -105,6 +116,21 @@ class MockAssetServiceConnection : public asset_v1::AssetServiceConnection { request), (override)); + MOCK_METHOD( + StatusOr, AnalyzeIamPolicyLongrunning, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::asset::v1::AnalyzeIamPolicyLongrunningRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + AnalyzeIamPolicyLongrunning, + (google::cloud::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_client.cc b/google/cloud/assuredworkloads/v1/assured_workloads_client.cc index bdeb9b17bfb43..416dcb03fc489 100644 --- a/google/cloud/assuredworkloads/v1/assured_workloads_client.cc +++ b/google/cloud/assuredworkloads/v1/assured_workloads_client.cc @@ -44,6 +44,20 @@ AssuredWorkloadsServiceClient::CreateWorkload( return connection_->CreateWorkload(request); } +StatusOr +AssuredWorkloadsServiceClient::CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::assuredworkloads::v1::Workload const& workload, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::assuredworkloads::v1::CreateWorkloadRequest request; + request.set_parent(parent); + *request.mutable_workload() = workload; + return connection_->CreateWorkload(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AssuredWorkloadsServiceClient::CreateWorkload( google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request, @@ -52,6 +66,25 @@ AssuredWorkloadsServiceClient::CreateWorkload( return connection_->CreateWorkload(request); } +StatusOr +AssuredWorkloadsServiceClient::CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkload(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AssuredWorkloadsServiceClient::CreateWorkload( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkload(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AssuredWorkloadsServiceClient::UpdateWorkload( google::cloud::assuredworkloads::v1::Workload const& workload, diff --git a/google/cloud/assuredworkloads/v1/assured_workloads_client.h b/google/cloud/assuredworkloads/v1/assured_workloads_client.h index 37a55c18f145e..bfc650279262a 100644 --- a/google/cloud/assuredworkloads/v1/assured_workloads_client.h +++ b/google/cloud/assuredworkloads/v1/assured_workloads_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ASSUREDWORKLOADS_V1_ASSURED_WORKLOADS_CLIENT_H #include "google/cloud/assuredworkloads/v1/assured_workloads_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,12 @@ class AssuredWorkloadsServiceClient { google::cloud::assuredworkloads::v1::Workload const& workload, Options opts = {}); + StatusOr CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::assuredworkloads::v1::Workload const& workload, + Options opts = {}); + // clang-format off /// /// Creates Assured Workload. @@ -165,6 +173,16 @@ class AssuredWorkloadsServiceClient { google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request, Options opts = {}); + StatusOr CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request, + Options opts = {}); + + future> + CreateWorkload(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an existing workload. 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..8c87b963ad2e6 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,61 @@ AssuredWorkloadsServiceConnectionImpl::CreateWorkload( polling_policy(*current), __func__); } +StatusOr +AssuredWorkloadsServiceConnectionImpl::CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..e9715fcb37dcc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request) + override; + + future> + CreateWorkload(google::cloud::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..76329f445ab87 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,30 @@ AssuredWorkloadsServiceTracingConnection::CreateWorkload( return internal::EndSpan(std::move(span), child_->CreateWorkload(request)); } +StatusOr +AssuredWorkloadsServiceTracingConnection::CreateWorkload( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AssuredWorkloadsServiceTracingConnection::CreateWorkload( + google::cloud::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(google::cloud::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..59a1a72560a74 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& request) + override; + + future> + CreateWorkload(google::cloud::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..a7d51e5cffcd9 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::assuredworkloads::v1::CreateWorkloadRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateWorkload, + (google::cloud::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_client.cc b/google/cloud/automl/v1/auto_ml_client.cc index 54b143919a1a0..96fe342300244 100644 --- a/google/cloud/automl/v1/auto_ml_client.cc +++ b/google/cloud/automl/v1/auto_ml_client.cc @@ -43,6 +43,18 @@ AutoMlClient::CreateDataset(std::string const& parent, return connection_->CreateDataset(request); } +StatusOr AutoMlClient::CreateDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::automl::v1::Dataset const& dataset, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::CreateDatasetRequest request; + request.set_parent(parent); + *request.mutable_dataset() = dataset; + return connection_->CreateDataset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::CreateDataset( google::cloud::automl::v1::CreateDatasetRequest const& request, @@ -51,6 +63,24 @@ AutoMlClient::CreateDataset( return connection_->CreateDataset(request); } +StatusOr AutoMlClient::CreateDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoMlClient::CreateDataset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataset(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AutoMlClient::GetDataset( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -104,6 +134,16 @@ AutoMlClient::DeleteDataset(std::string const& name, Options opts) { return connection_->DeleteDataset(request); } +StatusOr AutoMlClient::DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::DeleteDatasetRequest request; + request.set_name(name); + return connection_->DeleteDataset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::DeleteDataset( google::cloud::automl::v1::DeleteDatasetRequest const& request, @@ -112,6 +152,24 @@ AutoMlClient::DeleteDataset( return connection_->DeleteDataset(request); } +StatusOr AutoMlClient::DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoMlClient::DeleteDataset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataset(google::cloud::ExperimentalTag{}, + operation); +} + future> AutoMlClient::ImportData( std::string const& name, @@ -123,6 +181,18 @@ AutoMlClient::ImportData( return connection_->ImportData(request); } +StatusOr AutoMlClient::ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::automl::v1::InputConfig const& input_config, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::ImportDataRequest request; + request.set_name(name); + *request.mutable_input_config() = input_config; + return connection_->ImportData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::ImportData( google::cloud::automl::v1::ImportDataRequest const& request, Options opts) { @@ -130,6 +200,22 @@ AutoMlClient::ImportData( return connection_->ImportData(request); } +StatusOr AutoMlClient::ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoMlClient::ImportData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportData(google::cloud::ExperimentalTag{}, operation); +} + future> AutoMlClient::ExportData( std::string const& name, @@ -142,6 +228,19 @@ AutoMlClient::ExportData( return connection_->ExportData(request); } +StatusOr AutoMlClient::ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::automl::v1::OutputConfig const& output_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::ExportDataRequest request; + request.set_name(name); + *request.mutable_output_config() = output_config; + return connection_->ExportData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::ExportData( google::cloud::automl::v1::ExportDataRequest const& request, Options opts) { @@ -149,6 +248,22 @@ AutoMlClient::ExportData( return connection_->ExportData(request); } +StatusOr AutoMlClient::ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoMlClient::ExportData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportData(google::cloud::ExperimentalTag{}, operation); +} + StatusOr AutoMlClient::GetAnnotationSpec(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -175,6 +290,18 @@ future> AutoMlClient::CreateModel( return connection_->CreateModel(request); } +StatusOr AutoMlClient::CreateModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::automl::v1::Model const& model, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::CreateModelRequest request; + request.set_parent(parent); + *request.mutable_model() = model; + return connection_->CreateModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::CreateModel( google::cloud::automl::v1::CreateModelRequest const& request, Options opts) { @@ -182,6 +309,22 @@ future> AutoMlClient::CreateModel( return connection_->CreateModel(request); } +StatusOr AutoMlClient::CreateModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> AutoMlClient::CreateModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateModel(google::cloud::ExperimentalTag{}, operation); +} + StatusOr AutoMlClient::GetModel( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -218,6 +361,16 @@ AutoMlClient::DeleteModel(std::string const& name, Options opts) { return connection_->DeleteModel(request); } +StatusOr AutoMlClient::DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::DeleteModelRequest request; + request.set_name(name); + return connection_->DeleteModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::DeleteModel( google::cloud::automl::v1::DeleteModelRequest const& request, @@ -226,6 +379,23 @@ AutoMlClient::DeleteModel( return connection_->DeleteModel(request); } +StatusOr AutoMlClient::DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoMlClient::DeleteModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteModel(google::cloud::ExperimentalTag{}, operation); +} + StatusOr AutoMlClient::UpdateModel( google::cloud::automl::v1::Model const& model, google::protobuf::FieldMask const& update_mask, Options opts) { @@ -251,6 +421,16 @@ AutoMlClient::DeployModel(std::string const& name, Options opts) { return connection_->DeployModel(request); } +StatusOr AutoMlClient::DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::DeployModelRequest request; + request.set_name(name); + return connection_->DeployModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::DeployModel( google::cloud::automl::v1::DeployModelRequest const& request, @@ -259,6 +439,23 @@ AutoMlClient::DeployModel( return connection_->DeployModel(request); } +StatusOr AutoMlClient::DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoMlClient::DeployModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployModel(google::cloud::ExperimentalTag{}, operation); +} + future> AutoMlClient::UndeployModel(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -267,6 +464,16 @@ AutoMlClient::UndeployModel(std::string const& name, Options opts) { return connection_->UndeployModel(request); } +StatusOr AutoMlClient::UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::UndeployModelRequest request; + request.set_name(name); + return connection_->UndeployModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::UndeployModel( google::cloud::automl::v1::UndeployModelRequest const& request, @@ -275,6 +482,24 @@ AutoMlClient::UndeployModel( return connection_->UndeployModel(request); } +StatusOr AutoMlClient::UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoMlClient::UndeployModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployModel(google::cloud::ExperimentalTag{}, + operation); +} + future> AutoMlClient::ExportModel( std::string const& name, @@ -287,6 +512,19 @@ AutoMlClient::ExportModel( return connection_->ExportModel(request); } +StatusOr AutoMlClient::ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::automl::v1::ModelExportOutputConfig const& output_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::ExportModelRequest request; + request.set_name(name); + *request.mutable_output_config() = output_config; + return connection_->ExportModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoMlClient::ExportModel( google::cloud::automl::v1::ExportModelRequest const& request, @@ -295,6 +533,23 @@ AutoMlClient::ExportModel( return connection_->ExportModel(request); } +StatusOr AutoMlClient::ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoMlClient::ExportModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportModel(google::cloud::ExperimentalTag{}, operation); +} + StatusOr AutoMlClient::GetModelEvaluation(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/automl/v1/auto_ml_client.h b/google/cloud/automl/v1/auto_ml_client.h index 99266d98492df..60a002d5416cb 100644 --- a/google/cloud/automl/v1/auto_ml_client.h +++ b/google/cloud/automl/v1/auto_ml_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AUTOML_V1_AUTO_ML_CLIENT_H #include "google/cloud/automl/v1/auto_ml_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -132,6 +134,11 @@ class AutoMlClient { std::string const& parent, google::cloud::automl::v1::Dataset const& dataset, Options opts = {}); + StatusOr CreateDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::automl::v1::Dataset const& dataset, Options opts = {}); + // clang-format off /// /// Creates a dataset. @@ -170,6 +177,15 @@ class AutoMlClient { google::cloud::automl::v1::CreateDatasetRequest const& request, Options opts = {}); + StatusOr CreateDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request, + Options opts = {}); + + future> CreateDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a dataset. @@ -396,6 +412,10 @@ class AutoMlClient { future> DeleteDataset( std::string const& name, Options opts = {}); + StatusOr DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a dataset and all of its contents. @@ -440,6 +460,15 @@ class AutoMlClient { google::cloud::automl::v1::DeleteDatasetRequest const& request, Options opts = {}); + StatusOr DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request, + Options opts = {}); + + future> DeleteDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Imports data into a dataset. @@ -487,6 +516,12 @@ class AutoMlClient { google::cloud::automl::v1::InputConfig const& input_config, Options opts = {}); + StatusOr ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::automl::v1::InputConfig const& input_config, + Options opts = {}); + // clang-format off /// /// Imports data into a dataset. @@ -535,6 +570,15 @@ class AutoMlClient { google::cloud::automl::v1::ImportDataRequest const& request, Options opts = {}); + StatusOr ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request, + Options opts = {}); + + future> ImportData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Exports dataset's data to the provided output location. @@ -573,6 +617,12 @@ class AutoMlClient { google::cloud::automl::v1::OutputConfig const& output_config, Options opts = {}); + StatusOr ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::automl::v1::OutputConfig const& output_config, + Options opts = {}); + // clang-format off /// /// Exports dataset's data to the provided output location. @@ -614,6 +664,15 @@ class AutoMlClient { google::cloud::automl::v1::ExportDataRequest const& request, Options opts = {}); + StatusOr ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request, + Options opts = {}); + + future> ExportData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets an annotation spec. @@ -709,6 +768,11 @@ class AutoMlClient { std::string const& parent, google::cloud::automl::v1::Model const& model, Options opts = {}); + StatusOr CreateModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::automl::v1::Model const& model, + Options opts = {}); + // clang-format off /// /// Creates a model. @@ -752,6 +816,15 @@ class AutoMlClient { google::cloud::automl::v1::CreateModelRequest const& request, Options opts = {}); + StatusOr CreateModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request, + Options opts = {}); + + future> CreateModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a model. @@ -919,6 +992,10 @@ class AutoMlClient { future> DeleteModel( std::string const& name, Options opts = {}); + StatusOr DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a model. @@ -963,6 +1040,15 @@ class AutoMlClient { google::cloud::automl::v1::DeleteModelRequest const& request, Options opts = {}); + StatusOr DeleteModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request, + Options opts = {}); + + future> DeleteModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a model. @@ -1064,6 +1150,10 @@ class AutoMlClient { future> DeployModel( std::string const& name, Options opts = {}); + StatusOr DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deploys a model. If a model is already deployed, deploying it with the @@ -1113,6 +1203,15 @@ class AutoMlClient { google::cloud::automl::v1::DeployModelRequest const& request, Options opts = {}); + StatusOr DeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request, + Options opts = {}); + + future> DeployModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Undeploys a model. If the model is not deployed this method has no effect. @@ -1152,6 +1251,10 @@ class AutoMlClient { future> UndeployModel( std::string const& name, Options opts = {}); + StatusOr UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Undeploys a model. If the model is not deployed this method has no effect. @@ -1197,6 +1300,15 @@ class AutoMlClient { google::cloud::automl::v1::UndeployModelRequest const& request, Options opts = {}); + StatusOr UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request, + Options opts = {}); + + future> UndeployModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Exports a trained, "export-able", model to a user specified Google Cloud @@ -1240,6 +1352,12 @@ class AutoMlClient { google::cloud::automl::v1::ModelExportOutputConfig const& output_config, Options opts = {}); + StatusOr ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::automl::v1::ModelExportOutputConfig const& output_config, + Options opts = {}); + // clang-format off /// /// Exports a trained, "export-able", model to a user specified Google Cloud @@ -1286,6 +1404,15 @@ class AutoMlClient { google::cloud::automl::v1::ExportModelRequest const& request, Options opts = {}); + StatusOr ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request, + Options opts = {}); + + future> ExportModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a model evaluation. 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..a0a8338b95605 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,57 @@ AutoMlConnectionImpl::CreateDataset( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::CreateDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +252,58 @@ AutoMlConnectionImpl::DeleteDataset( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +343,58 @@ AutoMlConnectionImpl::ImportData( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::ImportData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +434,58 @@ AutoMlConnectionImpl::ExportData( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::ExportData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +540,57 @@ AutoMlConnectionImpl::CreateModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::CreateModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +675,58 @@ AutoMlConnectionImpl::DeleteModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::DeleteModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +779,58 @@ AutoMlConnectionImpl::DeployModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::DeployModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +870,58 @@ AutoMlConnectionImpl::UndeployModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::UndeployModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +961,58 @@ AutoMlConnectionImpl::ExportModel( polling_policy(*current), __func__); } +StatusOr AutoMlConnectionImpl::ExportModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..14ff7a470bacb 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request) override; + + future> CreateDataset( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request) override; + + future> DeleteDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportData( google::cloud::automl::v1::ImportDataRequest const& request) override; + StatusOr ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request) override; + + future> ImportData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportData( google::cloud::automl::v1::ExportDataRequest const& request) override; + StatusOr ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request) override; + + future> ExportData( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request) override; + + future> CreateModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request) override; + + future> DeleteModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request) override; + + future> DeployModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployModel( google::cloud::automl::v1::UndeployModelRequest const& request) override; + StatusOr UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request) override; + + future> UndeployModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportModel( google::cloud::automl::v1::ExportModelRequest const& request) override; + StatusOr ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request) override; + + future> ExportModel( + google::cloud::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..fb887822e7954 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,27 @@ AutoMlTracingConnection::CreateDataset( return internal::EndSpan(std::move(span), child_->CreateDataset(request)); } +StatusOr AutoMlTracingConnection::CreateDataset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::CreateDataset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::GetDataset( google::cloud::automl::v1::GetDatasetRequest const& request) { @@ -75,6 +96,27 @@ AutoMlTracingConnection::DeleteDataset( return internal::EndSpan(std::move(span), child_->DeleteDataset(request)); } +StatusOr AutoMlTracingConnection::DeleteDataset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::DeleteDataset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AutoMlTracingConnection::ImportData( google::cloud::automl::v1::ImportDataRequest const& request) { @@ -83,6 +125,27 @@ AutoMlTracingConnection::ImportData( return internal::EndSpan(std::move(span), child_->ImportData(request)); } +StatusOr AutoMlTracingConnection::ImportData( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::ImportData( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AutoMlTracingConnection::ExportData( google::cloud::automl::v1::ExportDataRequest const& request) { @@ -91,6 +154,27 @@ AutoMlTracingConnection::ExportData( return internal::EndSpan(std::move(span), child_->ExportData(request)); } +StatusOr AutoMlTracingConnection::ExportData( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::ExportData( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::GetAnnotationSpec( google::cloud::automl::v1::GetAnnotationSpecRequest const& request) { @@ -108,6 +192,27 @@ AutoMlTracingConnection::CreateModel( return internal::EndSpan(std::move(span), child_->CreateModel(request)); } +StatusOr AutoMlTracingConnection::CreateModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::CreateModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::GetModel( google::cloud::automl::v1::GetModelRequest const& request) { auto span = internal::MakeSpan("automl_v1::AutoMlConnection::GetModel"); @@ -133,6 +238,27 @@ AutoMlTracingConnection::DeleteModel( return internal::EndSpan(std::move(span), child_->DeleteModel(request)); } +StatusOr AutoMlTracingConnection::DeleteModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::DeleteModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AutoMlTracingConnection::UpdateModel( google::cloud::automl::v1::UpdateModelRequest const& request) { auto span = internal::MakeSpan("automl_v1::AutoMlConnection::UpdateModel"); @@ -148,6 +274,27 @@ AutoMlTracingConnection::DeployModel( return internal::EndSpan(std::move(span), child_->DeployModel(request)); } +StatusOr AutoMlTracingConnection::DeployModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::DeployModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AutoMlTracingConnection::UndeployModel( google::cloud::automl::v1::UndeployModelRequest const& request) { @@ -156,6 +303,27 @@ AutoMlTracingConnection::UndeployModel( return internal::EndSpan(std::move(span), child_->UndeployModel(request)); } +StatusOr AutoMlTracingConnection::UndeployModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::UndeployModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AutoMlTracingConnection::ExportModel( google::cloud::automl::v1::ExportModelRequest const& request) { @@ -164,6 +332,27 @@ AutoMlTracingConnection::ExportModel( return internal::EndSpan(std::move(span), child_->ExportModel(request)); } +StatusOr AutoMlTracingConnection::ExportModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoMlTracingConnection::ExportModel( + google::cloud::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(google::cloud::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..195a38909e3e2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request) override; + + future> CreateDataset( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request) override; + + future> DeleteDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportData( google::cloud::automl::v1::ImportDataRequest const& request) override; + StatusOr ImportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request) override; + + future> ImportData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportData( google::cloud::automl::v1::ExportDataRequest const& request) override; + StatusOr ExportData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request) override; + + future> ExportData( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request) override; + + future> CreateModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request) override; + + future> DeleteModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request) override; + + future> DeployModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployModel( google::cloud::automl::v1::UndeployModelRequest const& request) override; + StatusOr UndeployModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request) override; + + future> UndeployModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportModel( google::cloud::automl::v1::ExportModelRequest const& request) override; + StatusOr ExportModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request) override; + + future> ExportModel( + google::cloud::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..ae91c26577a49 100644 --- a/google/cloud/automl/v1/internal/prediction_connection_impl.cc +++ b/google/cloud/automl/v1/internal/prediction_connection_impl.cc @@ -118,6 +118,59 @@ PredictionServiceConnectionImpl::BatchPredict( polling_policy(*current), __func__); } +StatusOr +PredictionServiceConnectionImpl::BatchPredict( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..202af096c98b5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request) override; + + future> BatchPredict( + google::cloud::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..ee97e461c905b 100644 --- a/google/cloud/automl/v1/internal/prediction_tracing_connection.cc +++ b/google/cloud/automl/v1/internal/prediction_tracing_connection.cc @@ -50,6 +50,30 @@ PredictionServiceTracingConnection::BatchPredict( return internal::EndSpan(std::move(span), child_->BatchPredict(request)); } +StatusOr +PredictionServiceTracingConnection::BatchPredict( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PredictionServiceTracingConnection::BatchPredict( + google::cloud::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(google::cloud::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..08798b281d149 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request) override; + + future> BatchPredict( + google::cloud::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..994eae0b8f65d 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateDatasetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataset, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteDatasetRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDataset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ImportData, (google::cloud::automl::v1::ImportDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ImportData, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ImportDataRequest const& request), + (override)); + + MOCK_METHOD(future>, + ImportData, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExportData, (google::cloud::automl::v1::ExportDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportData, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportDataRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportData, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::CreateModelRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateModel, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeleteModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteModel, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::DeployModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeployModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeployModel, (google::cloud::automl::v1::UndeployModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeployModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::UndeployModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeployModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExportModel, (google::cloud::automl::v1::ExportModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::ExportModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportModel, + (google::cloud::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..5e4671d451060 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request), + (override)); + + MOCK_METHOD(future>, + BatchPredict, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/automl/v1/prediction_client.cc b/google/cloud/automl/v1/prediction_client.cc index 2fcc01fe15227..280bf6a639baa 100644 --- a/google/cloud/automl/v1/prediction_client.cc +++ b/google/cloud/automl/v1/prediction_client.cc @@ -67,6 +67,22 @@ PredictionServiceClient::BatchPredict( return connection_->BatchPredict(request); } +StatusOr PredictionServiceClient::BatchPredict( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::automl::v1::BatchPredictInputConfig const& input_config, + google::cloud::automl::v1::BatchPredictOutputConfig const& output_config, + std::map const& params, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::automl::v1::BatchPredictRequest request; + request.set_name(name); + *request.mutable_input_config() = input_config; + *request.mutable_output_config() = output_config; + *request.mutable_params() = {params.begin(), params.end()}; + return connection_->BatchPredict(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PredictionServiceClient::BatchPredict( google::cloud::automl::v1::BatchPredictRequest const& request, @@ -75,6 +91,23 @@ PredictionServiceClient::BatchPredict( return connection_->BatchPredict(request); } +StatusOr PredictionServiceClient::BatchPredict( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchPredict(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +PredictionServiceClient::BatchPredict( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchPredict(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace automl_v1 } // namespace cloud diff --git a/google/cloud/automl/v1/prediction_client.h b/google/cloud/automl/v1/prediction_client.h index caf233d916e1d..b986433351219 100644 --- a/google/cloud/automl/v1/prediction_client.h +++ b/google/cloud/automl/v1/prediction_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_AUTOML_V1_PREDICTION_CLIENT_H #include "google/cloud/automl/v1/prediction_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -284,6 +286,13 @@ class PredictionServiceClient { google::cloud::automl::v1::BatchPredictOutputConfig const& output_config, std::map const& params, Options opts = {}); + StatusOr BatchPredict( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::automl::v1::BatchPredictInputConfig const& input_config, + google::cloud::automl::v1::BatchPredictOutputConfig const& output_config, + std::map const& params, Options opts = {}); + // clang-format off /// /// Perform a batch prediction. Unlike the online [Predict][google.cloud.automl.v1.PredictionService.Predict], batch @@ -339,6 +348,15 @@ class PredictionServiceClient { google::cloud::automl::v1::BatchPredictRequest const& request, Options opts = {}); + StatusOr BatchPredict( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::automl::v1::BatchPredictRequest const& request, + Options opts = {}); + + future> BatchPredict( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/backupdr/v1/backup_dr_client.cc index 8030bdfcd3884..a56f7d6f85afa 100644 --- a/google/cloud/backupdr/v1/backup_dr_client.cc +++ b/google/cloud/backupdr/v1/backup_dr_client.cc @@ -77,6 +77,20 @@ BackupDRClient::CreateManagementServer( return connection_->CreateManagementServer(request); } +StatusOr BackupDRClient::CreateManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::backupdr::v1::ManagementServer const& management_server, + std::string const& management_server_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::backupdr::v1::CreateManagementServerRequest request; + request.set_parent(parent); + *request.mutable_management_server() = management_server; + request.set_management_server_id(management_server_id); + return connection_->CreateManagementServer( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BackupDRClient::CreateManagementServer( google::cloud::backupdr::v1::CreateManagementServerRequest const& request, @@ -85,6 +99,24 @@ BackupDRClient::CreateManagementServer( return connection_->CreateManagementServer(request); } +StatusOr BackupDRClient::CreateManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateManagementServer( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BackupDRClient::CreateManagementServer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateManagementServer(google::cloud::ExperimentalTag{}, + operation); +} + future> BackupDRClient::DeleteManagementServer(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -93,6 +125,16 @@ BackupDRClient::DeleteManagementServer(std::string const& name, Options opts) { return connection_->DeleteManagementServer(request); } +StatusOr BackupDRClient::DeleteManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::backupdr::v1::DeleteManagementServerRequest request; + request.set_name(name); + return connection_->DeleteManagementServer( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BackupDRClient::DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request, @@ -101,6 +143,24 @@ BackupDRClient::DeleteManagementServer( return connection_->DeleteManagementServer(request); } +StatusOr BackupDRClient::DeleteManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteManagementServer( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BackupDRClient::DeleteManagementServer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteManagementServer(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace backupdr_v1 } // namespace cloud diff --git a/google/cloud/backupdr/v1/backup_dr_client.h b/google/cloud/backupdr/v1/backup_dr_client.h index 7fe472aba4670..267d2726c9da3 100644 --- a/google/cloud/backupdr/v1/backup_dr_client.h +++ b/google/cloud/backupdr/v1/backup_dr_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BACKUPDR_V1_BACKUP_DR_CLIENT_H #include "google/cloud/backupdr/v1/backup_dr_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -262,6 +264,12 @@ class BackupDRClient { google::cloud::backupdr::v1::ManagementServer const& management_server, std::string const& management_server_id, Options opts = {}); + StatusOr CreateManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::backupdr::v1::ManagementServer const& management_server, + std::string const& management_server_id, Options opts = {}); + // clang-format off /// /// Creates a new ManagementServer in a given project and location. @@ -301,6 +309,16 @@ class BackupDRClient { google::cloud::backupdr::v1::CreateManagementServerRequest const& request, Options opts = {}); + StatusOr CreateManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& request, + Options opts = {}); + + future> + CreateManagementServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single ManagementServer. @@ -333,6 +351,10 @@ class BackupDRClient { future> DeleteManagementServer(std::string const& name, Options opts = {}); + StatusOr DeleteManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single ManagementServer. @@ -372,6 +394,16 @@ class BackupDRClient { google::cloud::backupdr::v1::DeleteManagementServerRequest const& request, Options opts = {}); + StatusOr DeleteManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& request, + Options opts = {}); + + future> + DeleteManagementServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..e72060bf400ba 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,60 @@ BackupDRConnectionImpl::CreateManagementServer( polling_policy(*current), __func__); } +StatusOr +BackupDRConnectionImpl::CreateManagementServer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +247,60 @@ BackupDRConnectionImpl::DeleteManagementServer( polling_policy(*current), __func__); } +StatusOr +BackupDRConnectionImpl::DeleteManagementServer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..49db26bdddd4e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& request) + override; + + future> + CreateManagementServer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) override; + StatusOr DeleteManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) + override; + + future> + DeleteManagementServer( + google::cloud::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..83903a20d6cd2 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,30 @@ BackupDRTracingConnection::CreateManagementServer( child_->CreateManagementServer(request)); } +StatusOr +BackupDRTracingConnection::CreateManagementServer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupDRTracingConnection::CreateManagementServer( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> BackupDRTracingConnection::DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) { @@ -74,6 +98,30 @@ BackupDRTracingConnection::DeleteManagementServer( child_->DeleteManagementServer(request)); } +StatusOr +BackupDRTracingConnection::DeleteManagementServer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupDRTracingConnection::DeleteManagementServer( + google::cloud::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( + google::cloud::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..83c61ae177a42 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& request) + override; + + future> + CreateManagementServer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteManagementServer( google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) override; + StatusOr DeleteManagementServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& request) + override; + + future> + DeleteManagementServer( + google::cloud::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..bdca5ee9f9d02 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::CreateManagementServerRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateManagementServer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteManagementServer, (google::cloud::backupdr::v1::DeleteManagementServerRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteManagementServer, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::backupdr::v1::DeleteManagementServerRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteManagementServer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/baremetalsolution/v2/bare_metal_solution_client.cc b/google/cloud/baremetalsolution/v2/bare_metal_solution_client.cc index bbccdb083f060..3a137f5cc4094 100644 --- a/google/cloud/baremetalsolution/v2/bare_metal_solution_client.cc +++ b/google/cloud/baremetalsolution/v2/bare_metal_solution_client.cc @@ -76,6 +76,19 @@ BareMetalSolutionClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr +BareMetalSolutionClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::UpdateInstanceRequest request; + *request.mutable_instance() = instance; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::UpdateInstance( google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& request, @@ -84,6 +97,25 @@ BareMetalSolutionClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr +BareMetalSolutionClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BareMetalSolutionClient::RenameInstance(std::string const& name, std::string const& new_instance_id, @@ -111,6 +143,16 @@ BareMetalSolutionClient::ResetInstance(std::string const& name, Options opts) { return connection_->ResetInstance(request); } +StatusOr BareMetalSolutionClient::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::ResetInstanceRequest request; + request.set_name(name); + return connection_->ResetInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::ResetInstance( google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request, @@ -119,6 +161,24 @@ BareMetalSolutionClient::ResetInstance( return connection_->ResetInstance(request); } +StatusOr BareMetalSolutionClient::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::ResetInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> BareMetalSolutionClient::StartInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -127,6 +187,16 @@ BareMetalSolutionClient::StartInstance(std::string const& name, Options opts) { return connection_->StartInstance(request); } +StatusOr BareMetalSolutionClient::StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::StartInstanceRequest request; + request.set_name(name); + return connection_->StartInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request, @@ -135,6 +205,24 @@ BareMetalSolutionClient::StartInstance( return connection_->StartInstance(request); } +StatusOr BareMetalSolutionClient::StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> BareMetalSolutionClient::StopInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -143,6 +231,16 @@ BareMetalSolutionClient::StopInstance(std::string const& name, Options opts) { return connection_->StopInstance(request); } +StatusOr BareMetalSolutionClient::StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::StopInstanceRequest request; + request.set_name(name); + return connection_->StopInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::StopInstance( google::cloud::baremetalsolution::v2::StopInstanceRequest const& request, @@ -151,6 +249,23 @@ BareMetalSolutionClient::StopInstance( return connection_->StopInstance(request); } +StatusOr BareMetalSolutionClient::StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopInstance(google::cloud::ExperimentalTag{}, operation); +} + future> BareMetalSolutionClient::EnableInteractiveSerialConsole(std::string const& name, @@ -162,6 +277,18 @@ BareMetalSolutionClient::EnableInteractiveSerialConsole(std::string const& name, return connection_->EnableInteractiveSerialConsole(request); } +StatusOr +BareMetalSolutionClient::EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::EnableInteractiveSerialConsoleRequest + request; + request.set_name(name); + return connection_->EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::EnableInteractiveSerialConsole( @@ -172,6 +299,27 @@ BareMetalSolutionClient::EnableInteractiveSerialConsole( return connection_->EnableInteractiveSerialConsole(request); } +StatusOr +BareMetalSolutionClient::EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag{}, operation); +} + future> BareMetalSolutionClient::DisableInteractiveSerialConsole( @@ -183,6 +331,18 @@ BareMetalSolutionClient::DisableInteractiveSerialConsole( return connection_->DisableInteractiveSerialConsole(request); } +StatusOr +BareMetalSolutionClient::DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::DisableInteractiveSerialConsoleRequest + request; + request.set_name(name); + return connection_->DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::DisableInteractiveSerialConsole( @@ -193,6 +353,27 @@ BareMetalSolutionClient::DisableInteractiveSerialConsole( return connection_->DisableInteractiveSerialConsole(request); } +StatusOr +BareMetalSolutionClient::DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag{}, operation); +} + future> BareMetalSolutionClient::DetachLun(std::string const& instance, std::string const& lun, Options opts) { @@ -203,6 +384,17 @@ BareMetalSolutionClient::DetachLun(std::string const& instance, return connection_->DetachLun(request); } +StatusOr BareMetalSolutionClient::DetachLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& instance, std::string const& lun, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::DetachLunRequest request; + request.set_instance(instance); + request.set_lun(lun); + return connection_->DetachLun(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request, @@ -211,6 +403,23 @@ BareMetalSolutionClient::DetachLun( return connection_->DetachLun(request); } +StatusOr BareMetalSolutionClient::DetachLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachLun(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::DetachLun( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachLun(google::cloud::ExperimentalTag{}, operation); +} + StreamRange BareMetalSolutionClient::ListSSHKeys(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -306,6 +515,18 @@ BareMetalSolutionClient::UpdateVolume( return connection_->UpdateVolume(request); } +StatusOr BareMetalSolutionClient::UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::Volume const& volume, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::UpdateVolumeRequest request; + *request.mutable_volume() = volume; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::UpdateVolume( google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request, @@ -314,6 +535,23 @@ BareMetalSolutionClient::UpdateVolume( return connection_->UpdateVolume(request); } +StatusOr BareMetalSolutionClient::UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::UpdateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVolume(google::cloud::ExperimentalTag{}, operation); +} + StatusOr BareMetalSolutionClient::RenameVolume(std::string const& name, std::string const& new_volume_id, @@ -341,6 +579,16 @@ BareMetalSolutionClient::EvictVolume(std::string const& name, Options opts) { return connection_->EvictVolume(request); } +StatusOr BareMetalSolutionClient::EvictVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::EvictVolumeRequest request; + request.set_name(name); + return connection_->EvictVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::EvictVolume( google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request, @@ -349,6 +597,23 @@ BareMetalSolutionClient::EvictVolume( return connection_->EvictVolume(request); } +StatusOr BareMetalSolutionClient::EvictVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EvictVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::EvictVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EvictVolume(google::cloud::ExperimentalTag{}, operation); +} + future> BareMetalSolutionClient::ResizeVolume(std::string const& volume, std::int64_t size_gib, Options opts) { @@ -359,6 +624,17 @@ BareMetalSolutionClient::ResizeVolume(std::string const& volume, return connection_->ResizeVolume(request); } +StatusOr BareMetalSolutionClient::ResizeVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& volume, std::int64_t size_gib, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::ResizeVolumeRequest request; + request.set_volume(volume); + request.set_size_gib(size_gib); + return connection_->ResizeVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request, @@ -367,6 +643,23 @@ BareMetalSolutionClient::ResizeVolume( return connection_->ResizeVolume(request); } +StatusOr BareMetalSolutionClient::ResizeVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResizeVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::ResizeVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResizeVolume(google::cloud::ExperimentalTag{}, operation); +} + StreamRange BareMetalSolutionClient::ListNetworks(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -428,6 +721,18 @@ BareMetalSolutionClient::UpdateNetwork( return connection_->UpdateNetwork(request); } +StatusOr BareMetalSolutionClient::UpdateNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::Network const& network, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::UpdateNetworkRequest request; + *request.mutable_network() = network; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::UpdateNetwork( google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request, @@ -436,6 +741,24 @@ BareMetalSolutionClient::UpdateNetwork( return connection_->UpdateNetwork(request); } +StatusOr BareMetalSolutionClient::UpdateNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::UpdateNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNetwork(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BareMetalSolutionClient::CreateVolumeSnapshot( std::string const& parent, @@ -466,6 +789,17 @@ BareMetalSolutionClient::RestoreVolumeSnapshot( return connection_->RestoreVolumeSnapshot(request); } +StatusOr +BareMetalSolutionClient::RestoreVolumeSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& volume_snapshot, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest request; + request.set_volume_snapshot(volume_snapshot); + return connection_->RestoreVolumeSnapshot( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::RestoreVolumeSnapshot( google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& @@ -475,6 +809,26 @@ BareMetalSolutionClient::RestoreVolumeSnapshot( return connection_->RestoreVolumeSnapshot(request); } +StatusOr +BareMetalSolutionClient::RestoreVolumeSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreVolumeSnapshot( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::RestoreVolumeSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreVolumeSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + Status BareMetalSolutionClient::DeleteVolumeSnapshot(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -566,6 +920,16 @@ BareMetalSolutionClient::EvictLun(std::string const& name, Options opts) { return connection_->EvictLun(request); } +StatusOr BareMetalSolutionClient::EvictLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::EvictLunRequest request; + request.set_name(name); + return connection_->EvictLun(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::EvictLun( google::cloud::baremetalsolution::v2::EvictLunRequest const& request, @@ -574,6 +938,23 @@ BareMetalSolutionClient::EvictLun( return connection_->EvictLun(request); } +StatusOr BareMetalSolutionClient::EvictLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EvictLun(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::EvictLun( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EvictLun(google::cloud::ExperimentalTag{}, operation); +} + StatusOr BareMetalSolutionClient::GetNfsShare(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -618,6 +999,19 @@ BareMetalSolutionClient::UpdateNfsShare( return connection_->UpdateNfsShare(request); } +StatusOr +BareMetalSolutionClient::UpdateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::NfsShare const& nfs_share, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest request; + *request.mutable_nfs_share() = nfs_share; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateNfsShare(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::UpdateNfsShare( google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& request, @@ -626,6 +1020,25 @@ BareMetalSolutionClient::UpdateNfsShare( return connection_->UpdateNfsShare(request); } +StatusOr +BareMetalSolutionClient::UpdateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNfsShare(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::UpdateNfsShare( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNfsShare(google::cloud::ExperimentalTag{}, + operation); +} + future> BareMetalSolutionClient::CreateNfsShare( std::string const& parent, @@ -638,6 +1051,20 @@ BareMetalSolutionClient::CreateNfsShare( return connection_->CreateNfsShare(request); } +StatusOr +BareMetalSolutionClient::CreateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::baremetalsolution::v2::NfsShare const& nfs_share, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::CreateNfsShareRequest request; + request.set_parent(parent); + *request.mutable_nfs_share() = nfs_share; + return connection_->CreateNfsShare(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& request, @@ -646,6 +1073,25 @@ BareMetalSolutionClient::CreateNfsShare( return connection_->CreateNfsShare(request); } +StatusOr +BareMetalSolutionClient::CreateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNfsShare(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::CreateNfsShare( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNfsShare(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BareMetalSolutionClient::RenameNfsShare(std::string const& name, std::string const& new_nfsshare_id, @@ -673,6 +1119,17 @@ BareMetalSolutionClient::DeleteNfsShare(std::string const& name, Options opts) { return connection_->DeleteNfsShare(request); } +StatusOr +BareMetalSolutionClient::DeleteNfsShare(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest request; + request.set_name(name); + return connection_->DeleteNfsShare(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BareMetalSolutionClient::DeleteNfsShare( google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& request, @@ -681,6 +1138,25 @@ BareMetalSolutionClient::DeleteNfsShare( return connection_->DeleteNfsShare(request); } +StatusOr +BareMetalSolutionClient::DeleteNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNfsShare(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BareMetalSolutionClient::DeleteNfsShare( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNfsShare(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange BareMetalSolutionClient::ListProvisioningQuotas(std::string const& parent, Options opts) { diff --git a/google/cloud/baremetalsolution/v2/bare_metal_solution_client.h b/google/cloud/baremetalsolution/v2/bare_metal_solution_client.h index e207adaf3d8d5..dd7f2ced494f0 100644 --- a/google/cloud/baremetalsolution/v2/bare_metal_solution_client.h +++ b/google/cloud/baremetalsolution/v2/bare_metal_solution_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BAREMETALSOLUTION_V2_BARE_METAL_SOLUTION_CLIENT_H #include "google/cloud/baremetalsolution/v2/bare_metal_solution_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -267,6 +269,11 @@ class BareMetalSolutionClient { google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update details of a single server. @@ -307,6 +314,17 @@ class BareMetalSolutionClient { request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request, + Options opts = {}); + + future> + UpdateInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// RenameInstance sets a new name for an instance. @@ -402,6 +420,10 @@ class BareMetalSolutionClient { future> ResetInstance(std::string const& name, Options opts = {}); + StatusOr ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Perform an ungraceful, hard reset on a server. Equivalent to shutting the @@ -442,6 +464,16 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request, Options opts = {}); + StatusOr ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request, + Options opts = {}); + + future> + ResetInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts a server that was shutdown. @@ -474,6 +506,10 @@ class BareMetalSolutionClient { future> StartInstance(std::string const& name, Options opts = {}); + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Starts a server that was shutdown. @@ -513,6 +549,16 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::StartInstanceRequest const& request, Options opts = {}); + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& request, + Options opts = {}); + + future> + StartInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stop a running server. @@ -545,6 +591,10 @@ class BareMetalSolutionClient { future> StopInstance(std::string const& name, Options opts = {}); + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Stop a running server. @@ -584,6 +634,16 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::StopInstanceRequest const& request, Options opts = {}); + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request, + Options opts = {}); + + future> + StopInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Enable the interactive serial console feature on an instance. @@ -617,6 +677,10 @@ class BareMetalSolutionClient { EnableInteractiveSerialConsoleResponse>> EnableInteractiveSerialConsole(std::string const& name, Options opts = {}); + StatusOr EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Enable the interactive serial console feature on an instance. @@ -658,6 +722,18 @@ class BareMetalSolutionClient { EnableInteractiveSerialConsoleRequest const& request, Options opts = {}); + StatusOr EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request, + Options opts = {}); + + future> + EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Disable the interactive serial console feature on an instance. @@ -691,6 +767,10 @@ class BareMetalSolutionClient { DisableInteractiveSerialConsoleResponse>> DisableInteractiveSerialConsole(std::string const& name, Options opts = {}); + StatusOr DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Disable the interactive serial console feature on an instance. @@ -732,6 +812,18 @@ class BareMetalSolutionClient { DisableInteractiveSerialConsoleRequest const& request, Options opts = {}); + StatusOr DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request, + Options opts = {}); + + future> + DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Detach LUN from Instance. @@ -765,6 +857,10 @@ class BareMetalSolutionClient { future> DetachLun( std::string const& instance, std::string const& lun, Options opts = {}); + StatusOr DetachLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& instance, std::string const& lun, Options opts = {}); + // clang-format off /// /// Detach LUN from Instance. @@ -803,6 +899,15 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::DetachLunRequest const& request, Options opts = {}); + StatusOr DetachLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request, + Options opts = {}); + + future> DetachLun( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists the public SSH keys registered for the specified project. @@ -1165,6 +1270,11 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::Volume const& volume, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::Volume const& volume, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update details of a single storage volume. @@ -1203,6 +1313,15 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request, Options opts = {}); + StatusOr UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request, + Options opts = {}); + + future> UpdateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// RenameVolume sets a new name for a volume. @@ -1297,6 +1416,10 @@ class BareMetalSolutionClient { future> EvictVolume(std::string const& name, Options opts = {}); + StatusOr EvictVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Skips volume's cooloff and deletes it now. @@ -1337,6 +1460,16 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request, Options opts = {}); + StatusOr EvictVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request, + Options opts = {}); + + future> + EvictVolume(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Emergency Volume resize. @@ -1370,6 +1503,10 @@ class BareMetalSolutionClient { future> ResizeVolume( std::string const& volume, std::int64_t size_gib, Options opts = {}); + StatusOr ResizeVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& volume, std::int64_t size_gib, Options opts = {}); + // clang-format off /// /// Emergency Volume resize. @@ -1408,6 +1545,15 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request, Options opts = {}); + StatusOr ResizeVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request, + Options opts = {}); + + future> ResizeVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// List network in a given project and location. @@ -1637,6 +1783,11 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::Network const& network, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::Network const& network, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update details of a single network. @@ -1675,6 +1826,15 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request, Options opts = {}); + StatusOr UpdateNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request, + Options opts = {}); + + future> UpdateNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Takes a snapshot of a boot volume. @@ -1774,6 +1934,10 @@ class BareMetalSolutionClient { future> RestoreVolumeSnapshot(std::string const& volume_snapshot, Options opts = {}); + StatusOr RestoreVolumeSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& volume_snapshot, Options opts = {}); + // clang-format off /// /// Uses the specified snapshot to restore its parent volume. @@ -1815,6 +1979,17 @@ class BareMetalSolutionClient { request, Options opts = {}); + StatusOr RestoreVolumeSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request, + Options opts = {}); + + future> + RestoreVolumeSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a volume snapshot. @@ -2169,6 +2344,10 @@ class BareMetalSolutionClient { future> EvictLun(std::string const& name, Options opts = {}); + StatusOr EvictLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Skips lun's cooloff and deletes it now. @@ -2208,6 +2387,15 @@ class BareMetalSolutionClient { EvictLun(google::cloud::baremetalsolution::v2::EvictLunRequest const& request, Options opts = {}); + StatusOr EvictLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request, + Options opts = {}); + + future> + EvictLun(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Get details of a single NFS share. @@ -2379,6 +2567,11 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::NfsShare const& nfs_share, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::NfsShare const& nfs_share, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update details of a single NFS share. @@ -2419,6 +2612,17 @@ class BareMetalSolutionClient { request, Options opts = {}); + StatusOr UpdateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request, + Options opts = {}); + + future> + UpdateNfsShare(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Create an NFS share. @@ -2455,6 +2659,12 @@ class BareMetalSolutionClient { google::cloud::baremetalsolution::v2::NfsShare const& nfs_share, Options opts = {}); + StatusOr CreateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::baremetalsolution::v2::NfsShare const& nfs_share, + Options opts = {}); + // clang-format off /// /// Create an NFS share. @@ -2495,6 +2705,17 @@ class BareMetalSolutionClient { request, Options opts = {}); + StatusOr CreateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request, + Options opts = {}); + + future> + CreateNfsShare(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// RenameNfsShare sets a new name for an nfsshare. @@ -2589,6 +2810,10 @@ class BareMetalSolutionClient { future> DeleteNfsShare(std::string const& name, Options opts = {}); + StatusOr DeleteNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete an NFS share. The underlying volume is automatically deleted. @@ -2629,6 +2854,17 @@ class BareMetalSolutionClient { request, Options opts = {}); + StatusOr DeleteNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request, + Options opts = {}); + + future> + DeleteNfsShare(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// List the budget details to provision resources on a given project. 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..c12e95c4662b9 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,62 @@ BareMetalSolutionConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +275,61 @@ BareMetalSolutionConnectionImpl::ResetInstance( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +370,61 @@ BareMetalSolutionConnectionImpl::StartInstance( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::StartInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +465,61 @@ BareMetalSolutionConnectionImpl::StopInstance( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::StopInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +564,66 @@ BareMetalSolutionConnectionImpl::EnableInteractiveSerialConsole( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +669,67 @@ BareMetalSolutionConnectionImpl::DisableInteractiveSerialConsole( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +769,61 @@ BareMetalSolutionConnectionImpl::DetachLun( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::DetachLun( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +980,61 @@ BareMetalSolutionConnectionImpl::UpdateVolume( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1066,103 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1179,47 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1237,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 +1348,61 @@ BareMetalSolutionConnectionImpl::UpdateNetwork( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::UpdateNetwork( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1459,62 @@ BareMetalSolutionConnectionImpl::RestoreVolumeSnapshot( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::RestoreVolumeSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1671,61 @@ BareMetalSolutionConnectionImpl::EvictLun( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::EvictLun( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1817,62 @@ BareMetalSolutionConnectionImpl::UpdateNfsShare( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::UpdateNfsShare( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1914,62 @@ BareMetalSolutionConnectionImpl::CreateNfsShare( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::CreateNfsShare( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2027,62 @@ BareMetalSolutionConnectionImpl::DeleteNfsShare( polling_policy(*current), __func__); } +StatusOr +BareMetalSolutionConnectionImpl::DeleteNfsShare( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..e5f316621ce3e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request) + override; + + future> + ResetInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) override; + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) + override; + + future> + StartInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance(google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) override; + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) + override; + + future> + StopInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: EnableInteractiveSerialConsoleRequest const& request) override; + StatusOr EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request) override; + + future> + EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: DisableInteractiveSerialConsoleRequest const& request) override; + StatusOr DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request) override; + + future> + DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request) override; + StatusOr DetachLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request) + override; + + future> DetachLun( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request) + override; + + future> UpdateVolume( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) + override; + + future> + EvictVolume(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) override; + StatusOr ResizeVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) + override; + + future> ResizeVolume( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request) + override; + + future> UpdateNetwork( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request) override; + + future> + RestoreVolumeSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request) + override; + + future> + EvictLun(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request) override; + + future> + UpdateNfsShare(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& request) override; + StatusOr CreateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request) override; + + future> + CreateNfsShare(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request) override; + + future> + DeleteNfsShare(google::cloud::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..160f54d6b390b 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,31 @@ BareMetalSolutionTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +BareMetalSolutionTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::RenameInstance( google::cloud::baremetalsolution::v2::RenameInstanceRequest const& @@ -83,6 +108,30 @@ BareMetalSolutionTracingConnection::ResetInstance( return internal::EndSpan(std::move(span), child_->ResetInstance(request)); } +StatusOr +BareMetalSolutionTracingConnection::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::ResetInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) { @@ -92,6 +141,30 @@ BareMetalSolutionTracingConnection::StartInstance( return internal::EndSpan(std::move(span), child_->StartInstance(request)); } +StatusOr +BareMetalSolutionTracingConnection::StartInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::StartInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::StopInstance( google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) { @@ -101,6 +174,30 @@ BareMetalSolutionTracingConnection::StopInstance( return internal::EndSpan(std::move(span), child_->StopInstance(request)); } +StatusOr +BareMetalSolutionTracingConnection::StopInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::StopInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::EnableInteractiveSerialConsole( @@ -114,6 +211,34 @@ BareMetalSolutionTracingConnection::EnableInteractiveSerialConsole( child_->EnableInteractiveSerialConsole(request)); } +StatusOr +BareMetalSolutionTracingConnection::EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::EnableInteractiveSerialConsole( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::DisableInteractiveSerialConsole( @@ -127,6 +252,34 @@ BareMetalSolutionTracingConnection::DisableInteractiveSerialConsole( child_->DisableInteractiveSerialConsole(request)); } +StatusOr +BareMetalSolutionTracingConnection::DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::DisableInteractiveSerialConsole( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request) { @@ -136,6 +289,30 @@ BareMetalSolutionTracingConnection::DetachLun( return internal::EndSpan(std::move(span), child_->DetachLun(request)); } +StatusOr +BareMetalSolutionTracingConnection::DetachLun( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::DetachLun( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BareMetalSolutionTracingConnection::ListSSHKeys( google::cloud::baremetalsolution::v2::ListSSHKeysRequest request) { @@ -195,6 +372,30 @@ BareMetalSolutionTracingConnection::UpdateVolume( return internal::EndSpan(std::move(span), child_->UpdateVolume(request)); } +StatusOr +BareMetalSolutionTracingConnection::UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::UpdateVolume( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::RenameVolume( google::cloud::baremetalsolution::v2::RenameVolumeRequest const& request) { @@ -213,6 +414,30 @@ BareMetalSolutionTracingConnection::EvictVolume( return internal::EndSpan(std::move(span), child_->EvictVolume(request)); } +StatusOr +BareMetalSolutionTracingConnection::EvictVolume( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::EvictVolume( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) { @@ -222,6 +447,30 @@ BareMetalSolutionTracingConnection::ResizeVolume( return internal::EndSpan(std::move(span), child_->ResizeVolume(request)); } +StatusOr +BareMetalSolutionTracingConnection::ResizeVolume( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::ResizeVolume( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BareMetalSolutionTracingConnection::ListNetworks( google::cloud::baremetalsolution::v2::ListNetworksRequest request) { @@ -262,6 +511,30 @@ BareMetalSolutionTracingConnection::UpdateNetwork( return internal::EndSpan(std::move(span), child_->UpdateNetwork(request)); } +StatusOr +BareMetalSolutionTracingConnection::UpdateNetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::UpdateNetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::CreateVolumeSnapshot( google::cloud::baremetalsolution::v2::CreateVolumeSnapshotRequest const& @@ -285,6 +558,33 @@ BareMetalSolutionTracingConnection::RestoreVolumeSnapshot( child_->RestoreVolumeSnapshot(request)); } +StatusOr +BareMetalSolutionTracingConnection::RestoreVolumeSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::RestoreVolumeSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status BareMetalSolutionTracingConnection::DeleteVolumeSnapshot( google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const& request) { @@ -347,6 +647,30 @@ BareMetalSolutionTracingConnection::EvictLun( return internal::EndSpan(std::move(span), child_->EvictLun(request)); } +StatusOr +BareMetalSolutionTracingConnection::EvictLun( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::EvictLun( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::GetNfsShare( google::cloud::baremetalsolution::v2::GetNfsShareRequest const& request) { @@ -378,6 +702,31 @@ BareMetalSolutionTracingConnection::UpdateNfsShare( return internal::EndSpan(std::move(span), child_->UpdateNfsShare(request)); } +StatusOr +BareMetalSolutionTracingConnection::UpdateNfsShare( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::UpdateNfsShare( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BareMetalSolutionTracingConnection::CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& @@ -388,6 +737,31 @@ BareMetalSolutionTracingConnection::CreateNfsShare( return internal::EndSpan(std::move(span), child_->CreateNfsShare(request)); } +StatusOr +BareMetalSolutionTracingConnection::CreateNfsShare( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::CreateNfsShare( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BareMetalSolutionTracingConnection::RenameNfsShare( google::cloud::baremetalsolution::v2::RenameNfsShareRequest const& @@ -408,6 +782,31 @@ BareMetalSolutionTracingConnection::DeleteNfsShare( return internal::EndSpan(std::move(span), child_->DeleteNfsShare(request)); } +StatusOr +BareMetalSolutionTracingConnection::DeleteNfsShare( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BareMetalSolutionTracingConnection::DeleteNfsShare( + google::cloud::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(google::cloud::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..510c9018eb997 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& request) + override; + + future> + ResetInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) override; + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& request) + override; + + future> + StartInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance(google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) override; + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& request) + override; + + future> + StopInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: EnableInteractiveSerialConsoleRequest const& request) override; + StatusOr EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request) override; + + future> + EnableInteractiveSerialConsole( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableInteractiveSerialConsole( google::cloud::baremetalsolution::v2:: DisableInteractiveSerialConsoleRequest const& request) override; + StatusOr DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request) override; + + future> + DisableInteractiveSerialConsole( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DetachLun( google::cloud::baremetalsolution::v2::DetachLunRequest const& request) override; + StatusOr DetachLun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request) + override; + + future> DetachLun( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& request) + override; + + future> UpdateVolume( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request) + override; + + future> + EvictVolume(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResizeVolume( google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) override; + StatusOr ResizeVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request) + override; + + future> ResizeVolume( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& request) + override; + + future> UpdateNetwork( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request) override; + + future> + RestoreVolumeSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request) + override; + + future> + EvictLun(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request) override; + + future> + UpdateNfsShare(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateNfsShare( google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& request) override; + StatusOr CreateNfsShare( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request) override; + + future> + CreateNfsShare(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request) override; + + future> + DeleteNfsShare(google::cloud::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..03ec100ef4de9 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResetInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ResetInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartInstance, @@ -85,6 +111,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, StartInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StartInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + StartInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -93,6 +132,20 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, StopInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::StopInstanceRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + StopInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, EnableInteractiveSerialConsole, @@ -100,6 +153,20 @@ class MockBareMetalSolutionConnection EnableInteractiveSerialConsoleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + EnableInteractiveSerialConsole, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + EnableInteractiveSerialConsoleRequest const& request), + (override)); + + MOCK_METHOD(future>, + EnableInteractiveSerialConsole, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DisableInteractiveSerialConsole, @@ -107,12 +174,38 @@ class MockBareMetalSolutionConnection DisableInteractiveSerialConsoleRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DisableInteractiveSerialConsole, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2:: + DisableInteractiveSerialConsoleRequest const& request), + (override)); + + MOCK_METHOD(future>, + DisableInteractiveSerialConsole, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DetachLun, (google::cloud::baremetalsolution::v2::DetachLunRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DetachLun, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DetachLunRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachLun, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListSSHKeys, (google::cloud::baremetalsolution::v2::ListSSHKeysRequest request), @@ -145,6 +238,18 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, UpdateVolume, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateVolumeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateVolume, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, RenameVolume, (google::cloud::baremetalsolution::v2::RenameVolumeRequest const& @@ -157,12 +262,37 @@ class MockBareMetalSolutionConnection (google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, EvictVolume, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictVolumeRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EvictVolume, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ResizeVolume, (google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, ResizeVolume, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::ResizeVolumeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ResizeVolume, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListNetworks, @@ -187,6 +317,18 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD(StatusOr, UpdateNetwork, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNetworkRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateNetwork, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateVolumeSnapshot, @@ -201,6 +343,20 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, RestoreVolumeSnapshot, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::RestoreVolumeSnapshotRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RestoreVolumeSnapshot, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteVolumeSnapshot, (google::cloud::baremetalsolution::v2::DeleteVolumeSnapshotRequest const& @@ -237,6 +393,19 @@ class MockBareMetalSolutionConnection (google::cloud::baremetalsolution::v2::EvictLunRequest const& request), (override)); + MOCK_METHOD( + StatusOr, EvictLun, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::EvictLunRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EvictLun, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetNfsShare, (google::cloud::baremetalsolution::v2::GetNfsShareRequest const& request), @@ -255,6 +424,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateNfsShare, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::UpdateNfsShareRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateNfsShare, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateNfsShare, @@ -262,6 +444,19 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateNfsShare, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::CreateNfsShareRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateNfsShare, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, RenameNfsShare, (google::cloud::baremetalsolution::v2::RenameNfsShareRequest const& @@ -275,6 +470,20 @@ class MockBareMetalSolutionConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteNfsShare, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::baremetalsolution::v2::DeleteNfsShareRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteNfsShare, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListProvisioningQuotas, diff --git a/google/cloud/batch/v1/batch_client.cc b/google/cloud/batch/v1/batch_client.cc index 4dc0e78bed345..8944899b4bfc8 100644 --- a/google/cloud/batch/v1/batch_client.cc +++ b/google/cloud/batch/v1/batch_client.cc @@ -71,6 +71,16 @@ BatchServiceClient::DeleteJob(std::string const& name, Options opts) { return connection_->DeleteJob(request); } +StatusOr BatchServiceClient::DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::batch::v1::DeleteJobRequest request; + request.set_name(name); + return connection_->DeleteJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BatchServiceClient::DeleteJob( google::cloud::batch::v1::DeleteJobRequest const& request, Options opts) { @@ -78,6 +88,22 @@ BatchServiceClient::DeleteJob( return connection_->DeleteJob(request); } +StatusOr BatchServiceClient::DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BatchServiceClient::DeleteJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteJob(google::cloud::ExperimentalTag{}, operation); +} + StreamRange BatchServiceClient::ListJobs( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/batch/v1/batch_client.h b/google/cloud/batch/v1/batch_client.h index 0a586b9fec47b..a68780b024d27 100644 --- a/google/cloud/batch/v1/batch_client.h +++ b/google/cloud/batch/v1/batch_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BATCH_V1_BATCH_CLIENT_H #include "google/cloud/batch/v1/batch_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -245,6 +247,10 @@ class BatchServiceClient { future> DeleteJob( std::string const& name, Options opts = {}); + StatusOr DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete a Job. @@ -283,6 +289,15 @@ class BatchServiceClient { google::cloud::batch::v1::DeleteJobRequest const& request, Options opts = {}); + StatusOr DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request, + Options opts = {}); + + future> DeleteJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// List all Jobs for a project within a region. 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..cf7a517bfafc0 100644 --- a/google/cloud/batch/v1/internal/batch_connection_impl.cc +++ b/google/cloud/batch/v1/internal/batch_connection_impl.cc @@ -126,6 +126,58 @@ BatchServiceConnectionImpl::DeleteJob( polling_policy(*current), __func__); } +StatusOr BatchServiceConnectionImpl::DeleteJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..43463bdfe8484 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request) override; + + future> DeleteJob( + google::cloud::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..c3498453bc8da 100644 --- a/google/cloud/batch/v1/internal/batch_tracing_connection.cc +++ b/google/cloud/batch/v1/internal/batch_tracing_connection.cc @@ -56,6 +56,28 @@ BatchServiceTracingConnection::DeleteJob( return internal::EndSpan(std::move(span), child_->DeleteJob(request)); } +StatusOr +BatchServiceTracingConnection::DeleteJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BatchServiceTracingConnection::DeleteJob( + google::cloud::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(google::cloud::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..19c77c4ca515a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request) override; + + future> DeleteJob( + google::cloud::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..a1a5e7c279944 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::batch::v1::DeleteJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteJob, + (google::cloud::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_client.cc b/google/cloud/beyondcorp/appconnections/v1/app_connections_client.cc index 1a877333ee754..6555917183f13 100644 --- a/google/cloud/beyondcorp/appconnections/v1/app_connections_client.cc +++ b/google/cloud/beyondcorp/appconnections/v1/app_connections_client.cc @@ -86,6 +86,23 @@ AppConnectionsServiceClient::CreateAppConnection( return connection_->CreateAppConnection(request); } +StatusOr +AppConnectionsServiceClient::CreateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::beyondcorp::appconnections::v1::AppConnection const& + app_connection, + std::string const& app_connection_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appconnections::v1::CreateAppConnectionRequest + request; + request.set_parent(parent); + *request.mutable_app_connection() = app_connection; + request.set_app_connection_id(app_connection_id); + return connection_->CreateAppConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppConnectionsServiceClient::CreateAppConnection( google::cloud::beyondcorp::appconnections::v1:: @@ -95,6 +112,26 @@ AppConnectionsServiceClient::CreateAppConnection( return connection_->CreateAppConnection(request); } +StatusOr +AppConnectionsServiceClient::CreateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAppConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppConnectionsServiceClient::CreateAppConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAppConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> AppConnectionsServiceClient::UpdateAppConnection( google::cloud::beyondcorp::appconnections::v1::AppConnection const& @@ -108,6 +145,21 @@ AppConnectionsServiceClient::UpdateAppConnection( return connection_->UpdateAppConnection(request); } +StatusOr +AppConnectionsServiceClient::UpdateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1::AppConnection const& + app_connection, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appconnections::v1::UpdateAppConnectionRequest + request; + *request.mutable_app_connection() = app_connection; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAppConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppConnectionsServiceClient::UpdateAppConnection( google::cloud::beyondcorp::appconnections::v1:: @@ -117,6 +169,26 @@ AppConnectionsServiceClient::UpdateAppConnection( return connection_->UpdateAppConnection(request); } +StatusOr +AppConnectionsServiceClient::UpdateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAppConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppConnectionsServiceClient::UpdateAppConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAppConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> AppConnectionsServiceClient::DeleteAppConnection(std::string const& name, @@ -128,6 +200,19 @@ AppConnectionsServiceClient::DeleteAppConnection(std::string const& name, return connection_->DeleteAppConnection(request); } +StatusOr +AppConnectionsServiceClient::DeleteAppConnection(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appconnections::v1::DeleteAppConnectionRequest + request; + request.set_name(name); + return connection_->DeleteAppConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppConnectionsServiceClient::DeleteAppConnection( @@ -138,6 +223,27 @@ AppConnectionsServiceClient::DeleteAppConnection( return connection_->DeleteAppConnection(request); } +StatusOr +AppConnectionsServiceClient::DeleteAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAppConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppConnectionsServiceClient::DeleteAppConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAppConnection(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AppConnectionsServiceClient::ResolveAppConnections(std::string const& parent, diff --git a/google/cloud/beyondcorp/appconnections/v1/app_connections_client.h b/google/cloud/beyondcorp/appconnections/v1/app_connections_client.h index e03d1a1e52591..4e1bac780c630 100644 --- a/google/cloud/beyondcorp/appconnections/v1/app_connections_client.h +++ b/google/cloud/beyondcorp/appconnections/v1/app_connections_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BEYONDCORP_APPCONNECTIONS_V1_APP_CONNECTIONS_CLIENT_H #include "google/cloud/beyondcorp/appconnections/v1/app_connections_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -281,6 +283,13 @@ class AppConnectionsServiceClient { app_connection, std::string const& app_connection_id, Options opts = {}); + StatusOr CreateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::beyondcorp::appconnections::v1::AppConnection const& + app_connection, + std::string const& app_connection_id, Options opts = {}); + // clang-format off /// /// Creates a new AppConnection in a given project and location. @@ -320,6 +329,17 @@ class AppConnectionsServiceClient { CreateAppConnectionRequest const& request, Options opts = {}); + StatusOr CreateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request, + Options opts = {}); + + future> + CreateAppConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single AppConnection. @@ -363,6 +383,12 @@ class AppConnectionsServiceClient { app_connection, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1::AppConnection const& + app_connection, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single AppConnection. @@ -402,6 +428,17 @@ class AppConnectionsServiceClient { UpdateAppConnectionRequest const& request, Options opts = {}); + StatusOr UpdateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request, + Options opts = {}); + + future> + UpdateAppConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single AppConnection. @@ -436,6 +473,10 @@ class AppConnectionsServiceClient { AppConnectionOperationMetadata>> DeleteAppConnection(std::string const& name, Options opts = {}); + StatusOr DeleteAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single AppConnection. @@ -476,6 +517,18 @@ class AppConnectionsServiceClient { DeleteAppConnectionRequest const& request, Options opts = {}); + StatusOr DeleteAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request, + Options opts = {}); + + future> + DeleteAppConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resolves AppConnections details for a given AppConnector. 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..020393917b73b 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,62 @@ AppConnectionsServiceConnectionImpl::CreateAppConnection( polling_policy(*current), __func__); } +StatusOr +AppConnectionsServiceConnectionImpl::CreateAppConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +268,62 @@ AppConnectionsServiceConnectionImpl::UpdateAppConnection( polling_policy(*current), __func__); } +StatusOr +AppConnectionsServiceConnectionImpl::UpdateAppConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +367,66 @@ AppConnectionsServiceConnectionImpl::DeleteAppConnection( polling_policy(*current), __func__); } +StatusOr +AppConnectionsServiceConnectionImpl::DeleteAppConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..fad6a9163409d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request) override; + + future> + CreateAppConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAppConnection(google::cloud::beyondcorp::appconnections::v1:: UpdateAppConnectionRequest const& request) override; + StatusOr UpdateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request) override; + + future> + UpdateAppConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppConnection(google::cloud::beyondcorp::appconnections::v1:: DeleteAppConnectionRequest const& request) override; + StatusOr DeleteAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request) override; + + future> + DeleteAppConnection(google::cloud::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..30858cf9dad08 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,33 @@ AppConnectionsServiceTracingConnection::CreateAppConnection( child_->CreateAppConnection(request)); } +StatusOr +AppConnectionsServiceTracingConnection::CreateAppConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppConnectionsServiceTracingConnection::CreateAppConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppConnectionsServiceTracingConnection::UpdateAppConnection( google::cloud::beyondcorp::appconnections::v1:: @@ -85,6 +112,33 @@ AppConnectionsServiceTracingConnection::UpdateAppConnection( child_->UpdateAppConnection(request)); } +StatusOr +AppConnectionsServiceTracingConnection::UpdateAppConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppConnectionsServiceTracingConnection::UpdateAppConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppConnectionsServiceTracingConnection::DeleteAppConnection( @@ -98,6 +152,34 @@ AppConnectionsServiceTracingConnection::DeleteAppConnection( child_->DeleteAppConnection(request)); } +StatusOr +AppConnectionsServiceTracingConnection::DeleteAppConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppConnectionsServiceTracingConnection::DeleteAppConnection( + google::cloud::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(google::cloud::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..d232558943d32 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request) override; + + future> + CreateAppConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAppConnection(google::cloud::beyondcorp::appconnections::v1:: UpdateAppConnectionRequest const& request) override; + StatusOr UpdateAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request) override; + + future> + UpdateAppConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppConnection(google::cloud::beyondcorp::appconnections::v1:: DeleteAppConnectionRequest const& request) override; + StatusOr DeleteAppConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request) override; + + future> + DeleteAppConnection(google::cloud::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..cd1bbf6a4b1b6 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,20 @@ class MockAppConnectionsServiceConnection CreateAppConnectionRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAppConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + CreateAppConnectionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAppConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -79,6 +93,20 @@ class MockAppConnectionsServiceConnection UpdateAppConnectionRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAppConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + UpdateAppConnectionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateAppConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAppConnection, @@ -86,6 +114,19 @@ class MockAppConnectionsServiceConnection DeleteAppConnectionRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAppConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnections::v1:: + DeleteAppConnectionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAppConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), diff --git a/google/cloud/beyondcorp/appconnectors/v1/app_connectors_client.cc b/google/cloud/beyondcorp/appconnectors/v1/app_connectors_client.cc index 652d3d37844dd..fd3721a6601ec 100644 --- a/google/cloud/beyondcorp/appconnectors/v1/app_connectors_client.cc +++ b/google/cloud/beyondcorp/appconnectors/v1/app_connectors_client.cc @@ -84,6 +84,23 @@ AppConnectorsServiceClient::CreateAppConnector( return connection_->CreateAppConnector(request); } +StatusOr +AppConnectorsServiceClient::CreateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::beyondcorp::appconnectors::v1::AppConnector const& + app_connector, + std::string const& app_connector_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appconnectors::v1::CreateAppConnectorRequest + request; + request.set_parent(parent); + *request.mutable_app_connector() = app_connector; + request.set_app_connector_id(app_connector_id); + return connection_->CreateAppConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppConnectorsServiceClient::CreateAppConnector( google::cloud::beyondcorp::appconnectors::v1:: @@ -93,6 +110,26 @@ AppConnectorsServiceClient::CreateAppConnector( return connection_->CreateAppConnector(request); } +StatusOr +AppConnectorsServiceClient::CreateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAppConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppConnectorsServiceClient::CreateAppConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAppConnector(google::cloud::ExperimentalTag{}, + operation); +} + future> AppConnectorsServiceClient::UpdateAppConnector( google::cloud::beyondcorp::appconnectors::v1::AppConnector const& @@ -106,6 +143,21 @@ AppConnectorsServiceClient::UpdateAppConnector( return connection_->UpdateAppConnector(request); } +StatusOr +AppConnectorsServiceClient::UpdateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::AppConnector const& + app_connector, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appconnectors::v1::UpdateAppConnectorRequest + request; + *request.mutable_app_connector() = app_connector; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAppConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppConnectorsServiceClient::UpdateAppConnector( google::cloud::beyondcorp::appconnectors::v1:: @@ -115,6 +167,26 @@ AppConnectorsServiceClient::UpdateAppConnector( return connection_->UpdateAppConnector(request); } +StatusOr +AppConnectorsServiceClient::UpdateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAppConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppConnectorsServiceClient::UpdateAppConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAppConnector(google::cloud::ExperimentalTag{}, + operation); +} + future> AppConnectorsServiceClient::DeleteAppConnector(std::string const& name, @@ -126,6 +198,19 @@ AppConnectorsServiceClient::DeleteAppConnector(std::string const& name, return connection_->DeleteAppConnector(request); } +StatusOr +AppConnectorsServiceClient::DeleteAppConnector(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appconnectors::v1::DeleteAppConnectorRequest + request; + request.set_name(name); + return connection_->DeleteAppConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppConnectorsServiceClient::DeleteAppConnector( @@ -136,6 +221,27 @@ AppConnectorsServiceClient::DeleteAppConnector( return connection_->DeleteAppConnector(request); } +StatusOr +AppConnectorsServiceClient::DeleteAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAppConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppConnectorsServiceClient::DeleteAppConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAppConnector(google::cloud::ExperimentalTag{}, + operation); +} + future> AppConnectorsServiceClient::ReportStatus( std::string const& app_connector, @@ -149,6 +255,21 @@ AppConnectorsServiceClient::ReportStatus( return connection_->ReportStatus(request); } +StatusOr +AppConnectorsServiceClient::ReportStatus( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& app_connector, + google::cloud::beyondcorp::appconnectors::v1::ResourceInfo const& + resource_info, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest request; + request.set_app_connector(app_connector); + *request.mutable_resource_info() = resource_info; + return connection_->ReportStatus(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppConnectorsServiceClient::ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& @@ -158,6 +279,25 @@ AppConnectorsServiceClient::ReportStatus( return connection_->ReportStatus(request); } +StatusOr +AppConnectorsServiceClient::ReportStatus( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReportStatus(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppConnectorsServiceClient::ReportStatus( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReportStatus(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace beyondcorp_appconnectors_v1 } // namespace cloud diff --git a/google/cloud/beyondcorp/appconnectors/v1/app_connectors_client.h b/google/cloud/beyondcorp/appconnectors/v1/app_connectors_client.h index 1152ea9a383ce..c6f8ee953f6ab 100644 --- a/google/cloud/beyondcorp/appconnectors/v1/app_connectors_client.h +++ b/google/cloud/beyondcorp/appconnectors/v1/app_connectors_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BEYONDCORP_APPCONNECTORS_V1_APP_CONNECTORS_CLIENT_H #include "google/cloud/beyondcorp/appconnectors/v1/app_connectors_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -280,6 +282,13 @@ class AppConnectorsServiceClient { app_connector, std::string const& app_connector_id, Options opts = {}); + StatusOr CreateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::beyondcorp::appconnectors::v1::AppConnector const& + app_connector, + std::string const& app_connector_id, Options opts = {}); + // clang-format off /// /// Creates a new AppConnector in a given project and location. @@ -319,6 +328,17 @@ class AppConnectorsServiceClient { CreateAppConnectorRequest const& request, Options opts = {}); + StatusOr CreateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request, + Options opts = {}); + + future> + CreateAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single AppConnector. @@ -360,6 +380,12 @@ class AppConnectorsServiceClient { app_connector, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::AppConnector const& + app_connector, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single AppConnector. @@ -399,6 +425,17 @@ class AppConnectorsServiceClient { UpdateAppConnectorRequest const& request, Options opts = {}); + StatusOr UpdateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request, + Options opts = {}); + + future> + UpdateAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single AppConnector. @@ -433,6 +470,10 @@ class AppConnectorsServiceClient { AppConnectorOperationMetadata>> DeleteAppConnector(std::string const& name, Options opts = {}); + StatusOr DeleteAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single AppConnector. @@ -473,6 +514,18 @@ class AppConnectorsServiceClient { DeleteAppConnectorRequest const& request, Options opts = {}); + StatusOr DeleteAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request, + Options opts = {}); + + future> + DeleteAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Report status for a given connector. @@ -510,6 +563,13 @@ class AppConnectorsServiceClient { resource_info, Options opts = {}); + StatusOr ReportStatus( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& app_connector, + google::cloud::beyondcorp::appconnectors::v1::ResourceInfo const& + resource_info, + Options opts = {}); + // clang-format off /// /// Report status for a given connector. @@ -550,6 +610,17 @@ class AppConnectorsServiceClient { request, Options opts = {}); + StatusOr ReportStatus( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request, + Options opts = {}); + + future> + ReportStatus(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..9184efb7712bb 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,62 @@ AppConnectorsServiceConnectionImpl::CreateAppConnector( polling_policy(*current), __func__); } +StatusOr +AppConnectorsServiceConnectionImpl::CreateAppConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +265,62 @@ AppConnectorsServiceConnectionImpl::UpdateAppConnector( polling_policy(*current), __func__); } +StatusOr +AppConnectorsServiceConnectionImpl::UpdateAppConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +364,65 @@ AppConnectorsServiceConnectionImpl::DeleteAppConnector( polling_policy(*current), __func__); } +StatusOr +AppConnectorsServiceConnectionImpl::DeleteAppConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +463,62 @@ AppConnectorsServiceConnectionImpl::ReportStatus( polling_policy(*current), __func__); } +StatusOr +AppConnectorsServiceConnectionImpl::ReportStatus( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..7eb9b8e6bd02f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request) override; + + future> + CreateAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAppConnector(google::cloud::beyondcorp::appconnectors::v1:: UpdateAppConnectorRequest const& request) override; + StatusOr UpdateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request) override; + + future> + UpdateAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppConnector(google::cloud::beyondcorp::appconnectors::v1:: DeleteAppConnectorRequest const& request) override; + StatusOr DeleteAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request) override; + + future> + DeleteAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& request) override; + StatusOr ReportStatus( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request) override; + + future> + ReportStatus(google::cloud::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..ef3b52d3de9b6 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,33 @@ AppConnectorsServiceTracingConnection::CreateAppConnector( child_->CreateAppConnector(request)); } +StatusOr +AppConnectorsServiceTracingConnection::CreateAppConnector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppConnectorsServiceTracingConnection::CreateAppConnector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppConnectorsServiceTracingConnection::UpdateAppConnector( google::cloud::beyondcorp::appconnectors::v1:: @@ -83,6 +110,33 @@ AppConnectorsServiceTracingConnection::UpdateAppConnector( child_->UpdateAppConnector(request)); } +StatusOr +AppConnectorsServiceTracingConnection::UpdateAppConnector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppConnectorsServiceTracingConnection::UpdateAppConnector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppConnectorsServiceTracingConnection::DeleteAppConnector( @@ -96,6 +150,34 @@ AppConnectorsServiceTracingConnection::DeleteAppConnector( child_->DeleteAppConnector(request)); } +StatusOr +AppConnectorsServiceTracingConnection::DeleteAppConnector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppConnectorsServiceTracingConnection::DeleteAppConnector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppConnectorsServiceTracingConnection::ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& @@ -107,6 +189,33 @@ AppConnectorsServiceTracingConnection::ReportStatus( return internal::EndSpan(std::move(span), child_->ReportStatus(request)); } +StatusOr +AppConnectorsServiceTracingConnection::ReportStatus( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppConnectorsServiceTracingConnection::ReportStatus( + google::cloud::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(google::cloud::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..0b011bfc52210 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request) override; + + future> + CreateAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAppConnector(google::cloud::beyondcorp::appconnectors::v1:: UpdateAppConnectorRequest const& request) override; + StatusOr UpdateAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request) override; + + future> + UpdateAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppConnector(google::cloud::beyondcorp::appconnectors::v1:: DeleteAppConnectorRequest const& request) override; + StatusOr DeleteAppConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request) override; + + future> + DeleteAppConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportStatus( google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& request) override; + StatusOr ReportStatus( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request) override; + + future> + ReportStatus(google::cloud::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..45b33fdb87f68 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,20 @@ class MockAppConnectorsServiceConnection CreateAppConnectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAppConnector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + CreateAppConnectorRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateAppConnector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -77,6 +91,20 @@ class MockAppConnectorsServiceConnection UpdateAppConnectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAppConnector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + UpdateAppConnectorRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpdateAppConnector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAppConnector, @@ -84,6 +112,19 @@ class MockAppConnectorsServiceConnection DeleteAppConnectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAppConnector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1:: + DeleteAppConnectorRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAppConnector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -91,6 +132,21 @@ class MockAppConnectorsServiceConnection (google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ReportStatus, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appconnectors::v1::ReportStatusRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ReportStatus, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/beyondcorp/appgateways/v1/app_gateways_client.cc b/google/cloud/beyondcorp/appgateways/v1/app_gateways_client.cc index c505cafe91890..e153277b45118 100644 --- a/google/cloud/beyondcorp/appgateways/v1/app_gateways_client.cc +++ b/google/cloud/beyondcorp/appgateways/v1/app_gateways_client.cc @@ -79,6 +79,21 @@ AppGatewaysServiceClient::CreateAppGateway( return connection_->CreateAppGateway(request); } +StatusOr +AppGatewaysServiceClient::CreateAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::beyondcorp::appgateways::v1::AppGateway const& app_gateway, + std::string const& app_gateway_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest request; + request.set_parent(parent); + *request.mutable_app_gateway() = app_gateway; + request.set_app_gateway_id(app_gateway_id); + return connection_->CreateAppGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppGatewaysServiceClient::CreateAppGateway( google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& @@ -88,6 +103,26 @@ AppGatewaysServiceClient::CreateAppGateway( return connection_->CreateAppGateway(request); } +StatusOr +AppGatewaysServiceClient::CreateAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAppGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppGatewaysServiceClient::CreateAppGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAppGateway(google::cloud::ExperimentalTag{}, + operation); +} + future> AppGatewaysServiceClient::DeleteAppGateway(std::string const& name, @@ -98,6 +133,18 @@ AppGatewaysServiceClient::DeleteAppGateway(std::string const& name, return connection_->DeleteAppGateway(request); } +StatusOr +AppGatewaysServiceClient::DeleteAppGateway(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest request; + request.set_name(name); + return connection_->DeleteAppGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AppGatewaysServiceClient::DeleteAppGateway( @@ -108,6 +155,27 @@ AppGatewaysServiceClient::DeleteAppGateway( return connection_->DeleteAppGateway(request); } +StatusOr +AppGatewaysServiceClient::DeleteAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAppGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AppGatewaysServiceClient::DeleteAppGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAppGateway(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace beyondcorp_appgateways_v1 } // namespace cloud diff --git a/google/cloud/beyondcorp/appgateways/v1/app_gateways_client.h b/google/cloud/beyondcorp/appgateways/v1/app_gateways_client.h index 5a8a6c0cbea8f..d23762af08eeb 100644 --- a/google/cloud/beyondcorp/appgateways/v1/app_gateways_client.h +++ b/google/cloud/beyondcorp/appgateways/v1/app_gateways_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BEYONDCORP_APPGATEWAYS_V1_APP_GATEWAYS_CLIENT_H #include "google/cloud/beyondcorp/appgateways/v1/app_gateways_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -279,6 +281,12 @@ class AppGatewaysServiceClient { google::cloud::beyondcorp::appgateways::v1::AppGateway const& app_gateway, std::string const& app_gateway_id, Options opts = {}); + StatusOr CreateAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::beyondcorp::appgateways::v1::AppGateway const& app_gateway, + std::string const& app_gateway_id, Options opts = {}); + // clang-format off /// /// Creates a new AppGateway in a given project and location. @@ -319,6 +327,17 @@ class AppGatewaysServiceClient { request, Options opts = {}); + StatusOr CreateAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request, + Options opts = {}); + + future> + CreateAppGateway(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single AppGateway. @@ -353,6 +372,10 @@ class AppGatewaysServiceClient { google::cloud::beyondcorp::appgateways::v1::AppGatewayOperationMetadata>> DeleteAppGateway(std::string const& name, Options opts = {}); + StatusOr DeleteAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single AppGateway. @@ -394,6 +417,18 @@ class AppGatewaysServiceClient { request, Options opts = {}); + StatusOr DeleteAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request, + Options opts = {}); + + future> + DeleteAppGateway(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..86f257830dca8 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,62 @@ AppGatewaysServiceConnectionImpl::CreateAppGateway( polling_policy(*current), __func__); } +StatusOr +AppGatewaysServiceConnectionImpl::CreateAppGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +264,64 @@ AppGatewaysServiceConnectionImpl::DeleteAppGateway( polling_policy(*current), __func__); } +StatusOr +AppGatewaysServiceConnectionImpl::DeleteAppGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..b94e835cdb502 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request) override; + + future> + CreateAppGateway(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppGateway( google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& request) override; + StatusOr DeleteAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request) override; + + future> + DeleteAppGateway(google::cloud::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..42c58e5adc7d0 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,33 @@ AppGatewaysServiceTracingConnection::CreateAppGateway( return internal::EndSpan(std::move(span), child_->CreateAppGateway(request)); } +StatusOr +AppGatewaysServiceTracingConnection::CreateAppGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppGatewaysServiceTracingConnection::CreateAppGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AppGatewaysServiceTracingConnection::DeleteAppGateway( @@ -81,6 +108,34 @@ AppGatewaysServiceTracingConnection::DeleteAppGateway( return internal::EndSpan(std::move(span), child_->DeleteAppGateway(request)); } +StatusOr +AppGatewaysServiceTracingConnection::DeleteAppGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AppGatewaysServiceTracingConnection::DeleteAppGateway( + google::cloud::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(google::cloud::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..ecf904cab344e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::CreateAppGatewayRequest const& + request) override; + + future> + CreateAppGateway(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAppGateway( google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& request) override; + StatusOr DeleteAppGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1::DeleteAppGatewayRequest const& + request) override; + + future> + DeleteAppGateway(google::cloud::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..0ea4768a742bd 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,38 @@ class MockAppGatewaysServiceConnection CreateAppGatewayRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAppGateway, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1:: + CreateAppGatewayRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAppGateway, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAppGateway, (google::cloud::beyondcorp::appgateways::v1:: DeleteAppGatewayRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteAppGateway, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::beyondcorp::appgateways::v1:: + DeleteAppGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAppGateway, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/bigquery/analyticshub/v1/analytics_hub_client.cc b/google/cloud/bigquery/analyticshub/v1/analytics_hub_client.cc index b7dd7bcc9dd06..9c40537a4a32c 100644 --- a/google/cloud/bigquery/analyticshub/v1/analytics_hub_client.cc +++ b/google/cloud/bigquery/analyticshub/v1/analytics_hub_client.cc @@ -264,6 +264,19 @@ AnalyticsHubServiceClient::SubscribeDataExchange(std::string const& name, return connection_->SubscribeDataExchange(request); } +StatusOr +AnalyticsHubServiceClient::SubscribeDataExchange(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::bigquery::analyticshub::v1::SubscribeDataExchangeRequest + request; + request.set_name(name); + return connection_->SubscribeDataExchange( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AnalyticsHubServiceClient::SubscribeDataExchange( @@ -274,6 +287,27 @@ AnalyticsHubServiceClient::SubscribeDataExchange( return connection_->SubscribeDataExchange(request); } +StatusOr +AnalyticsHubServiceClient::SubscribeDataExchange( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SubscribeDataExchange( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AnalyticsHubServiceClient::SubscribeDataExchange( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SubscribeDataExchange(google::cloud::ExperimentalTag{}, + operation); +} + future> AnalyticsHubServiceClient::RefreshSubscription(std::string const& name, @@ -284,6 +318,18 @@ AnalyticsHubServiceClient::RefreshSubscription(std::string const& name, return connection_->RefreshSubscription(request); } +StatusOr +AnalyticsHubServiceClient::RefreshSubscription(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::bigquery::analyticshub::v1::RefreshSubscriptionRequest request; + request.set_name(name); + return connection_->RefreshSubscription(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AnalyticsHubServiceClient::RefreshSubscription( @@ -294,6 +340,27 @@ AnalyticsHubServiceClient::RefreshSubscription( return connection_->RefreshSubscription(request); } +StatusOr +AnalyticsHubServiceClient::RefreshSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1::RefreshSubscriptionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RefreshSubscription(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AnalyticsHubServiceClient::RefreshSubscription( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RefreshSubscription(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AnalyticsHubServiceClient::GetSubscription(std::string const& name, Options opts) { @@ -375,6 +442,18 @@ AnalyticsHubServiceClient::DeleteSubscription(std::string const& name, return connection_->DeleteSubscription(request); } +StatusOr +AnalyticsHubServiceClient::DeleteSubscription(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::bigquery::analyticshub::v1::DeleteSubscriptionRequest request; + request.set_name(name); + return connection_->DeleteSubscription(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AnalyticsHubServiceClient::DeleteSubscription( google::cloud::bigquery::analyticshub::v1::DeleteSubscriptionRequest const& @@ -384,6 +463,26 @@ AnalyticsHubServiceClient::DeleteSubscription( return connection_->DeleteSubscription(request); } +StatusOr +AnalyticsHubServiceClient::DeleteSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1::DeleteSubscriptionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSubscription(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AnalyticsHubServiceClient::DeleteSubscription( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSubscription(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AnalyticsHubServiceClient::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/bigquery/analyticshub/v1/analytics_hub_client.h b/google/cloud/bigquery/analyticshub/v1/analytics_hub_client.h index 0470c05ce9c28..e95ba5ea5f13d 100644 --- a/google/cloud/bigquery/analyticshub/v1/analytics_hub_client.h +++ b/google/cloud/bigquery/analyticshub/v1/analytics_hub_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_ANALYTICSHUB_V1_ANALYTICS_HUB_CLIENT_H #include "google/cloud/bigquery/analyticshub/v1/analytics_hub_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -895,6 +897,10 @@ class AnalyticsHubServiceClient { google::cloud::bigquery::analyticshub::v1::SubscribeDataExchangeResponse>> SubscribeDataExchange(std::string const& name, Options opts = {}); + StatusOr SubscribeDataExchange( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Creates a Subscription to a Data Exchange. This is a long-running operation @@ -936,6 +942,18 @@ class AnalyticsHubServiceClient { SubscribeDataExchangeRequest const& request, Options opts = {}); + StatusOr SubscribeDataExchange( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request, + Options opts = {}); + + future> + SubscribeDataExchange(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Refreshes a Subscription to a Data Exchange. A Data Exchange can become @@ -972,6 +990,10 @@ class AnalyticsHubServiceClient { google::cloud::bigquery::analyticshub::v1::RefreshSubscriptionResponse>> RefreshSubscription(std::string const& name, Options opts = {}); + StatusOr RefreshSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Refreshes a Subscription to a Data Exchange. A Data Exchange can become @@ -1014,6 +1036,18 @@ class AnalyticsHubServiceClient { RefreshSubscriptionRequest const& request, Options opts = {}); + StatusOr RefreshSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request, + Options opts = {}); + + future> + RefreshSubscription(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the details of a Subscription. @@ -1323,6 +1357,10 @@ class AnalyticsHubServiceClient { future> DeleteSubscription(std::string const& name, Options opts = {}); + StatusOr DeleteSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a subscription. @@ -1362,6 +1400,17 @@ class AnalyticsHubServiceClient { DeleteSubscriptionRequest const& request, Options opts = {}); + StatusOr DeleteSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request, + Options opts = {}); + + future> + DeleteSubscription(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the IAM policy. 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..cccfd56f1c0f3 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,64 @@ AnalyticsHubServiceConnectionImpl::SubscribeDataExchange( polling_policy(*current), __func__); } +StatusOr +AnalyticsHubServiceConnectionImpl::SubscribeDataExchange( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +471,64 @@ AnalyticsHubServiceConnectionImpl::RefreshSubscription( polling_policy(*current), __func__); } +StatusOr +AnalyticsHubServiceConnectionImpl::RefreshSubscription( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +678,62 @@ AnalyticsHubServiceConnectionImpl::DeleteSubscription( polling_policy(*current), __func__); } +StatusOr +AnalyticsHubServiceConnectionImpl::DeleteSubscription( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..ce62783294d78 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request) override; + + future> + SubscribeDataExchange( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RefreshSubscription(google::cloud::bigquery::analyticshub::v1:: RefreshSubscriptionRequest const& request) override; + StatusOr RefreshSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request) override; + + future> + RefreshSubscription(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request) override; + + future> + DeleteSubscription(google::cloud::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..fdb2a0e49fa28 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,34 @@ AnalyticsHubServiceTracingConnection::SubscribeDataExchange( child_->SubscribeDataExchange(request)); } +StatusOr +AnalyticsHubServiceTracingConnection::SubscribeDataExchange( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AnalyticsHubServiceTracingConnection::SubscribeDataExchange( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AnalyticsHubServiceTracingConnection::RefreshSubscription( @@ -193,6 +221,34 @@ AnalyticsHubServiceTracingConnection::RefreshSubscription( child_->RefreshSubscription(request)); } +StatusOr +AnalyticsHubServiceTracingConnection::RefreshSubscription( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AnalyticsHubServiceTracingConnection::RefreshSubscription( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AnalyticsHubServiceTracingConnection::GetSubscription( google::cloud::bigquery::analyticshub::v1::GetSubscriptionRequest const& @@ -255,6 +311,33 @@ AnalyticsHubServiceTracingConnection::DeleteSubscription( child_->DeleteSubscription(request)); } +StatusOr +AnalyticsHubServiceTracingConnection::DeleteSubscription( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AnalyticsHubServiceTracingConnection::DeleteSubscription( + google::cloud::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(google::cloud::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..91ce60e5c86ca 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request) override; + + future> + SubscribeDataExchange( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RefreshSubscription(google::cloud::bigquery::analyticshub::v1:: RefreshSubscriptionRequest const& request) override; + StatusOr RefreshSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request) override; + + future> + RefreshSubscription(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request) override; + + future> + DeleteSubscription(google::cloud::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..50c94dd1de199 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + SubscribeDataExchangeRequest const& request), + (override)); + + MOCK_METHOD(future>, + SubscribeDataExchange, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + RefreshSubscriptionRequest const& request), + (override)); + + MOCK_METHOD(future>, + RefreshSubscription, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSubscription, @@ -175,6 +201,20 @@ class MockAnalyticsHubServiceConnection DeleteSubscriptionRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteSubscription, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::bigquery::analyticshub::v1:: + DeleteSubscriptionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSubscription, + (google::cloud::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_client.h b/google/cloud/bigquery/biglake/v1/metastore_client.h index 4b482ef412faf..da45c53a8df21 100644 --- a/google/cloud/bigquery/biglake/v1/metastore_client.h +++ b/google/cloud/bigquery/biglake/v1/metastore_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_BIGLAKE_V1_METASTORE_CLIENT_H #include "google/cloud/bigquery/biglake/v1/metastore_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/bigquery/connection/v1/connection_client.h index 9e9803d853fa8..20e1ca31e6330 100644 --- a/google/cloud/bigquery/connection/v1/connection_client.h +++ b/google/cloud/bigquery/connection/v1/connection_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_CONNECTION_V1_CONNECTION_CLIENT_H #include "google/cloud/bigquery/connection/v1/connection_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/bigquery/datapolicies/v1/data_policy_client.h index 1fb00b0c98685..f33102b956dbc 100644 --- a/google/cloud/bigquery/datapolicies/v1/data_policy_client.h +++ b/google/cloud/bigquery/datapolicies/v1/data_policy_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_DATAPOLICIES_V1_DATA_POLICY_CLIENT_H #include "google/cloud/bigquery/datapolicies/v1/data_policy_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/bigquery/datatransfer/v1/data_transfer_client.h index 3ffa31c0cd7c2..fab72338c079e 100644 --- a/google/cloud/bigquery/datatransfer/v1/data_transfer_client.h +++ b/google/cloud/bigquery/datatransfer/v1/data_transfer_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_DATATRANSFER_V1_DATA_TRANSFER_CLIENT_H #include "google/cloud/bigquery/datatransfer/v1/data_transfer_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/bigquery/migration/v2/migration_client.h index 72eb4441e5434..cd8f369e4886a 100644 --- a/google/cloud/bigquery/migration/v2/migration_client.h +++ b/google/cloud/bigquery/migration/v2/migration_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_MIGRATION_V2_MIGRATION_CLIENT_H #include "google/cloud/bigquery/migration/v2/migration_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/bigquery/reservation/v1/reservation_client.h index 09763a1593f14..2275efebd3d99 100644 --- a/google/cloud/bigquery/reservation/v1/reservation_client.h +++ b/google/cloud/bigquery/reservation/v1/reservation_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_RESERVATION_V1_RESERVATION_CLIENT_H #include "google/cloud/bigquery/reservation/v1/reservation_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/bigquery/storage/v1/bigquery_read_client.h index 56401e1ded856..b73a1f3859e9a 100644 --- a/google/cloud/bigquery/storage/v1/bigquery_read_client.h +++ b/google/cloud/bigquery/storage/v1/bigquery_read_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_STORAGE_V1_BIGQUERY_READ_CLIENT_H #include "google/cloud/bigquery/storage/v1/bigquery_read_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/bigquery/storage/v1/bigquery_write_client.h index 4c722f7c152c6..0d220395bb3cb 100644 --- a/google/cloud/bigquery/storage/v1/bigquery_write_client.h +++ b/google/cloud/bigquery/storage/v1/bigquery_write_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGQUERY_STORAGE_V1_BIGQUERY_WRITE_CLIENT_H #include "google/cloud/bigquery/storage/v1/bigquery_write_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/bigtable/admin/bigtable_instance_admin_client.cc index e6261e268fe53..3cedccd3e820a 100644 --- a/google/cloud/bigtable/admin/bigtable_instance_admin_client.cc +++ b/google/cloud/bigtable/admin/bigtable_instance_admin_client.cc @@ -49,6 +49,23 @@ BigtableInstanceAdminClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr +BigtableInstanceAdminClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& instance_id, + google::bigtable::admin::v2::Instance const& instance, + std::map const& clusters, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::CreateInstanceRequest request; + request.set_parent(parent); + request.set_instance_id(instance_id); + *request.mutable_instance() = instance; + *request.mutable_clusters() = {clusters.begin(), clusters.end()}; + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BigtableInstanceAdminClient::CreateInstance( google::bigtable::admin::v2::CreateInstanceRequest const& request, @@ -57,6 +74,25 @@ BigtableInstanceAdminClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr +BigtableInstanceAdminClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableInstanceAdminClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BigtableInstanceAdminClient::GetInstance(std::string const& name, Options opts) { @@ -109,6 +145,19 @@ BigtableInstanceAdminClient::PartialUpdateInstance( return connection_->PartialUpdateInstance(request); } +StatusOr +BigtableInstanceAdminClient::PartialUpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::PartialUpdateInstanceRequest request; + *request.mutable_instance() = instance; + *request.mutable_update_mask() = update_mask; + return connection_->PartialUpdateInstance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BigtableInstanceAdminClient::PartialUpdateInstance( google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request, @@ -117,6 +166,25 @@ BigtableInstanceAdminClient::PartialUpdateInstance( return connection_->PartialUpdateInstance(request); } +StatusOr +BigtableInstanceAdminClient::PartialUpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PartialUpdateInstance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableInstanceAdminClient::PartialUpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PartialUpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + Status BigtableInstanceAdminClient::DeleteInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -144,6 +212,20 @@ BigtableInstanceAdminClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr +BigtableInstanceAdminClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& cluster_id, + google::bigtable::admin::v2::Cluster const& cluster, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::CreateClusterRequest request; + request.set_parent(parent); + request.set_cluster_id(cluster_id); + *request.mutable_cluster() = cluster; + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BigtableInstanceAdminClient::CreateCluster( google::bigtable::admin::v2::CreateClusterRequest const& request, @@ -152,6 +234,25 @@ BigtableInstanceAdminClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr +BigtableInstanceAdminClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableInstanceAdminClient::CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BigtableInstanceAdminClient::GetCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -192,6 +293,24 @@ BigtableInstanceAdminClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr +BigtableInstanceAdminClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableInstanceAdminClient::UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> BigtableInstanceAdminClient::PartialUpdateCluster( google::bigtable::admin::v2::Cluster const& cluster, @@ -203,6 +322,19 @@ BigtableInstanceAdminClient::PartialUpdateCluster( return connection_->PartialUpdateCluster(request); } +StatusOr +BigtableInstanceAdminClient::PartialUpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::PartialUpdateClusterRequest request; + *request.mutable_cluster() = cluster; + *request.mutable_update_mask() = update_mask; + return connection_->PartialUpdateCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BigtableInstanceAdminClient::PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request, @@ -211,6 +343,25 @@ BigtableInstanceAdminClient::PartialUpdateCluster( return connection_->PartialUpdateCluster(request); } +StatusOr +BigtableInstanceAdminClient::PartialUpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PartialUpdateCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableInstanceAdminClient::PartialUpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PartialUpdateCluster(google::cloud::ExperimentalTag{}, + operation); +} + Status BigtableInstanceAdminClient::DeleteCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -290,6 +441,19 @@ BigtableInstanceAdminClient::UpdateAppProfile( return connection_->UpdateAppProfile(request); } +StatusOr +BigtableInstanceAdminClient::UpdateAppProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::AppProfile const& app_profile, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::UpdateAppProfileRequest request; + *request.mutable_app_profile() = app_profile; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAppProfile(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BigtableInstanceAdminClient::UpdateAppProfile( google::bigtable::admin::v2::UpdateAppProfileRequest const& request, @@ -298,6 +462,25 @@ BigtableInstanceAdminClient::UpdateAppProfile( return connection_->UpdateAppProfile(request); } +StatusOr +BigtableInstanceAdminClient::UpdateAppProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAppProfile(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableInstanceAdminClient::UpdateAppProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAppProfile(google::cloud::ExperimentalTag{}, + operation); +} + Status BigtableInstanceAdminClient::DeleteAppProfile( google::bigtable::admin::v2::DeleteAppProfileRequest const& request, Options opts) { diff --git a/google/cloud/bigtable/admin/bigtable_instance_admin_client.h b/google/cloud/bigtable/admin/bigtable_instance_admin_client.h index 7293c3c6073bf..40cc6e6408471 100644 --- a/google/cloud/bigtable/admin/bigtable_instance_admin_client.h +++ b/google/cloud/bigtable/admin/bigtable_instance_admin_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGTABLE_ADMIN_BIGTABLE_INSTANCE_ADMIN_CLIENT_H #include "google/cloud/bigtable/admin/bigtable_instance_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -147,6 +149,14 @@ class BigtableInstanceAdminClient { clusters, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& instance_id, + google::bigtable::admin::v2::Instance const& instance, + std::map const& + clusters, + Options opts = {}); + // clang-format off /// /// Create an instance within a project. @@ -191,6 +201,15 @@ class BigtableInstanceAdminClient { google::bigtable::admin::v2::CreateInstanceRequest const& request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request, + Options opts = {}); + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets information about an instance. @@ -372,6 +391,11 @@ class BigtableInstanceAdminClient { google::bigtable::admin::v2::Instance const& instance, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr PartialUpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Partially updates an instance within a project. This method can modify all @@ -411,6 +435,15 @@ class BigtableInstanceAdminClient { google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request, Options opts = {}); + StatusOr PartialUpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request, + Options opts = {}); + + future> PartialUpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Delete an instance from a project. @@ -506,6 +539,11 @@ class BigtableInstanceAdminClient { std::string const& parent, std::string const& cluster_id, google::bigtable::admin::v2::Cluster const& cluster, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& cluster_id, + google::bigtable::admin::v2::Cluster const& cluster, Options opts = {}); + // clang-format off /// /// Creates a cluster within an instance. @@ -550,6 +588,15 @@ class BigtableInstanceAdminClient { google::bigtable::admin::v2::CreateClusterRequest const& request, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request, + Options opts = {}); + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets information about a cluster. @@ -707,6 +754,14 @@ class BigtableInstanceAdminClient { future> UpdateCluster( google::bigtable::admin::v2::Cluster const& request, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request, Options opts = {}); + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Partially updates a cluster within a project. This method is the preferred @@ -753,6 +808,11 @@ class BigtableInstanceAdminClient { google::bigtable::admin::v2::Cluster const& cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr PartialUpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Partially updates a cluster within a project. This method is the preferred @@ -802,6 +862,15 @@ class BigtableInstanceAdminClient { google::bigtable::admin::v2::PartialUpdateClusterRequest const& request, Options opts = {}); + StatusOr PartialUpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request, + Options opts = {}); + + future> PartialUpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a cluster from an instance. @@ -1086,6 +1155,11 @@ class BigtableInstanceAdminClient { google::bigtable::admin::v2::AppProfile const& app_profile, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAppProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::AppProfile const& app_profile, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an app profile within an instance. @@ -1124,6 +1198,15 @@ class BigtableInstanceAdminClient { google::bigtable::admin::v2::UpdateAppProfileRequest const& request, Options opts = {}); + StatusOr UpdateAppProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request, + Options opts = {}); + + future> UpdateAppProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an app profile from an instance. 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_client.cc b/google/cloud/bigtable/admin/bigtable_table_admin_client.cc index 1481d7a887de0..fa97d531d0378 100644 --- a/google/cloud/bigtable/admin/bigtable_table_admin_client.cc +++ b/google/cloud/bigtable/admin/bigtable_table_admin_client.cc @@ -94,6 +94,18 @@ BigtableTableAdminClient::UpdateTable( return connection_->UpdateTable(request); } +StatusOr BigtableTableAdminClient::UpdateTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Table const& table, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::UpdateTableRequest request; + *request.mutable_table() = table; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTable(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BigtableTableAdminClient::UpdateTable( google::bigtable::admin::v2::UpdateTableRequest const& request, @@ -102,6 +114,23 @@ BigtableTableAdminClient::UpdateTable( return connection_->UpdateTable(request); } +StatusOr BigtableTableAdminClient::UpdateTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTable(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableTableAdminClient::UpdateTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTable(google::cloud::ExperimentalTag{}, operation); +} + Status BigtableTableAdminClient::DeleteTable(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -125,6 +154,17 @@ BigtableTableAdminClient::UndeleteTable(std::string const& name, Options opts) { return connection_->UndeleteTable(request); } +StatusOr +BigtableTableAdminClient::UndeleteTable(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::UndeleteTableRequest request; + request.set_name(name); + return connection_->UndeleteTable(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BigtableTableAdminClient::UndeleteTable( google::bigtable::admin::v2::UndeleteTableRequest const& request, @@ -133,6 +173,25 @@ BigtableTableAdminClient::UndeleteTable( return connection_->UndeleteTable(request); } +StatusOr +BigtableTableAdminClient::UndeleteTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteTable(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableTableAdminClient::UndeleteTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteTable(google::cloud::ExperimentalTag{}, + operation); +} + future> BigtableTableAdminClient::CreateAuthorizedView( std::string const& parent, @@ -146,6 +205,21 @@ BigtableTableAdminClient::CreateAuthorizedView( return connection_->CreateAuthorizedView(request); } +StatusOr +BigtableTableAdminClient::CreateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::bigtable::admin::v2::AuthorizedView const& authorized_view, + std::string const& authorized_view_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::CreateAuthorizedViewRequest request; + request.set_parent(parent); + *request.mutable_authorized_view() = authorized_view; + request.set_authorized_view_id(authorized_view_id); + return connection_->CreateAuthorizedView( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BigtableTableAdminClient::CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request, @@ -154,6 +228,25 @@ BigtableTableAdminClient::CreateAuthorizedView( return connection_->CreateAuthorizedView(request); } +StatusOr +BigtableTableAdminClient::CreateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAuthorizedView( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableTableAdminClient::CreateAuthorizedView( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAuthorizedView(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange BigtableTableAdminClient::ListAuthorizedViews(std::string const& parent, Options opts) { @@ -199,6 +292,19 @@ BigtableTableAdminClient::UpdateAuthorizedView( return connection_->UpdateAuthorizedView(request); } +StatusOr +BigtableTableAdminClient::UpdateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::AuthorizedView const& authorized_view, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::UpdateAuthorizedViewRequest request; + *request.mutable_authorized_view() = authorized_view; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAuthorizedView( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BigtableTableAdminClient::UpdateAuthorizedView( google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request, @@ -207,6 +313,25 @@ BigtableTableAdminClient::UpdateAuthorizedView( return connection_->UpdateAuthorizedView(request); } +StatusOr +BigtableTableAdminClient::UpdateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAuthorizedView( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableTableAdminClient::UpdateAuthorizedView( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAuthorizedView(google::cloud::ExperimentalTag{}, + operation); +} + Status BigtableTableAdminClient::DeleteAuthorizedView(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -299,6 +424,19 @@ BigtableTableAdminClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr BigtableTableAdminClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& backup_id, + google::bigtable::admin::v2::Backup const& backup, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::CreateBackupRequest request; + request.set_parent(parent); + request.set_backup_id(backup_id); + *request.mutable_backup() = backup; + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BigtableTableAdminClient::CreateBackup( google::bigtable::admin::v2::CreateBackupRequest const& request, @@ -307,6 +445,23 @@ BigtableTableAdminClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr BigtableTableAdminClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableTableAdminClient::CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, operation); +} + StatusOr BigtableTableAdminClient::GetBackup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -380,6 +535,23 @@ BigtableTableAdminClient::RestoreTable( return connection_->RestoreTable(request); } +StatusOr BigtableTableAdminClient::RestoreTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreTable(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableTableAdminClient::RestoreTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreTable(google::cloud::ExperimentalTag{}, operation); +} + future> BigtableTableAdminClient::CopyBackup( std::string const& parent, std::string const& backup_id, @@ -394,6 +566,21 @@ BigtableTableAdminClient::CopyBackup( return connection_->CopyBackup(request); } +StatusOr BigtableTableAdminClient::CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& backup_id, + std::string const& source_backup, + google::protobuf::Timestamp const& expire_time, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::bigtable::admin::v2::CopyBackupRequest request; + request.set_parent(parent); + request.set_backup_id(backup_id); + request.set_source_backup(source_backup); + *request.mutable_expire_time() = expire_time; + return connection_->CopyBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BigtableTableAdminClient::CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request, @@ -402,6 +589,23 @@ BigtableTableAdminClient::CopyBackup( return connection_->CopyBackup(request); } +StatusOr BigtableTableAdminClient::CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CopyBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BigtableTableAdminClient::CopyBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CopyBackup(google::cloud::ExperimentalTag{}, operation); +} + StatusOr BigtableTableAdminClient::GetIamPolicy( std::string const& resource, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/bigtable/admin/bigtable_table_admin_client.h b/google/cloud/bigtable/admin/bigtable_table_admin_client.h index 7ebe3126e7a8f..9fd41033b921e 100644 --- a/google/cloud/bigtable/admin/bigtable_table_admin_client.h +++ b/google/cloud/bigtable/admin/bigtable_table_admin_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BIGTABLE_ADMIN_BIGTABLE_TABLE_ADMIN_CLIENT_H #include "google/cloud/bigtable/admin/bigtable_table_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -340,6 +342,11 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::Table const& table, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Table const& table, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a specified table. @@ -378,6 +385,15 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::UpdateTableRequest const& request, Options opts = {}); + StatusOr UpdateTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request, + Options opts = {}); + + future> UpdateTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Permanently deletes a specified table and all of its data. @@ -463,6 +479,10 @@ class BigtableTableAdminClient { future> UndeleteTable( std::string const& name, Options opts = {}); + StatusOr UndeleteTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Restores a specified table which was accidentally deleted. @@ -501,6 +521,15 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::UndeleteTableRequest const& request, Options opts = {}); + StatusOr UndeleteTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request, + Options opts = {}); + + future> UndeleteTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a new AuthorizedView in a table. @@ -543,6 +572,12 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::AuthorizedView const& authorized_view, std::string const& authorized_view_id, Options opts = {}); + StatusOr CreateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::bigtable::admin::v2::AuthorizedView const& authorized_view, + std::string const& authorized_view_id, Options opts = {}); + // clang-format off /// /// Creates a new AuthorizedView in a table. @@ -582,6 +617,16 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request, Options opts = {}); + StatusOr CreateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request, + Options opts = {}); + + future> + CreateAuthorizedView(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all AuthorizedViews from a specific table. @@ -760,6 +805,11 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::AuthorizedView const& authorized_view, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::AuthorizedView const& authorized_view, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an AuthorizedView in a table. @@ -799,6 +849,16 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request, Options opts = {}); + StatusOr UpdateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request, + Options opts = {}); + + future> + UpdateAuthorizedView(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Permanently deletes a specified AuthorizedView. @@ -1135,6 +1195,11 @@ class BigtableTableAdminClient { std::string const& parent, std::string const& backup_id, google::bigtable::admin::v2::Backup const& backup, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& backup_id, + google::bigtable::admin::v2::Backup const& backup, Options opts = {}); + // clang-format off /// /// Starts creating a new Cloud Bigtable Backup. The returned backup @@ -1184,6 +1249,15 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::CreateBackupRequest const& request, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request, + Options opts = {}); + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets metadata on a pending or completed Cloud Bigtable Backup. @@ -1485,6 +1559,15 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::RestoreTableRequest const& request, Options opts = {}); + StatusOr RestoreTable( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request, + Options opts = {}); + + future> RestoreTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Copy a Cloud Bigtable backup to a new backup in the destination cluster @@ -1540,6 +1623,12 @@ class BigtableTableAdminClient { std::string const& source_backup, google::protobuf::Timestamp const& expire_time, Options opts = {}); + StatusOr CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& backup_id, + std::string const& source_backup, + google::protobuf::Timestamp const& expire_time, Options opts = {}); + // clang-format off /// /// Copy a Cloud Bigtable backup to a new backup in the destination cluster @@ -1579,6 +1668,15 @@ class BigtableTableAdminClient { google::bigtable::admin::v2::CopyBackupRequest const& request, Options opts = {}); + StatusOr CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request, + Options opts = {}); + + future> CopyBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the access control policy for a Table or Backup resource. 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..bb7f83c16df5b 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,60 @@ BigtableInstanceAdminConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +246,60 @@ BigtableInstanceAdminConnectionImpl::PartialUpdateInstance( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::PartialUpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +353,58 @@ BigtableInstanceAdminConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +471,58 @@ BigtableInstanceAdminConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +563,60 @@ BigtableInstanceAdminConnectionImpl::PartialUpdateCluster( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::PartialUpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +733,60 @@ BigtableInstanceAdminConnectionImpl::UpdateAppProfile( polling_policy(*current), __func__); } +StatusOr +BigtableInstanceAdminConnectionImpl::UpdateAppProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..5700ce29483ae 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request) + override; + + future> PartialUpdateInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request) override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) override; + StatusOr PartialUpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) + override; + + future> PartialUpdateCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request) + override; + + future> UpdateAppProfile( + google::cloud::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..aba9627852e2e 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,30 @@ BigtableInstanceAdminTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BigtableInstanceAdminTracingConnection::GetInstance( google::bigtable::admin::v2::GetInstanceRequest const& request) { @@ -79,6 +103,30 @@ BigtableInstanceAdminTracingConnection::PartialUpdateInstance( child_->PartialUpdateInstance(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::PartialUpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::PartialUpdateInstance( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status BigtableInstanceAdminTracingConnection::DeleteInstance( google::bigtable::admin::v2::DeleteInstanceRequest const& request) { auto span = internal::MakeSpan( @@ -96,6 +144,30 @@ BigtableInstanceAdminTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::CreateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BigtableInstanceAdminTracingConnection::GetCluster( google::bigtable::admin::v2::GetClusterRequest const& request) { @@ -123,6 +195,30 @@ BigtableInstanceAdminTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::UpdateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BigtableInstanceAdminTracingConnection::PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) { @@ -133,6 +229,30 @@ BigtableInstanceAdminTracingConnection::PartialUpdateCluster( child_->PartialUpdateCluster(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::PartialUpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::PartialUpdateCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status BigtableInstanceAdminTracingConnection::DeleteCluster( google::bigtable::admin::v2::DeleteClusterRequest const& request) { auto span = internal::MakeSpan( @@ -179,6 +299,30 @@ BigtableInstanceAdminTracingConnection::UpdateAppProfile( return internal::EndSpan(std::move(span), child_->UpdateAppProfile(request)); } +StatusOr +BigtableInstanceAdminTracingConnection::UpdateAppProfile( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableInstanceAdminTracingConnection::UpdateAppProfile( + google::cloud::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(google::cloud::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..958cfc6de6c40 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& request) + override; + + future> PartialUpdateInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request) override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PartialUpdateCluster( google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) override; + StatusOr PartialUpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request) + override; + + future> PartialUpdateCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request) + override; + + future> UpdateAppProfile( + google::cloud::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..cd53f4ffa6ffb 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,58 @@ BigtableTableAdminConnectionImpl::UpdateTable( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::UpdateTable( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +274,58 @@ BigtableTableAdminConnectionImpl::UndeleteTable( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::UndeleteTable( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +366,61 @@ BigtableTableAdminConnectionImpl::CreateAuthorizedView( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::CreateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +511,61 @@ BigtableTableAdminConnectionImpl::UpdateAuthorizedView( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::UpdateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +678,58 @@ BigtableTableAdminConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +844,58 @@ BigtableTableAdminConnectionImpl::RestoreTable( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::RestoreTable( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +935,58 @@ BigtableTableAdminConnectionImpl::CopyBackup( polling_policy(*current), __func__); } +StatusOr +BigtableTableAdminConnectionImpl::CopyBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..a3d3c3164348b 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request) override; + + future> UpdateTable( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request) + override; + + future> UndeleteTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) override; + StatusOr CreateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) + override; + + future> + CreateAuthorizedView( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request) + override; + + future> + UpdateAuthorizedView( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request) override; + + future> CreateBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request) override; + + future> RestoreTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request) override; + + future> CopyBackup( + google::cloud::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..43aa9119b8159 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,30 @@ BigtableTableAdminTracingConnection::UpdateTable( return internal::EndSpan(std::move(span), child_->UpdateTable(request)); } +StatusOr +BigtableTableAdminTracingConnection::UpdateTable( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::UpdateTable( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + Status BigtableTableAdminTracingConnection::DeleteTable( google::bigtable::admin::v2::DeleteTableRequest const& request) { auto span = internal::MakeSpan( @@ -88,6 +112,30 @@ BigtableTableAdminTracingConnection::UndeleteTable( return internal::EndSpan(std::move(span), child_->UndeleteTable(request)); } +StatusOr +BigtableTableAdminTracingConnection::UndeleteTable( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::UndeleteTable( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BigtableTableAdminTracingConnection::CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) { @@ -98,6 +146,30 @@ BigtableTableAdminTracingConnection::CreateAuthorizedView( child_->CreateAuthorizedView(request)); } +StatusOr +BigtableTableAdminTracingConnection::CreateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::CreateAuthorizedView( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BigtableTableAdminTracingConnection::ListAuthorizedViews( google::bigtable::admin::v2::ListAuthorizedViewsRequest request) { @@ -129,6 +201,30 @@ BigtableTableAdminTracingConnection::UpdateAuthorizedView( child_->UpdateAuthorizedView(request)); } +StatusOr +BigtableTableAdminTracingConnection::UpdateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::UpdateAuthorizedView( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status BigtableTableAdminTracingConnection::DeleteAuthorizedView( google::bigtable::admin::v2::DeleteAuthorizedViewRequest const& request) { auto span = internal::MakeSpan( @@ -182,6 +278,30 @@ BigtableTableAdminTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +BigtableTableAdminTracingConnection::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::CreateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BigtableTableAdminTracingConnection::GetBackup( google::bigtable::admin::v2::GetBackupRequest const& request) { @@ -228,6 +348,30 @@ BigtableTableAdminTracingConnection::RestoreTable( return internal::EndSpan(std::move(span), child_->RestoreTable(request)); } +StatusOr +BigtableTableAdminTracingConnection::RestoreTable( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::RestoreTable( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BigtableTableAdminTracingConnection::CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request) { @@ -237,6 +381,30 @@ BigtableTableAdminTracingConnection::CopyBackup( return internal::EndSpan(std::move(span), child_->CopyBackup(request)); } +StatusOr +BigtableTableAdminTracingConnection::CopyBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BigtableTableAdminTracingConnection::CopyBackup( + google::cloud::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(google::cloud::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..d1a355e98a856 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request) override; + + future> UpdateTable( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request) + override; + + future> UndeleteTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAuthorizedView( google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) override; + StatusOr CreateAuthorizedView( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request) + override; + + future> + CreateAuthorizedView( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request) + override; + + future> + UpdateAuthorizedView( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request) override; + + future> CreateBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request) override; + + future> RestoreTable( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::bigtable::admin::v2::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request) override; + + future> CopyBackup( + google::cloud::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..102dafa63b0f0 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PartialUpdateInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::Cluster const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PartialUpdateCluster, (google::bigtable::admin::v2::PartialUpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PartialUpdateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::PartialUpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + PartialUpdateCluster, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAppProfileRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAppProfile, + (google::cloud::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..9cfee483623a1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateTableRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateTable, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UndeleteTableRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeleteTable, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateAuthorizedView, (google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateAuthorizedView, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateAuthorizedViewRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateAuthorizedView, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::UpdateAuthorizedViewRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAuthorizedView, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::RestoreTableRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestoreTable, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CopyBackup, (google::bigtable::admin::v2::CopyBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, CopyBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::bigtable::admin::v2::CopyBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, CopyBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetIamPolicy, (google::iam::v1::GetIamPolicyRequest const& request), (override)); diff --git a/google/cloud/billing/budgets/v1/budget_client.h b/google/cloud/billing/budgets/v1/budget_client.h index 8a2f883d844e1..4540c02afb0bd 100644 --- a/google/cloud/billing/budgets/v1/budget_client.h +++ b/google/cloud/billing/budgets/v1/budget_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BILLING_BUDGETS_V1_BUDGET_CLIENT_H #include "google/cloud/billing/budgets/v1/budget_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/billing/v1/cloud_billing_client.h index 9c4dd6c24268a..067b1b7975adf 100644 --- a/google/cloud/billing/v1/cloud_billing_client.h +++ b/google/cloud/billing/v1/cloud_billing_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BILLING_V1_CLOUD_BILLING_CLIENT_H #include "google/cloud/billing/v1/cloud_billing_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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_client.h b/google/cloud/billing/v1/cloud_catalog_client.h index ab6ac771bf973..5e24378a9adcb 100644 --- a/google/cloud/billing/v1/cloud_catalog_client.h +++ b/google/cloud/billing/v1/cloud_catalog_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BILLING_V1_CLOUD_CATALOG_CLIENT_H #include "google/cloud/billing/v1/cloud_catalog_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/binaryauthorization/v1/binauthz_management_service_v1_client.h index 9eef9d3e81f69..9041f76ccb9b3 100644 --- a/google/cloud/binaryauthorization/v1/binauthz_management_service_v1_client.h +++ b/google/cloud/binaryauthorization/v1/binauthz_management_service_v1_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BINARYAUTHORIZATION_V1_BINAUTHZ_MANAGEMENT_SERVICE_V1_CLIENT_H #include "google/cloud/binaryauthorization/v1/binauthz_management_service_v1_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/binaryauthorization/v1/system_policy_v1_client.h index 9189ce494e165..b3ab5e9d9bc7d 100644 --- a/google/cloud/binaryauthorization/v1/system_policy_v1_client.h +++ b/google/cloud/binaryauthorization/v1/system_policy_v1_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BINARYAUTHORIZATION_V1_SYSTEM_POLICY_V1_CLIENT_H #include "google/cloud/binaryauthorization/v1/system_policy_v1_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/binaryauthorization/v1/validation_helper_v1_client.h index 712c97a383933..3001eff16c993 100644 --- a/google/cloud/binaryauthorization/v1/validation_helper_v1_client.h +++ b/google/cloud/binaryauthorization/v1/validation_helper_v1_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_BINARYAUTHORIZATION_V1_VALIDATION_HELPER_V1_CLIENT_H #include "google/cloud/binaryauthorization/v1/validation_helper_v1_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/certificatemanager/v1/certificate_manager_client.cc index 0580f029384d0..d286f5d23881b 100644 --- a/google/cloud/certificatemanager/v1/certificate_manager_client.cc +++ b/google/cloud/certificatemanager/v1/certificate_manager_client.cc @@ -79,6 +79,21 @@ CertificateManagerClient::CreateCertificate( return connection_->CreateCertificate(request); } +StatusOr +CertificateManagerClient::CreateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::Certificate const& certificate, + std::string const& certificate_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::CreateCertificateRequest request; + request.set_parent(parent); + *request.mutable_certificate() = certificate; + request.set_certificate_id(certificate_id); + return connection_->CreateCertificate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::CreateCertificate( google::cloud::certificatemanager::v1::CreateCertificateRequest const& @@ -88,6 +103,26 @@ CertificateManagerClient::CreateCertificate( return connection_->CreateCertificate(request); } +StatusOr +CertificateManagerClient::CreateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::CreateCertificate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificate(google::cloud::ExperimentalTag{}, + operation); +} + future> CertificateManagerClient::UpdateCertificate( google::cloud::certificatemanager::v1::Certificate const& certificate, @@ -99,6 +134,19 @@ CertificateManagerClient::UpdateCertificate( return connection_->UpdateCertificate(request); } +StatusOr +CertificateManagerClient::UpdateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::Certificate const& certificate, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::UpdateCertificateRequest request; + *request.mutable_certificate() = certificate; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCertificate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& @@ -108,6 +156,26 @@ CertificateManagerClient::UpdateCertificate( return connection_->UpdateCertificate(request); } +StatusOr +CertificateManagerClient::UpdateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::UpdateCertificate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificate(google::cloud::ExperimentalTag{}, + operation); +} + future> CertificateManagerClient::DeleteCertificate(std::string const& name, Options opts) { @@ -117,6 +185,18 @@ CertificateManagerClient::DeleteCertificate(std::string const& name, return connection_->DeleteCertificate(request); } +StatusOr +CertificateManagerClient::DeleteCertificate(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::DeleteCertificateRequest request; + request.set_name(name); + return connection_->DeleteCertificate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& @@ -126,6 +206,26 @@ CertificateManagerClient::DeleteCertificate( return connection_->DeleteCertificate(request); } +StatusOr +CertificateManagerClient::DeleteCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::DeleteCertificate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificate(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CertificateManagerClient::ListCertificateMaps(std::string const& parent, Options opts) { @@ -175,6 +275,22 @@ CertificateManagerClient::CreateCertificateMap( return connection_->CreateCertificateMap(request); } +StatusOr +CertificateManagerClient::CreateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::CertificateMap const& + certificate_map, + std::string const& certificate_map_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::CreateCertificateMapRequest request; + request.set_parent(parent); + *request.mutable_certificate_map() = certificate_map; + request.set_certificate_map_id(certificate_map_id); + return connection_->CreateCertificateMap( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::CreateCertificateMap( google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& @@ -184,6 +300,26 @@ CertificateManagerClient::CreateCertificateMap( return connection_->CreateCertificateMap(request); } +StatusOr +CertificateManagerClient::CreateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateMap( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::CreateCertificateMap( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateMap(google::cloud::ExperimentalTag{}, + operation); +} + future> CertificateManagerClient::UpdateCertificateMap( google::cloud::certificatemanager::v1::CertificateMap const& @@ -196,6 +332,20 @@ CertificateManagerClient::UpdateCertificateMap( return connection_->UpdateCertificateMap(request); } +StatusOr +CertificateManagerClient::UpdateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CertificateMap const& + certificate_map, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest request; + *request.mutable_certificate_map() = certificate_map; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCertificateMap( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& @@ -205,6 +355,26 @@ CertificateManagerClient::UpdateCertificateMap( return connection_->UpdateCertificateMap(request); } +StatusOr +CertificateManagerClient::UpdateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateMap( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::UpdateCertificateMap( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateMap(google::cloud::ExperimentalTag{}, + operation); +} + future> CertificateManagerClient::DeleteCertificateMap(std::string const& name, Options opts) { @@ -214,6 +384,18 @@ CertificateManagerClient::DeleteCertificateMap(std::string const& name, return connection_->DeleteCertificateMap(request); } +StatusOr +CertificateManagerClient::DeleteCertificateMap(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest request; + request.set_name(name); + return connection_->DeleteCertificateMap( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& @@ -223,6 +405,26 @@ CertificateManagerClient::DeleteCertificateMap( return connection_->DeleteCertificateMap(request); } +StatusOr +CertificateManagerClient::DeleteCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateMap( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::DeleteCertificateMap( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateMap(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CertificateManagerClient::ListCertificateMapEntries(std::string const& parent, Options opts) { @@ -275,6 +477,23 @@ CertificateManagerClient::CreateCertificateMapEntry( return connection_->CreateCertificateMapEntry(request); } +StatusOr +CertificateManagerClient::CreateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::CertificateMapEntry const& + certificate_map_entry, + std::string const& certificate_map_entry_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::CreateCertificateMapEntryRequest + request; + request.set_parent(parent); + *request.mutable_certificate_map_entry() = certificate_map_entry; + request.set_certificate_map_entry_id(certificate_map_entry_id); + return connection_->CreateCertificateMapEntry( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::CreateCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -284,6 +503,26 @@ CertificateManagerClient::CreateCertificateMapEntry( return connection_->CreateCertificateMapEntry(request); } +StatusOr +CertificateManagerClient::CreateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateMapEntry( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::CreateCertificateMapEntry( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateMapEntry( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateManagerClient::UpdateCertificateMapEntry( google::cloud::certificatemanager::v1::CertificateMapEntry const& @@ -297,6 +536,21 @@ CertificateManagerClient::UpdateCertificateMapEntry( return connection_->UpdateCertificateMapEntry(request); } +StatusOr +CertificateManagerClient::UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CertificateMapEntry const& + certificate_map_entry, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::UpdateCertificateMapEntryRequest + request; + *request.mutable_certificate_map_entry() = certificate_map_entry; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCertificateMapEntry( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -306,6 +560,26 @@ CertificateManagerClient::UpdateCertificateMapEntry( return connection_->UpdateCertificateMapEntry(request); } +StatusOr +CertificateManagerClient::UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateMapEntry( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateMapEntry( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateManagerClient::DeleteCertificateMapEntry(std::string const& name, Options opts) { @@ -316,6 +590,18 @@ CertificateManagerClient::DeleteCertificateMapEntry(std::string const& name, return connection_->DeleteCertificateMapEntry(request); } +StatusOr +CertificateManagerClient::DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::DeleteCertificateMapEntryRequest + request; + request.set_name(name); + return connection_->DeleteCertificateMapEntry( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -325,6 +611,26 @@ CertificateManagerClient::DeleteCertificateMapEntry( return connection_->DeleteCertificateMapEntry(request); } +StatusOr +CertificateManagerClient::DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateMapEntry( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateMapEntry( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange CertificateManagerClient::ListDnsAuthorizations(std::string const& parent, Options opts) { @@ -374,6 +680,22 @@ CertificateManagerClient::CreateDnsAuthorization( return connection_->CreateDnsAuthorization(request); } +StatusOr +CertificateManagerClient::CreateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::DnsAuthorization const& + dns_authorization, + std::string const& dns_authorization_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::CreateDnsAuthorizationRequest request; + request.set_parent(parent); + *request.mutable_dns_authorization() = dns_authorization; + request.set_dns_authorization_id(dns_authorization_id); + return connection_->CreateDnsAuthorization( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::CreateDnsAuthorization( google::cloud::certificatemanager::v1::CreateDnsAuthorizationRequest const& @@ -383,6 +705,26 @@ CertificateManagerClient::CreateDnsAuthorization( return connection_->CreateDnsAuthorization(request); } +StatusOr +CertificateManagerClient::CreateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateDnsAuthorizationRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDnsAuthorization( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::CreateDnsAuthorization( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDnsAuthorization(google::cloud::ExperimentalTag{}, + operation); +} + future> CertificateManagerClient::UpdateDnsAuthorization( google::cloud::certificatemanager::v1::DnsAuthorization const& @@ -395,6 +737,20 @@ CertificateManagerClient::UpdateDnsAuthorization( return connection_->UpdateDnsAuthorization(request); } +StatusOr +CertificateManagerClient::UpdateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DnsAuthorization const& + dns_authorization, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::UpdateDnsAuthorizationRequest request; + *request.mutable_dns_authorization() = dns_authorization; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDnsAuthorization( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::UpdateDnsAuthorization( google::cloud::certificatemanager::v1::UpdateDnsAuthorizationRequest const& @@ -404,6 +760,26 @@ CertificateManagerClient::UpdateDnsAuthorization( return connection_->UpdateDnsAuthorization(request); } +StatusOr +CertificateManagerClient::UpdateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateDnsAuthorizationRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDnsAuthorization( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::UpdateDnsAuthorization( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDnsAuthorization(google::cloud::ExperimentalTag{}, + operation); +} + future> CertificateManagerClient::DeleteDnsAuthorization(std::string const& name, Options opts) { @@ -413,6 +789,18 @@ CertificateManagerClient::DeleteDnsAuthorization(std::string const& name, return connection_->DeleteDnsAuthorization(request); } +StatusOr +CertificateManagerClient::DeleteDnsAuthorization(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::DeleteDnsAuthorizationRequest request; + request.set_name(name); + return connection_->DeleteDnsAuthorization( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::DeleteDnsAuthorization( google::cloud::certificatemanager::v1::DeleteDnsAuthorizationRequest const& @@ -422,6 +810,26 @@ CertificateManagerClient::DeleteDnsAuthorization( return connection_->DeleteDnsAuthorization(request); } +StatusOr +CertificateManagerClient::DeleteDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteDnsAuthorizationRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDnsAuthorization( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::DeleteDnsAuthorization( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDnsAuthorization(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CertificateManagerClient::ListCertificateIssuanceConfigs( std::string const& parent, Options opts) { @@ -476,6 +884,23 @@ CertificateManagerClient::CreateCertificateIssuanceConfig( return connection_->CreateCertificateIssuanceConfig(request); } +StatusOr +CertificateManagerClient::CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::CertificateIssuanceConfig const& + certificate_issuance_config, + std::string const& certificate_issuance_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::CreateCertificateIssuanceConfigRequest + request; + request.set_parent(parent); + *request.mutable_certificate_issuance_config() = certificate_issuance_config; + request.set_certificate_issuance_config_id(certificate_issuance_config_id); + return connection_->CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> CertificateManagerClient::CreateCertificateIssuanceConfig( @@ -486,6 +911,27 @@ CertificateManagerClient::CreateCertificateIssuanceConfig( return connection_->CreateCertificateIssuanceConfig(request); } +StatusOr +CertificateManagerClient::CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +CertificateManagerClient::CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateManagerClient::DeleteCertificateIssuanceConfig( std::string const& name, Options opts) { @@ -496,6 +942,18 @@ CertificateManagerClient::DeleteCertificateIssuanceConfig( return connection_->DeleteCertificateIssuanceConfig(request); } +StatusOr +CertificateManagerClient::DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::DeleteCertificateIssuanceConfigRequest + request; + request.set_name(name); + return connection_->DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: @@ -505,6 +963,26 @@ CertificateManagerClient::DeleteCertificateIssuanceConfig( return connection_->DeleteCertificateIssuanceConfig(request); } +StatusOr +CertificateManagerClient::DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange CertificateManagerClient::ListTrustConfigs(std::string const& parent, Options opts) { @@ -552,6 +1030,21 @@ CertificateManagerClient::CreateTrustConfig( return connection_->CreateTrustConfig(request); } +StatusOr +CertificateManagerClient::CreateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::TrustConfig const& trust_config, + std::string const& trust_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::CreateTrustConfigRequest request; + request.set_parent(parent); + *request.mutable_trust_config() = trust_config; + request.set_trust_config_id(trust_config_id); + return connection_->CreateTrustConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::CreateTrustConfig( google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& @@ -561,6 +1054,26 @@ CertificateManagerClient::CreateTrustConfig( return connection_->CreateTrustConfig(request); } +StatusOr +CertificateManagerClient::CreateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTrustConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::CreateTrustConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTrustConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> CertificateManagerClient::UpdateTrustConfig( google::cloud::certificatemanager::v1::TrustConfig const& trust_config, @@ -572,6 +1085,19 @@ CertificateManagerClient::UpdateTrustConfig( return connection_->UpdateTrustConfig(request); } +StatusOr +CertificateManagerClient::UpdateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::TrustConfig const& trust_config, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest request; + *request.mutable_trust_config() = trust_config; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTrustConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& @@ -581,6 +1107,26 @@ CertificateManagerClient::UpdateTrustConfig( return connection_->UpdateTrustConfig(request); } +StatusOr +CertificateManagerClient::UpdateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTrustConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::UpdateTrustConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTrustConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> CertificateManagerClient::DeleteTrustConfig(std::string const& name, Options opts) { @@ -590,6 +1136,18 @@ CertificateManagerClient::DeleteTrustConfig(std::string const& name, return connection_->DeleteTrustConfig(request); } +StatusOr +CertificateManagerClient::DeleteTrustConfig(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest request; + request.set_name(name); + return connection_->DeleteTrustConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateManagerClient::DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& @@ -599,6 +1157,26 @@ CertificateManagerClient::DeleteTrustConfig( return connection_->DeleteTrustConfig(request); } +StatusOr +CertificateManagerClient::DeleteTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTrustConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateManagerClient::DeleteTrustConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTrustConfig(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace certificatemanager_v1 } // namespace cloud diff --git a/google/cloud/certificatemanager/v1/certificate_manager_client.h b/google/cloud/certificatemanager/v1/certificate_manager_client.h index 7902f3150f2b2..6e10afa0a2260 100644 --- a/google/cloud/certificatemanager/v1/certificate_manager_client.h +++ b/google/cloud/certificatemanager/v1/certificate_manager_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CERTIFICATEMANAGER_V1_CERTIFICATE_MANAGER_CLIENT_H #include "google/cloud/certificatemanager/v1/certificate_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -286,6 +288,12 @@ class CertificateManagerClient { google::cloud::certificatemanager::v1::Certificate const& certificate, std::string const& certificate_id, Options opts = {}); + StatusOr CreateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::Certificate const& certificate, + std::string const& certificate_id, Options opts = {}); + // clang-format off /// /// Creates a new Certificate in a given project and location. @@ -326,6 +334,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr CreateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request, + Options opts = {}); + + future> + CreateCertificate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a Certificate. @@ -363,6 +382,11 @@ class CertificateManagerClient { google::cloud::certificatemanager::v1::Certificate const& certificate, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::Certificate const& certificate, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a Certificate. @@ -403,6 +427,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr UpdateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request, + Options opts = {}); + + future> + UpdateCertificate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single Certificate. @@ -436,6 +471,10 @@ class CertificateManagerClient { future> DeleteCertificate(std::string const& name, Options opts = {}); + StatusOr DeleteCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Certificate. @@ -476,6 +515,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr DeleteCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request, + Options opts = {}); + + future> + DeleteCertificate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists CertificateMaps in a given project and location. @@ -650,6 +700,13 @@ class CertificateManagerClient { certificate_map, std::string const& certificate_map_id, Options opts = {}); + StatusOr CreateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::CertificateMap const& + certificate_map, + std::string const& certificate_map_id, Options opts = {}); + // clang-format off /// /// Creates a new CertificateMap in a given project and location. @@ -690,6 +747,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr CreateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request, + Options opts = {}); + + future> + CreateCertificateMap(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a CertificateMap. @@ -728,6 +796,12 @@ class CertificateManagerClient { certificate_map, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CertificateMap const& + certificate_map, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a CertificateMap. @@ -768,6 +842,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr UpdateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request, + Options opts = {}); + + future> + UpdateCertificateMap(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single CertificateMap. A Certificate Map can't be deleted @@ -803,6 +888,10 @@ class CertificateManagerClient { future> DeleteCertificateMap(std::string const& name, Options opts = {}); + StatusOr DeleteCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single CertificateMap. A Certificate Map can't be deleted @@ -845,6 +934,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr DeleteCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request, + Options opts = {}); + + future> + DeleteCertificateMap(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists CertificateMapEntries in a given project and location. @@ -1020,6 +1120,13 @@ class CertificateManagerClient { certificate_map_entry, std::string const& certificate_map_entry_id, Options opts = {}); + StatusOr CreateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::CertificateMapEntry const& + certificate_map_entry, + std::string const& certificate_map_entry_id, Options opts = {}); + // clang-format off /// /// Creates a new CertificateMapEntry in a given project and location. @@ -1059,6 +1166,17 @@ class CertificateManagerClient { CreateCertificateMapEntryRequest const& request, Options opts = {}); + StatusOr CreateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request, + Options opts = {}); + + future> + CreateCertificateMapEntry(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a CertificateMapEntry. @@ -1097,6 +1215,12 @@ class CertificateManagerClient { certificate_map_entry, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CertificateMapEntry const& + certificate_map_entry, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a CertificateMapEntry. @@ -1136,6 +1260,17 @@ class CertificateManagerClient { UpdateCertificateMapEntryRequest const& request, Options opts = {}); + StatusOr UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request, + Options opts = {}); + + future> + UpdateCertificateMapEntry(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single CertificateMapEntry. @@ -1169,6 +1304,10 @@ class CertificateManagerClient { future> DeleteCertificateMapEntry(std::string const& name, Options opts = {}); + StatusOr DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single CertificateMapEntry. @@ -1208,6 +1347,17 @@ class CertificateManagerClient { DeleteCertificateMapEntryRequest const& request, Options opts = {}); + StatusOr DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request, + Options opts = {}); + + future> + DeleteCertificateMapEntry(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists DnsAuthorizations in a given project and location. @@ -1383,6 +1533,13 @@ class CertificateManagerClient { dns_authorization, std::string const& dns_authorization_id, Options opts = {}); + StatusOr CreateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::DnsAuthorization const& + dns_authorization, + std::string const& dns_authorization_id, Options opts = {}); + // clang-format off /// /// Creates a new DnsAuthorization in a given project and location. @@ -1422,6 +1579,17 @@ class CertificateManagerClient { CreateDnsAuthorizationRequest const& request, Options opts = {}); + StatusOr CreateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request, + Options opts = {}); + + future> + CreateDnsAuthorization(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a DnsAuthorization. @@ -1460,6 +1628,12 @@ class CertificateManagerClient { dns_authorization, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DnsAuthorization const& + dns_authorization, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a DnsAuthorization. @@ -1499,6 +1673,17 @@ class CertificateManagerClient { UpdateDnsAuthorizationRequest const& request, Options opts = {}); + StatusOr UpdateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request, + Options opts = {}); + + future> + UpdateDnsAuthorization(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single DnsAuthorization. @@ -1532,6 +1717,10 @@ class CertificateManagerClient { future> DeleteDnsAuthorization(std::string const& name, Options opts = {}); + StatusOr DeleteDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single DnsAuthorization. @@ -1571,6 +1760,17 @@ class CertificateManagerClient { DeleteDnsAuthorizationRequest const& request, Options opts = {}); + StatusOr DeleteDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request, + Options opts = {}); + + future> + DeleteDnsAuthorization(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists CertificateIssuanceConfigs in a given project and location. @@ -1747,6 +1947,13 @@ class CertificateManagerClient { certificate_issuance_config, std::string const& certificate_issuance_config_id, Options opts = {}); + StatusOr CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::CertificateIssuanceConfig const& + certificate_issuance_config, + std::string const& certificate_issuance_config_id, Options opts = {}); + // clang-format off /// /// Creates a new CertificateIssuanceConfig in a given project and location. @@ -1788,6 +1995,18 @@ class CertificateManagerClient { CreateCertificateIssuanceConfigRequest const& request, Options opts = {}); + StatusOr CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request, + Options opts = {}); + + future> + CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single CertificateIssuanceConfig. @@ -1821,6 +2040,10 @@ class CertificateManagerClient { future> DeleteCertificateIssuanceConfig(std::string const& name, Options opts = {}); + StatusOr DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single CertificateIssuanceConfig. @@ -1861,6 +2084,17 @@ class CertificateManagerClient { DeleteCertificateIssuanceConfigRequest const& request, Options opts = {}); + StatusOr DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request, + Options opts = {}); + + future> + DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists TrustConfigs in a given project and location. @@ -2034,6 +2268,12 @@ class CertificateManagerClient { google::cloud::certificatemanager::v1::TrustConfig const& trust_config, std::string const& trust_config_id, Options opts = {}); + StatusOr CreateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::certificatemanager::v1::TrustConfig const& trust_config, + std::string const& trust_config_id, Options opts = {}); + // clang-format off /// /// Creates a new TrustConfig in a given project and location. @@ -2074,6 +2314,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr CreateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request, + Options opts = {}); + + future> + CreateTrustConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a TrustConfig. @@ -2111,6 +2362,11 @@ class CertificateManagerClient { google::cloud::certificatemanager::v1::TrustConfig const& trust_config, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::TrustConfig const& trust_config, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a TrustConfig. @@ -2151,6 +2407,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr UpdateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request, + Options opts = {}); + + future> + UpdateTrustConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single TrustConfig. @@ -2184,6 +2451,10 @@ class CertificateManagerClient { future> DeleteTrustConfig(std::string const& name, Options opts = {}); + StatusOr DeleteTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single TrustConfig. @@ -2224,6 +2495,17 @@ class CertificateManagerClient { request, Options opts = {}); + StatusOr DeleteTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request, + Options opts = {}); + + future> + DeleteTrustConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..749a756f884f1 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,63 @@ CertificateManagerConnectionImpl::CreateCertificate( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateCertificate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +264,63 @@ CertificateManagerConnectionImpl::UpdateCertificate( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::UpdateCertificate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +362,63 @@ CertificateManagerConnectionImpl::DeleteCertificate( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteCertificate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +511,62 @@ CertificateManagerConnectionImpl::CreateCertificateMap( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +607,62 @@ CertificateManagerConnectionImpl::UpdateCertificateMap( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::UpdateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +703,62 @@ CertificateManagerConnectionImpl::DeleteCertificateMap( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteCertificateMap( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +854,62 @@ CertificateManagerConnectionImpl::CreateCertificateMapEntry( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +950,62 @@ CertificateManagerConnectionImpl::UpdateCertificateMapEntry( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1046,62 @@ CertificateManagerConnectionImpl::DeleteCertificateMapEntry( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1196,138 @@ CertificateManagerConnectionImpl::CreateDnsAuthorization( polling_policy(*current), __func__); } -future> +StatusOr +CertificateManagerConnectionImpl::CreateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1345,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 +1388,62 @@ CertificateManagerConnectionImpl::DeleteDnsAuthorization( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1544,64 @@ CertificateManagerConnectionImpl::CreateCertificateIssuanceConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1644,63 @@ CertificateManagerConnectionImpl::DeleteCertificateIssuanceConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1794,63 @@ CertificateManagerConnectionImpl::CreateTrustConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::CreateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1892,63 @@ CertificateManagerConnectionImpl::UpdateTrustConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::UpdateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1990,63 @@ CertificateManagerConnectionImpl::DeleteTrustConfig( polling_policy(*current), __func__); } +StatusOr +CertificateManagerConnectionImpl::DeleteTrustConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..c3cbe08689d94 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request) override; + + future> + CreateCertificate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& request) override; + StatusOr UpdateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request) override; + + future> + UpdateCertificate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& request) override; + StatusOr DeleteCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request) override; + + future> + DeleteCertificate(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request) override; + + future> + CreateCertificateMap( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& request) override; + StatusOr UpdateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request) override; + + future> + UpdateCertificateMap( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& request) override; + StatusOr DeleteCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request) override; + + future> + DeleteCertificateMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request) override; + + future> + CreateCertificateMapEntry( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: UpdateCertificateMapEntryRequest const& request) override; + StatusOr UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request) override; + + future> + UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: DeleteCertificateMapEntryRequest const& request) override; + StatusOr DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request) override; + + future> + DeleteCertificateMapEntry( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request) override; + + future> + CreateDnsAuthorization( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDnsAuthorization( google::cloud::certificatemanager::v1:: UpdateDnsAuthorizationRequest const& request) override; + StatusOr UpdateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request) override; + + future> + UpdateDnsAuthorization( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDnsAuthorization( google::cloud::certificatemanager::v1:: DeleteDnsAuthorizationRequest const& request) override; + StatusOr DeleteDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request) override; + + future> + DeleteDnsAuthorization( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request) override; + + future> + CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: DeleteCertificateIssuanceConfigRequest const& request) override; + StatusOr DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request) override; + + future> + DeleteCertificateIssuanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request) override; + + future> + CreateTrustConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& request) override; + StatusOr UpdateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request) override; + + future> + UpdateTrustConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& request) override; + StatusOr DeleteTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request) override; + + future> + DeleteTrustConfig(google::cloud::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..8c2a008bce8be 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,31 @@ CertificateManagerTracingConnection::CreateCertificate( return internal::EndSpan(std::move(span), child_->CreateCertificate(request)); } +StatusOr +CertificateManagerTracingConnection::CreateCertificate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateCertificate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& @@ -75,6 +100,31 @@ CertificateManagerTracingConnection::UpdateCertificate( return internal::EndSpan(std::move(span), child_->UpdateCertificate(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateCertificate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateCertificate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& @@ -85,6 +135,31 @@ CertificateManagerTracingConnection::DeleteCertificate( return internal::EndSpan(std::move(span), child_->DeleteCertificate(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteCertificate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteCertificate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListCertificateMaps( google::cloud::certificatemanager::v1::ListCertificateMapsRequest request) { @@ -120,6 +195,33 @@ CertificateManagerTracingConnection::CreateCertificateMap( child_->CreateCertificateMap(request)); } +StatusOr +CertificateManagerTracingConnection::CreateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateCertificateMap( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& @@ -132,6 +234,33 @@ CertificateManagerTracingConnection::UpdateCertificateMap( child_->UpdateCertificateMap(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateCertificateMap( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& @@ -144,6 +273,33 @@ CertificateManagerTracingConnection::DeleteCertificateMap( child_->DeleteCertificateMap(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteCertificateMap( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteCertificateMap( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListCertificateMapEntries( google::cloud::certificatemanager::v1::ListCertificateMapEntriesRequest @@ -181,6 +337,33 @@ CertificateManagerTracingConnection::CreateCertificateMapEntry( child_->CreateCertificateMapEntry(request)); } +StatusOr +CertificateManagerTracingConnection::CreateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateCertificateMapEntry( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -193,6 +376,33 @@ CertificateManagerTracingConnection::UpdateCertificateMapEntry( child_->UpdateCertificateMapEntry(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateCertificateMapEntry( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: @@ -205,6 +415,33 @@ CertificateManagerTracingConnection::DeleteCertificateMapEntry( child_->DeleteCertificateMapEntry(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteCertificateMapEntry( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListDnsAuthorizations( google::cloud::certificatemanager::v1::ListDnsAuthorizationsRequest @@ -242,6 +479,33 @@ CertificateManagerTracingConnection::CreateDnsAuthorization( child_->CreateDnsAuthorization(request)); } +StatusOr +CertificateManagerTracingConnection::CreateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateDnsAuthorization( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateDnsAuthorization( google::cloud::certificatemanager::v1::UpdateDnsAuthorizationRequest const& @@ -254,6 +518,33 @@ CertificateManagerTracingConnection::UpdateDnsAuthorization( child_->UpdateDnsAuthorization(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateDnsAuthorization( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteDnsAuthorization( google::cloud::certificatemanager::v1::DeleteDnsAuthorizationRequest const& @@ -266,6 +557,33 @@ CertificateManagerTracingConnection::DeleteDnsAuthorization( child_->DeleteDnsAuthorization(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteDnsAuthorization( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListCertificateIssuanceConfigs( google::cloud::certificatemanager::v1::ListCertificateIssuanceConfigsRequest @@ -305,6 +623,34 @@ CertificateManagerTracingConnection::CreateCertificateIssuanceConfig( child_->CreateCertificateIssuanceConfig(request)); } +StatusOr +CertificateManagerTracingConnection::CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +CertificateManagerTracingConnection::CreateCertificateIssuanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: @@ -317,6 +663,33 @@ CertificateManagerTracingConnection::DeleteCertificateIssuanceConfig( child_->DeleteCertificateIssuanceConfig(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteCertificateIssuanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CertificateManagerTracingConnection::ListTrustConfigs( google::cloud::certificatemanager::v1::ListTrustConfigsRequest request) { @@ -349,6 +722,31 @@ CertificateManagerTracingConnection::CreateTrustConfig( return internal::EndSpan(std::move(span), child_->CreateTrustConfig(request)); } +StatusOr +CertificateManagerTracingConnection::CreateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::CreateTrustConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& @@ -359,6 +757,31 @@ CertificateManagerTracingConnection::UpdateTrustConfig( return internal::EndSpan(std::move(span), child_->UpdateTrustConfig(request)); } +StatusOr +CertificateManagerTracingConnection::UpdateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::UpdateTrustConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateManagerTracingConnection::DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& @@ -369,6 +792,31 @@ CertificateManagerTracingConnection::DeleteTrustConfig( return internal::EndSpan(std::move(span), child_->DeleteTrustConfig(request)); } +StatusOr +CertificateManagerTracingConnection::DeleteTrustConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateManagerTracingConnection::DeleteTrustConfig( + google::cloud::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(google::cloud::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..c10ad3b7c68f5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request) override; + + future> + CreateCertificate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificate( google::cloud::certificatemanager::v1::UpdateCertificateRequest const& request) override; + StatusOr UpdateCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request) override; + + future> + UpdateCertificate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificate( google::cloud::certificatemanager::v1::DeleteCertificateRequest const& request) override; + StatusOr DeleteCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request) override; + + future> + DeleteCertificate(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request) override; + + future> + CreateCertificateMap( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateMap( google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& request) override; + StatusOr UpdateCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request) override; + + future> + UpdateCertificateMap( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateMap( google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& request) override; + StatusOr DeleteCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request) override; + + future> + DeleteCertificateMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request) override; + + future> + CreateCertificateMapEntry( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateMapEntry( google::cloud::certificatemanager::v1:: UpdateCertificateMapEntryRequest const& request) override; + StatusOr UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request) override; + + future> + UpdateCertificateMapEntry( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateMapEntry( google::cloud::certificatemanager::v1:: DeleteCertificateMapEntryRequest const& request) override; + StatusOr DeleteCertificateMapEntry( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request) override; + + future> + DeleteCertificateMapEntry( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request) override; + + future> + CreateDnsAuthorization( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDnsAuthorization( google::cloud::certificatemanager::v1:: UpdateDnsAuthorizationRequest const& request) override; + StatusOr UpdateDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request) override; + + future> + UpdateDnsAuthorization( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDnsAuthorization( google::cloud::certificatemanager::v1:: DeleteDnsAuthorizationRequest const& request) override; + StatusOr DeleteDnsAuthorization( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request) override; + + future> + DeleteDnsAuthorization( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request) override; + + future> + CreateCertificateIssuanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateIssuanceConfig( google::cloud::certificatemanager::v1:: DeleteCertificateIssuanceConfigRequest const& request) override; + StatusOr DeleteCertificateIssuanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request) override; + + future> + DeleteCertificateIssuanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request) override; + + future> + CreateTrustConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTrustConfig( google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& request) override; + StatusOr UpdateTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request) override; + + future> + UpdateTrustConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTrustConfig( google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& request) override; + StatusOr DeleteTrustConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request) override; + + future> + DeleteTrustConfig(google::cloud::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..41c301d645391 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,20 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateCertificate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateCertificate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCertificate, @@ -74,6 +88,20 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateCertificate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateCertificate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -82,6 +110,21 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteCertificate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListCertificateMaps, @@ -103,6 +146,20 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateCertificateMap, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateCertificateMapRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateCertificateMap, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCertificateMap, @@ -110,6 +167,20 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateCertificateMap, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateCertificateMapRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateCertificateMap, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -118,6 +189,21 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteCertificateMap, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteCertificateMapRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificateMap, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListCertificateMapEntries, @@ -140,6 +226,21 @@ class MockCertificateManagerConnection CreateCertificateMapEntryRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateCertificateMapEntry, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateMapEntryRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateCertificateMapEntry, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -148,6 +249,21 @@ class MockCertificateManagerConnection UpdateCertificateMapEntryRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateCertificateMapEntry, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateCertificateMapEntryRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpdateCertificateMapEntry, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -156,6 +272,21 @@ class MockCertificateManagerConnection DeleteCertificateMapEntryRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteCertificateMapEntry, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateMapEntryRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificateMapEntry, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDnsAuthorizations, @@ -177,6 +308,19 @@ class MockCertificateManagerConnection CreateDnsAuthorizationRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateDnsAuthorization, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateDnsAuthorizationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateDnsAuthorization, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDnsAuthorization, @@ -184,6 +328,19 @@ class MockCertificateManagerConnection UpdateDnsAuthorizationRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateDnsAuthorization, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + UpdateDnsAuthorizationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateDnsAuthorization, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -192,6 +349,20 @@ class MockCertificateManagerConnection DeleteDnsAuthorizationRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteDnsAuthorization, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteDnsAuthorizationRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteDnsAuthorization, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< google::cloud::certificatemanager::v1::CertificateIssuanceConfig>), @@ -216,6 +387,21 @@ class MockCertificateManagerConnection CreateCertificateIssuanceConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateCertificateIssuanceConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + CreateCertificateIssuanceConfigRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateCertificateIssuanceConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -224,6 +410,21 @@ class MockCertificateManagerConnection DeleteCertificateIssuanceConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteCertificateIssuanceConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1:: + DeleteCertificateIssuanceConfigRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificateIssuanceConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTrustConfigs, @@ -244,6 +445,20 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateTrustConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::CreateTrustConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateTrustConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateTrustConfig, @@ -251,6 +466,20 @@ class MockCertificateManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateTrustConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::UpdateTrustConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateTrustConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -258,6 +487,21 @@ class MockCertificateManagerConnection (google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteTrustConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::certificatemanager::v1::DeleteTrustConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteTrustConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/channel/v1/cloud_channel_client.cc b/google/cloud/channel/v1/cloud_channel_client.cc index 866824ceb417c..775eefcd50d33 100644 --- a/google/cloud/channel/v1/cloud_channel_client.cc +++ b/google/cloud/channel/v1/cloud_channel_client.cc @@ -111,6 +111,25 @@ CloudChannelServiceClient::ProvisionCloudIdentity( return connection_->ProvisionCloudIdentity(request); } +StatusOr +CloudChannelServiceClient::ProvisionCloudIdentity( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ProvisionCloudIdentity( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::ProvisionCloudIdentity( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ProvisionCloudIdentity(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CloudChannelServiceClient::ListEntitlements( google::cloud::channel::v1::ListEntitlementsRequest request, Options opts) { @@ -150,6 +169,25 @@ CloudChannelServiceClient::CreateEntitlement( return connection_->CreateEntitlement(request); } +StatusOr +CloudChannelServiceClient::CreateEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEntitlement(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::CreateEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEntitlement(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudChannelServiceClient::ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request, @@ -158,6 +196,25 @@ CloudChannelServiceClient::ChangeParameters( return connection_->ChangeParameters(request); } +StatusOr +CloudChannelServiceClient::ChangeParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ChangeParameters(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::ChangeParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ChangeParameters(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudChannelServiceClient::ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request, @@ -166,6 +223,25 @@ CloudChannelServiceClient::ChangeRenewalSettings( return connection_->ChangeRenewalSettings(request); } +StatusOr +CloudChannelServiceClient::ChangeRenewalSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ChangeRenewalSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::ChangeRenewalSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ChangeRenewalSettings(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudChannelServiceClient::ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request, @@ -174,6 +250,23 @@ CloudChannelServiceClient::ChangeOffer( return connection_->ChangeOffer(request); } +StatusOr CloudChannelServiceClient::ChangeOffer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ChangeOffer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::ChangeOffer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ChangeOffer(google::cloud::ExperimentalTag{}, operation); +} + future> CloudChannelServiceClient::StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request, @@ -182,6 +275,25 @@ CloudChannelServiceClient::StartPaidService( return connection_->StartPaidService(request); } +StatusOr +CloudChannelServiceClient::StartPaidService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartPaidService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::StartPaidService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartPaidService(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudChannelServiceClient::SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request, @@ -190,6 +302,25 @@ CloudChannelServiceClient::SuspendEntitlement( return connection_->SuspendEntitlement(request); } +StatusOr +CloudChannelServiceClient::SuspendEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SuspendEntitlement(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::SuspendEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SuspendEntitlement(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudChannelServiceClient::CancelEntitlement( google::cloud::channel::v1::CancelEntitlementRequest const& request, @@ -198,6 +329,25 @@ CloudChannelServiceClient::CancelEntitlement( return connection_->CancelEntitlement(request); } +StatusOr +CloudChannelServiceClient::CancelEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelEntitlement(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::CancelEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelEntitlement(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudChannelServiceClient::ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request, @@ -206,6 +356,25 @@ CloudChannelServiceClient::ActivateEntitlement( return connection_->ActivateEntitlement(request); } +StatusOr +CloudChannelServiceClient::ActivateEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ActivateEntitlement(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::ActivateEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ActivateEntitlement(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudChannelServiceClient::TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request, @@ -214,6 +383,25 @@ CloudChannelServiceClient::TransferEntitlements( return connection_->TransferEntitlements(request); } +StatusOr +CloudChannelServiceClient::TransferEntitlements( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TransferEntitlements( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::TransferEntitlements( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TransferEntitlements(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudChannelServiceClient::TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& @@ -223,6 +411,26 @@ CloudChannelServiceClient::TransferEntitlementsToGoogle( return connection_->TransferEntitlementsToGoogle(request); } +StatusOr +CloudChannelServiceClient::TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelServiceClient::TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange CloudChannelServiceClient::ListChannelPartnerLinks( google::cloud::channel::v1::ListChannelPartnerLinksRequest request, diff --git a/google/cloud/channel/v1/cloud_channel_client.h b/google/cloud/channel/v1/cloud_channel_client.h index 87fde34f67a00..2478beae79cdb 100644 --- a/google/cloud/channel/v1/cloud_channel_client.h +++ b/google/cloud/channel/v1/cloud_channel_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CHANNEL_V1_CLOUD_CHANNEL_CLIENT_H #include "google/cloud/channel/v1/cloud_channel_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -567,6 +569,15 @@ class CloudChannelServiceClient { google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request, Options opts = {}); + StatusOr ProvisionCloudIdentity( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request, + Options opts = {}); + + future> ProvisionCloudIdentity( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists [Entitlement][google.cloud.channel.v1.Entitlement]s belonging to a @@ -855,6 +866,15 @@ class CloudChannelServiceClient { google::cloud::channel::v1::CreateEntitlementRequest const& request, Options opts = {}); + StatusOr CreateEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request, + Options opts = {}); + + future> CreateEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Change parameters of the entitlement. @@ -916,6 +936,15 @@ class CloudChannelServiceClient { google::cloud::channel::v1::ChangeParametersRequest const& request, Options opts = {}); + StatusOr ChangeParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request, + Options opts = {}); + + future> ChangeParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the renewal settings for an existing customer entitlement. @@ -978,6 +1007,16 @@ class CloudChannelServiceClient { google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request, Options opts = {}); + StatusOr ChangeRenewalSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request, + Options opts = {}); + + future> + ChangeRenewalSettings(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the Offer for an existing customer entitlement. @@ -1037,6 +1076,15 @@ class CloudChannelServiceClient { google::cloud::channel::v1::ChangeOfferRequest const& request, Options opts = {}); + StatusOr ChangeOffer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request, + Options opts = {}); + + future> ChangeOffer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Starts paid service for a trial entitlement. @@ -1099,6 +1147,15 @@ class CloudChannelServiceClient { google::cloud::channel::v1::StartPaidServiceRequest const& request, Options opts = {}); + StatusOr StartPaidService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request, + Options opts = {}); + + future> StartPaidService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Suspends a previously fulfilled entitlement. @@ -1158,6 +1215,15 @@ class CloudChannelServiceClient { google::cloud::channel::v1::SuspendEntitlementRequest const& request, Options opts = {}); + StatusOr SuspendEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request, + Options opts = {}); + + future> SuspendEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Cancels a previously fulfilled entitlement. @@ -1222,6 +1288,16 @@ class CloudChannelServiceClient { google::cloud::channel::v1::CancelEntitlementRequest const& request, Options opts = {}); + StatusOr CancelEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request, + Options opts = {}); + + future> + CancelEntitlement(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Activates a previously suspended entitlement. Entitlements suspended for @@ -1287,6 +1363,15 @@ class CloudChannelServiceClient { google::cloud::channel::v1::ActivateEntitlementRequest const& request, Options opts = {}); + StatusOr ActivateEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request, + Options opts = {}); + + future> ActivateEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Transfers customer entitlements to new reseller. @@ -1358,6 +1443,16 @@ class CloudChannelServiceClient { google::cloud::channel::v1::TransferEntitlementsRequest const& request, Options opts = {}); + StatusOr TransferEntitlements( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request, + Options opts = {}); + + future> + TransferEntitlements(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Transfers customer entitlements from their current reseller to Google. @@ -1426,6 +1521,17 @@ class CloudChannelServiceClient { request, Options opts = {}); + StatusOr TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request, + Options opts = {}); + + future> + TransferEntitlementsToGoogle(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// List [ChannelPartnerLink][google.cloud.channel.v1.ChannelPartnerLink]s 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_client.cc b/google/cloud/channel/v1/cloud_channel_reports_client.cc index 4dd3a2edb4a02..d4c4b55d3c120 100644 --- a/google/cloud/channel/v1/cloud_channel_reports_client.cc +++ b/google/cloud/channel/v1/cloud_channel_reports_client.cc @@ -41,6 +41,24 @@ CloudChannelReportsServiceClient::RunReportJob( return connection_->RunReportJob(request); } +StatusOr +CloudChannelReportsServiceClient::RunReportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunReportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudChannelReportsServiceClient::RunReportJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunReportJob(google::cloud::ExperimentalTag{}, operation); +} + StreamRange CloudChannelReportsServiceClient::FetchReportResults( std::string const& report_job, Options opts) { diff --git a/google/cloud/channel/v1/cloud_channel_reports_client.h b/google/cloud/channel/v1/cloud_channel_reports_client.h index 73665e16d828e..bf7d6b99e8435 100644 --- a/google/cloud/channel/v1/cloud_channel_reports_client.h +++ b/google/cloud/channel/v1/cloud_channel_reports_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CHANNEL_V1_CLOUD_CHANNEL_REPORTS_CLIENT_H #include "google/cloud/channel/v1/cloud_channel_reports_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -167,6 +169,16 @@ class CloudChannelReportsServiceClient { RunReportJob(google::cloud::channel::v1::RunReportJobRequest const& request, Options opts = {}); + StatusOr RunReportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request, + Options opts = {}); + + future> + RunReportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves data generated by 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..3d06bb2958044 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,59 @@ CloudChannelServiceConnectionImpl::ProvisionCloudIdentity( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ProvisionCloudIdentity( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +439,59 @@ CloudChannelServiceConnectionImpl::CreateEntitlement( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::CreateEntitlement( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +531,59 @@ CloudChannelServiceConnectionImpl::ChangeParameters( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ChangeParameters( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +624,59 @@ CloudChannelServiceConnectionImpl::ChangeRenewalSettings( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ChangeRenewalSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +716,58 @@ CloudChannelServiceConnectionImpl::ChangeOffer( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ChangeOffer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +807,59 @@ CloudChannelServiceConnectionImpl::StartPaidService( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::StartPaidService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +900,59 @@ CloudChannelServiceConnectionImpl::SuspendEntitlement( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::SuspendEntitlement( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +992,60 @@ CloudChannelServiceConnectionImpl::CancelEntitlement( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::CancelEntitlement( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1086,59 @@ CloudChannelServiceConnectionImpl::ActivateEntitlement( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::ActivateEntitlement( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1179,60 @@ CloudChannelServiceConnectionImpl::TransferEntitlements( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::TransferEntitlements( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1274,62 @@ CloudChannelServiceConnectionImpl::TransferEntitlementsToGoogle( polling_policy(*current), __func__); } +StatusOr +CloudChannelServiceConnectionImpl::TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..3127c6eb04456 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request) + override; + + future> ProvisionCloudIdentity( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request) + override; + + future> CreateEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request) override; + StatusOr ChangeParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request) + override; + + future> ChangeParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) override; + StatusOr ChangeRenewalSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) + override; + + future> + ChangeRenewalSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request) override; + StatusOr ChangeOffer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request) override; + + future> ChangeOffer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request) override; + StatusOr StartPaidService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request) + override; + + future> StartPaidService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request) override; + StatusOr SuspendEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request) + override; + + future> SuspendEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelEntitlement(google::cloud::channel::v1::CancelEntitlementRequest const& request) override; + StatusOr CancelEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request) + override; + + future> + CancelEntitlement(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request) override; + StatusOr ActivateEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request) + override; + + future> ActivateEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request) override; + StatusOr TransferEntitlements( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request) + override; + + future> + TransferEntitlements( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& request) override; + StatusOr TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request) override; + + future> + TransferEntitlementsToGoogle( + google::cloud::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..41ce404862076 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,59 @@ CloudChannelReportsServiceConnectionImpl::RunReportJob( polling_policy(*current), __func__); } +StatusOr +CloudChannelReportsServiceConnectionImpl::RunReportJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..b8a2356888947 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request) override; + + future> + RunReportJob(google::cloud::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..835e408f3b763 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,30 @@ CloudChannelReportsServiceTracingConnection::RunReportJob( return internal::EndSpan(std::move(span), child_->RunReportJob(request)); } +StatusOr +CloudChannelReportsServiceTracingConnection::RunReportJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelReportsServiceTracingConnection::RunReportJob( + google::cloud::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(google::cloud::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..1f625df7f13bb 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request) override; + + future> + RunReportJob(google::cloud::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..96e9ce3302fd5 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,30 @@ CloudChannelServiceTracingConnection::ProvisionCloudIdentity( child_->ProvisionCloudIdentity(request)); } +StatusOr +CloudChannelServiceTracingConnection::ProvisionCloudIdentity( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ProvisionCloudIdentity( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CloudChannelServiceTracingConnection::ListEntitlements( google::cloud::channel::v1::ListEntitlementsRequest request) { @@ -163,6 +187,30 @@ CloudChannelServiceTracingConnection::CreateEntitlement( return internal::EndSpan(std::move(span), child_->CreateEntitlement(request)); } +StatusOr +CloudChannelServiceTracingConnection::CreateEntitlement( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::CreateEntitlement( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request) { @@ -172,6 +220,30 @@ CloudChannelServiceTracingConnection::ChangeParameters( return internal::EndSpan(std::move(span), child_->ChangeParameters(request)); } +StatusOr +CloudChannelServiceTracingConnection::ChangeParameters( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ChangeParameters( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) { @@ -182,6 +254,30 @@ CloudChannelServiceTracingConnection::ChangeRenewalSettings( child_->ChangeRenewalSettings(request)); } +StatusOr +CloudChannelServiceTracingConnection::ChangeRenewalSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ChangeRenewalSettings( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request) { @@ -191,6 +287,30 @@ CloudChannelServiceTracingConnection::ChangeOffer( return internal::EndSpan(std::move(span), child_->ChangeOffer(request)); } +StatusOr +CloudChannelServiceTracingConnection::ChangeOffer( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ChangeOffer( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request) { @@ -200,6 +320,30 @@ CloudChannelServiceTracingConnection::StartPaidService( return internal::EndSpan(std::move(span), child_->StartPaidService(request)); } +StatusOr +CloudChannelServiceTracingConnection::StartPaidService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::StartPaidService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request) { @@ -210,6 +354,30 @@ CloudChannelServiceTracingConnection::SuspendEntitlement( child_->SuspendEntitlement(request)); } +StatusOr +CloudChannelServiceTracingConnection::SuspendEntitlement( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::SuspendEntitlement( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::CancelEntitlement( google::cloud::channel::v1::CancelEntitlementRequest const& request) { @@ -219,6 +387,30 @@ CloudChannelServiceTracingConnection::CancelEntitlement( return internal::EndSpan(std::move(span), child_->CancelEntitlement(request)); } +StatusOr +CloudChannelServiceTracingConnection::CancelEntitlement( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::CancelEntitlement( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request) { @@ -229,6 +421,30 @@ CloudChannelServiceTracingConnection::ActivateEntitlement( child_->ActivateEntitlement(request)); } +StatusOr +CloudChannelServiceTracingConnection::ActivateEntitlement( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::ActivateEntitlement( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request) { @@ -239,6 +455,30 @@ CloudChannelServiceTracingConnection::TransferEntitlements( child_->TransferEntitlements(request)); } +StatusOr +CloudChannelServiceTracingConnection::TransferEntitlements( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::TransferEntitlements( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CloudChannelServiceTracingConnection::TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& @@ -251,6 +491,33 @@ CloudChannelServiceTracingConnection::TransferEntitlementsToGoogle( child_->TransferEntitlementsToGoogle(request)); } +StatusOr +CloudChannelServiceTracingConnection::TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudChannelServiceTracingConnection::TransferEntitlementsToGoogle( + google::cloud::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( + google::cloud::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..ca7ed64779e54 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& request) + override; + + future> ProvisionCloudIdentity( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request) + override; + + future> CreateEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeParameters( google::cloud::channel::v1::ChangeParametersRequest const& request) override; + StatusOr ChangeParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request) + override; + + future> ChangeParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeRenewalSettings( google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) override; + StatusOr ChangeRenewalSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request) + override; + + future> + ChangeRenewalSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ChangeOffer( google::cloud::channel::v1::ChangeOfferRequest const& request) override; + StatusOr ChangeOffer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request) override; + + future> ChangeOffer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartPaidService( google::cloud::channel::v1::StartPaidServiceRequest const& request) override; + StatusOr StartPaidService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request) + override; + + future> StartPaidService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SuspendEntitlement( google::cloud::channel::v1::SuspendEntitlementRequest const& request) override; + StatusOr SuspendEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request) + override; + + future> SuspendEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelEntitlement(google::cloud::channel::v1::CancelEntitlementRequest const& request) override; + StatusOr CancelEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request) + override; + + future> + CancelEntitlement(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ActivateEntitlement( google::cloud::channel::v1::ActivateEntitlementRequest const& request) override; + StatusOr ActivateEntitlement( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request) + override; + + future> ActivateEntitlement( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TransferEntitlements( google::cloud::channel::v1::TransferEntitlementsRequest const& request) override; + StatusOr TransferEntitlements( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request) + override; + + future> + TransferEntitlements( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TransferEntitlementsToGoogle( google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& request) override; + StatusOr TransferEntitlementsToGoogle( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request) override; + + future> + TransferEntitlementsToGoogle( + google::cloud::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..42a57f90d02e8 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ProvisionCloudIdentityRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ProvisionCloudIdentity, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CreateEntitlementRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEntitlement, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ChangeParameters, (google::cloud::channel::v1::ChangeParametersRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ChangeParameters, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeParametersRequest const& request), + (override)); + + MOCK_METHOD(future>, + ChangeParameters, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ChangeRenewalSettings, (google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ChangeRenewalSettings, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeRenewalSettingsRequest const& request), + (override)); + + MOCK_METHOD(future>, + ChangeRenewalSettings, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ChangeOffer, (google::cloud::channel::v1::ChangeOfferRequest const& request), (override)); + MOCK_METHOD(StatusOr, ChangeOffer, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ChangeOfferRequest const& request), + (override)); + + MOCK_METHOD(future>, + ChangeOffer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartPaidService, (google::cloud::channel::v1::StartPaidServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartPaidService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::StartPaidServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartPaidService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SuspendEntitlement, (google::cloud::channel::v1::SuspendEntitlementRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SuspendEntitlement, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::SuspendEntitlementRequest const& request), + (override)); + + MOCK_METHOD(future>, + SuspendEntitlement, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CancelEntitlement, (google::cloud::channel::v1::CancelEntitlementRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CancelEntitlement, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::CancelEntitlementRequest const& request), + (override)); + + MOCK_METHOD(future>, + CancelEntitlement, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ActivateEntitlement, (google::cloud::channel::v1::ActivateEntitlementRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ActivateEntitlement, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::ActivateEntitlementRequest const& request), + (override)); + + MOCK_METHOD(future>, + ActivateEntitlement, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -165,6 +272,20 @@ class MockCloudChannelServiceConnection (google::cloud::channel::v1::TransferEntitlementsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, TransferEntitlements, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + TransferEntitlements, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, TransferEntitlementsToGoogle, @@ -172,6 +293,19 @@ class MockCloudChannelServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, TransferEntitlementsToGoogle, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::TransferEntitlementsToGoogleRequest const& + request), + (override)); + + MOCK_METHOD(future>, + TransferEntitlementsToGoogle, + (google::cloud::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..21305499bb603 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,18 @@ class MockCloudChannelReportsServiceConnection (google::cloud::channel::v1::RunReportJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, RunReportJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::channel::v1::RunReportJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RunReportJob, + (google::cloud::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_client.cc b/google/cloud/cloudbuild/v1/cloud_build_client.cc index 610b55eb72854..413600d3589f9 100644 --- a/google/cloud/cloudbuild/v1/cloud_build_client.cc +++ b/google/cloud/cloudbuild/v1/cloud_build_client.cc @@ -43,6 +43,18 @@ CloudBuildClient::CreateBuild( return connection_->CreateBuild(request); } +StatusOr CloudBuildClient::CreateBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, + google::devtools::cloudbuild::v1::Build const& build, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v1::CreateBuildRequest request; + request.set_project_id(project_id); + *request.mutable_build() = build; + return connection_->CreateBuild(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudBuildClient::CreateBuild( google::devtools::cloudbuild::v1::CreateBuildRequest const& request, @@ -51,6 +63,23 @@ CloudBuildClient::CreateBuild( return connection_->CreateBuild(request); } +StatusOr CloudBuildClient::CreateBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBuild(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudBuildClient::CreateBuild(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBuild(google::cloud::ExperimentalTag{}, operation); +} + StatusOr CloudBuildClient::GetBuild( std::string const& project_id, std::string const& id, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -110,6 +139,17 @@ CloudBuildClient::RetryBuild(std::string const& project_id, return connection_->RetryBuild(request); } +StatusOr CloudBuildClient::RetryBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v1::RetryBuildRequest request; + request.set_project_id(project_id); + request.set_id(id); + return connection_->RetryBuild(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudBuildClient::RetryBuild( google::devtools::cloudbuild::v1::RetryBuildRequest const& request, @@ -118,6 +158,23 @@ CloudBuildClient::RetryBuild( return connection_->RetryBuild(request); } +StatusOr CloudBuildClient::RetryBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RetryBuild(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudBuildClient::RetryBuild(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RetryBuild(google::cloud::ExperimentalTag{}, operation); +} + future> CloudBuildClient::ApproveBuild( std::string const& name, @@ -130,6 +187,19 @@ CloudBuildClient::ApproveBuild( return connection_->ApproveBuild(request); } +StatusOr CloudBuildClient::ApproveBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::devtools::cloudbuild::v1::ApprovalResult const& approval_result, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v1::ApproveBuildRequest request; + request.set_name(name); + *request.mutable_approval_result() = approval_result; + return connection_->ApproveBuild(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudBuildClient::ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request, @@ -138,6 +208,23 @@ CloudBuildClient::ApproveBuild( return connection_->ApproveBuild(request); } +StatusOr CloudBuildClient::ApproveBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApproveBuild(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudBuildClient::ApproveBuild(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApproveBuild(google::cloud::ExperimentalTag{}, operation); +} + StatusOr CloudBuildClient::CreateBuildTrigger( std::string const& project_id, @@ -243,6 +330,19 @@ CloudBuildClient::RunBuildTrigger( return connection_->RunBuildTrigger(request); } +StatusOr CloudBuildClient::RunBuildTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& trigger_id, + google::devtools::cloudbuild::v1::RepoSource const& source, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v1::RunBuildTriggerRequest request; + request.set_project_id(project_id); + request.set_trigger_id(trigger_id); + *request.mutable_source() = source; + return connection_->RunBuildTrigger(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudBuildClient::RunBuildTrigger( google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request, @@ -251,6 +351,24 @@ CloudBuildClient::RunBuildTrigger( return connection_->RunBuildTrigger(request); } +StatusOr CloudBuildClient::RunBuildTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunBuildTrigger(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudBuildClient::RunBuildTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunBuildTrigger(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr CloudBuildClient::ReceiveTriggerWebhook( google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const& @@ -273,6 +391,20 @@ CloudBuildClient::CreateWorkerPool( return connection_->CreateWorkerPool(request); } +StatusOr CloudBuildClient::CreateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::devtools::cloudbuild::v1::WorkerPool const& worker_pool, + std::string const& worker_pool_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest request; + request.set_parent(parent); + *request.mutable_worker_pool() = worker_pool; + request.set_worker_pool_id(worker_pool_id); + return connection_->CreateWorkerPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudBuildClient::CreateWorkerPool( google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request, @@ -281,6 +413,24 @@ CloudBuildClient::CreateWorkerPool( return connection_->CreateWorkerPool(request); } +StatusOr CloudBuildClient::CreateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkerPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudBuildClient::CreateWorkerPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkerPool(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr CloudBuildClient::GetWorkerPool(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -306,6 +456,16 @@ CloudBuildClient::DeleteWorkerPool(std::string const& name, Options opts) { return connection_->DeleteWorkerPool(request); } +StatusOr CloudBuildClient::DeleteWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest request; + request.set_name(name); + return connection_->DeleteWorkerPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudBuildClient::DeleteWorkerPool( @@ -315,6 +475,25 @@ CloudBuildClient::DeleteWorkerPool( return connection_->DeleteWorkerPool(request); } +StatusOr CloudBuildClient::DeleteWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkerPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudBuildClient::DeleteWorkerPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkerPool(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudBuildClient::UpdateWorkerPool( google::devtools::cloudbuild::v1::WorkerPool const& worker_pool, @@ -326,6 +505,18 @@ CloudBuildClient::UpdateWorkerPool( return connection_->UpdateWorkerPool(request); } +StatusOr CloudBuildClient::UpdateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::WorkerPool const& worker_pool, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest request; + *request.mutable_worker_pool() = worker_pool; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateWorkerPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudBuildClient::UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request, @@ -334,6 +525,24 @@ CloudBuildClient::UpdateWorkerPool( return connection_->UpdateWorkerPool(request); } +StatusOr CloudBuildClient::UpdateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkerPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudBuildClient::UpdateWorkerPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkerPool(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CloudBuildClient::ListWorkerPools(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/cloudbuild/v1/cloud_build_client.h b/google/cloud/cloudbuild/v1/cloud_build_client.h index bf8a94a560b8a..74b966806689d 100644 --- a/google/cloud/cloudbuild/v1/cloud_build_client.h +++ b/google/cloud/cloudbuild/v1/cloud_build_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CLOUDBUILD_V1_CLOUD_BUILD_CLIENT_H #include "google/cloud/cloudbuild/v1/cloud_build_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -130,6 +132,11 @@ class CloudBuildClient { std::string const& project_id, google::devtools::cloudbuild::v1::Build const& build, Options opts = {}); + StatusOr CreateBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, + google::devtools::cloudbuild::v1::Build const& build, Options opts = {}); + // clang-format off /// /// Starts a build with the specified configuration. @@ -172,6 +179,15 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::CreateBuildRequest const& request, Options opts = {}); + StatusOr CreateBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request, + Options opts = {}); + + future> CreateBuild( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns information about a previously requested build. @@ -433,6 +449,10 @@ class CloudBuildClient { future> RetryBuild( std::string const& project_id, std::string const& id, Options opts = {}); + StatusOr RetryBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& id, Options opts = {}); + // clang-format off /// /// Creates a new build based on the specified build. @@ -497,6 +517,15 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::RetryBuildRequest const& request, Options opts = {}); + StatusOr RetryBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request, + Options opts = {}); + + future> RetryBuild( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Approves or rejects a pending build. @@ -538,6 +567,12 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::ApprovalResult const& approval_result, Options opts = {}); + StatusOr ApproveBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::devtools::cloudbuild::v1::ApprovalResult const& approval_result, + Options opts = {}); + // clang-format off /// /// Approves or rejects a pending build. @@ -581,6 +616,15 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::ApproveBuildRequest const& request, Options opts = {}); + StatusOr ApproveBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request, + Options opts = {}); + + future> ApproveBuild( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a new `BuildTrigger`. @@ -949,6 +993,12 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::RepoSource const& source, Options opts = {}); + StatusOr RunBuildTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& trigger_id, + google::devtools::cloudbuild::v1::RepoSource const& source, + Options opts = {}); + // clang-format off /// /// Runs a `BuildTrigger` at a particular source revision. @@ -993,6 +1043,15 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request, Options opts = {}); + StatusOr RunBuildTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request, + Options opts = {}); + + future> RunBuildTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// ReceiveTriggerWebhook [Experimental] is called when the API receives a @@ -1069,6 +1128,12 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::WorkerPool const& worker_pool, std::string const& worker_pool_id, Options opts = {}); + StatusOr CreateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::devtools::cloudbuild::v1::WorkerPool const& worker_pool, + std::string const& worker_pool_id, Options opts = {}); + // clang-format off /// /// Creates a `WorkerPool`. @@ -1108,6 +1173,16 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request, Options opts = {}); + StatusOr CreateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request, + Options opts = {}); + + future> + CreateWorkerPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns details of a `WorkerPool`. @@ -1200,6 +1275,10 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::DeleteWorkerPoolOperationMetadata>> DeleteWorkerPool(std::string const& name, Options opts = {}); + StatusOr DeleteWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `WorkerPool`. @@ -1240,6 +1319,17 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request, Options opts = {}); + StatusOr DeleteWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request, + Options opts = {}); + + future> + DeleteWorkerPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a `WorkerPool`. @@ -1278,6 +1368,11 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::WorkerPool const& worker_pool, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::WorkerPool const& worker_pool, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a `WorkerPool`. @@ -1317,6 +1412,16 @@ class CloudBuildClient { google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request, Options opts = {}); + StatusOr UpdateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request, + Options opts = {}); + + future> + UpdateWorkerPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists `WorkerPool`s. 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..da594f7b79143 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,59 @@ CloudBuildConnectionImpl::CreateBuild( polling_policy(*current), __func__); } +StatusOr CloudBuildConnectionImpl::CreateBuild( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +258,59 @@ CloudBuildConnectionImpl::RetryBuild( polling_policy(*current), __func__); } +StatusOr CloudBuildConnectionImpl::RetryBuild( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +351,59 @@ CloudBuildConnectionImpl::ApproveBuild( polling_policy(*current), __func__); } +StatusOr CloudBuildConnectionImpl::ApproveBuild( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +540,60 @@ CloudBuildConnectionImpl::RunBuildTrigger( polling_policy(*current), __func__); } +StatusOr +CloudBuildConnectionImpl::RunBuildTrigger( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +651,61 @@ CloudBuildConnectionImpl::CreateWorkerPool( polling_policy(*current), __func__); } +StatusOr +CloudBuildConnectionImpl::CreateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +762,62 @@ CloudBuildConnectionImpl::DeleteWorkerPool( polling_policy(*current), __func__); } +StatusOr +CloudBuildConnectionImpl::DeleteWorkerPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +858,61 @@ CloudBuildConnectionImpl::UpdateWorkerPool( polling_policy(*current), __func__); } +StatusOr +CloudBuildConnectionImpl::UpdateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..bf3134454a52c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request) + override; + + future> CreateBuild( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request) + override; + + future> RetryBuild( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) override; + StatusOr ApproveBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) + override; + + future> ApproveBuild( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request) + override; + + future> RunBuildTrigger( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request) + override; + + future> + CreateWorkerPool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request) + override; + + future> + DeleteWorkerPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) override; + StatusOr UpdateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) + override; + + future> + UpdateWorkerPool(google::cloud::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..06e02b13dc55d 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,30 @@ CloudBuildTracingConnection::CreateBuild( return internal::EndSpan(std::move(span), child_->CreateBuild(request)); } +StatusOr +CloudBuildTracingConnection::CreateBuild( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::CreateBuild( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CloudBuildTracingConnection::GetBuild( google::devtools::cloudbuild::v1::GetBuildRequest const& request) { @@ -80,6 +104,30 @@ CloudBuildTracingConnection::RetryBuild( return internal::EndSpan(std::move(span), child_->RetryBuild(request)); } +StatusOr +CloudBuildTracingConnection::RetryBuild( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::RetryBuild( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudBuildTracingConnection::ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) { @@ -89,6 +137,30 @@ CloudBuildTracingConnection::ApproveBuild( return internal::EndSpan(std::move(span), child_->ApproveBuild(request)); } +StatusOr +CloudBuildTracingConnection::ApproveBuild( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::ApproveBuild( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CloudBuildTracingConnection::CreateBuildTrigger( google::devtools::cloudbuild::v1::CreateBuildTriggerRequest const& @@ -148,6 +220,30 @@ CloudBuildTracingConnection::RunBuildTrigger( return internal::EndSpan(std::move(span), child_->RunBuildTrigger(request)); } +StatusOr +CloudBuildTracingConnection::RunBuildTrigger( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::RunBuildTrigger( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CloudBuildTracingConnection::ReceiveTriggerWebhook( google::devtools::cloudbuild::v1::ReceiveTriggerWebhookRequest const& @@ -167,6 +263,30 @@ CloudBuildTracingConnection::CreateWorkerPool( return internal::EndSpan(std::move(span), child_->CreateWorkerPool(request)); } +StatusOr +CloudBuildTracingConnection::CreateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::CreateWorkerPool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CloudBuildTracingConnection::GetWorkerPool( google::devtools::cloudbuild::v1::GetWorkerPoolRequest const& request) { @@ -186,6 +306,31 @@ CloudBuildTracingConnection::DeleteWorkerPool( return internal::EndSpan(std::move(span), child_->DeleteWorkerPool(request)); } +StatusOr +CloudBuildTracingConnection::DeleteWorkerPool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::DeleteWorkerPool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudBuildTracingConnection::UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) { @@ -195,6 +340,30 @@ CloudBuildTracingConnection::UpdateWorkerPool( return internal::EndSpan(std::move(span), child_->UpdateWorkerPool(request)); } +StatusOr +CloudBuildTracingConnection::UpdateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudBuildTracingConnection::UpdateWorkerPool( + google::cloud::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(google::cloud::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..82a8d721528ac 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request) + override; + + future> CreateBuild( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request) + override; + + future> RetryBuild( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApproveBuild( google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) override; + StatusOr ApproveBuild( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request) + override; + + future> ApproveBuild( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request) + override; + + future> RunBuildTrigger( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& request) + override; + + future> + CreateWorkerPool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& request) + override; + + future> + DeleteWorkerPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkerPool( google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) override; + StatusOr UpdateWorkerPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request) + override; + + future> + UpdateWorkerPool(google::cloud::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..8fbab190a83d9 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateBuildRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBuild, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RetryBuildRequest const& request), + (override)); + + MOCK_METHOD(future>, + RetryBuild, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ApproveBuild, (google::devtools::cloudbuild::v1::ApproveBuildRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ApproveBuild, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::ApproveBuildRequest const& request), + (override)); + + MOCK_METHOD(future>, + ApproveBuild, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::RunBuildTriggerRequest const& request), + (override)); + + MOCK_METHOD(future>, + RunBuildTrigger, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::CreateWorkerPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateWorkerPool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetWorkerPool, (google::devtools::cloudbuild::v1::GetWorkerPoolRequest const& request), @@ -139,12 +199,38 @@ class MockCloudBuildConnection : public cloudbuild_v1::CloudBuildConnection { request), (override)); + MOCK_METHOD(StatusOr, DeleteWorkerPool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::DeleteWorkerPoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteWorkerPool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateWorkerPool, (google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateWorkerPool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v1::UpdateWorkerPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateWorkerPool, + (google::cloud::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..2f18a74c16ac5 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,61 @@ RepositoryManagerConnectionImpl::CreateConnection( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::CreateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +252,61 @@ RepositoryManagerConnectionImpl::UpdateConnection( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +347,61 @@ RepositoryManagerConnectionImpl::DeleteConnection( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +442,61 @@ RepositoryManagerConnectionImpl::CreateRepository( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +538,63 @@ RepositoryManagerConnectionImpl::BatchCreateRepositories( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::BatchCreateRepositories( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +685,61 @@ RepositoryManagerConnectionImpl::DeleteRepository( polling_policy(*current), __func__); } +StatusOr +RepositoryManagerConnectionImpl::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..616e16ebfaf6d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request) + override; + + future> + CreateConnection(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request) + override; + + future> + UpdateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) override; + StatusOr DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) + override; + + future> + DeleteConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) override; + StatusOr CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) + override; + + future> + CreateRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateRepositories( google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& request) override; + StatusOr BatchCreateRepositories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request) override; + + future> + BatchCreateRepositories( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request) + override; + + future> + DeleteRepository(google::cloud::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..fca105afcead6 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,30 @@ RepositoryManagerTracingConnection::CreateConnection( return internal::EndSpan(std::move(span), child_->CreateConnection(request)); } +StatusOr +RepositoryManagerTracingConnection::CreateConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::CreateConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RepositoryManagerTracingConnection::GetConnection( google::devtools::cloudbuild::v2::GetConnectionRequest const& request) { @@ -72,6 +96,30 @@ RepositoryManagerTracingConnection::UpdateConnection( return internal::EndSpan(std::move(span), child_->UpdateConnection(request)); } +StatusOr +RepositoryManagerTracingConnection::UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::UpdateConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RepositoryManagerTracingConnection::DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) { @@ -81,6 +129,30 @@ RepositoryManagerTracingConnection::DeleteConnection( return internal::EndSpan(std::move(span), child_->DeleteConnection(request)); } +StatusOr +RepositoryManagerTracingConnection::DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::DeleteConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RepositoryManagerTracingConnection::CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) { @@ -90,6 +162,30 @@ RepositoryManagerTracingConnection::CreateRepository( return internal::EndSpan(std::move(span), child_->CreateRepository(request)); } +StatusOr +RepositoryManagerTracingConnection::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::CreateRepository( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future< StatusOr> RepositoryManagerTracingConnection::BatchCreateRepositories( @@ -102,6 +198,32 @@ RepositoryManagerTracingConnection::BatchCreateRepositories( child_->BatchCreateRepositories(request)); } +StatusOr +RepositoryManagerTracingConnection::BatchCreateRepositories( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +RepositoryManagerTracingConnection::BatchCreateRepositories( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RepositoryManagerTracingConnection::GetRepository( google::devtools::cloudbuild::v2::GetRepositoryRequest const& request) { @@ -132,6 +254,30 @@ RepositoryManagerTracingConnection::DeleteRepository( return internal::EndSpan(std::move(span), child_->DeleteRepository(request)); } +StatusOr +RepositoryManagerTracingConnection::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RepositoryManagerTracingConnection::DeleteRepository( + google::cloud::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(google::cloud::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..4e777a34392be 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request) + override; + + future> + CreateConnection(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request) + override; + + future> + UpdateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) override; + StatusOr DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request) + override; + + future> + DeleteConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) override; + StatusOr CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request) + override; + + future> + CreateRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateRepositories( google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& request) override; + StatusOr BatchCreateRepositories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request) override; + + future> + BatchCreateRepositories( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request) + override; + + future> + DeleteRepository(google::cloud::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..9e2584c2b1a61 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateConnection, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnection, @@ -77,12 +101,37 @@ class MockRepositoryManagerConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateRepository, (google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateRepository, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateRepository, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -91,6 +140,21 @@ class MockRepositoryManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchCreateRepositories, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchCreateRepositories, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetRepository, (google::devtools::cloudbuild::v2::GetRepositoryRequest const& request), @@ -109,6 +173,19 @@ class MockRepositoryManagerConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteRepository, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteRepository, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, FetchReadWriteToken, diff --git a/google/cloud/cloudbuild/v2/repository_manager_client.cc b/google/cloud/cloudbuild/v2/repository_manager_client.cc index 732ae3b087b91..cf1a8393d0786 100644 --- a/google/cloud/cloudbuild/v2/repository_manager_client.cc +++ b/google/cloud/cloudbuild/v2/repository_manager_client.cc @@ -45,6 +45,21 @@ RepositoryManagerClient::CreateConnection( return connection_->CreateConnection(request); } +StatusOr +RepositoryManagerClient::CreateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::devtools::cloudbuild::v2::Connection const& connection, + std::string const& connection_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v2::CreateConnectionRequest request; + request.set_parent(parent); + *request.mutable_connection() = connection; + request.set_connection_id(connection_id); + return connection_->CreateConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RepositoryManagerClient::CreateConnection( google::devtools::cloudbuild::v2::CreateConnectionRequest const& request, @@ -53,6 +68,25 @@ RepositoryManagerClient::CreateConnection( return connection_->CreateConnection(request); } +StatusOr +RepositoryManagerClient::CreateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RepositoryManagerClient::CreateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnection(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RepositoryManagerClient::GetConnection(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -97,6 +131,19 @@ RepositoryManagerClient::UpdateConnection( return connection_->UpdateConnection(request); } +StatusOr +RepositoryManagerClient::UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::Connection const& connection, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v2::UpdateConnectionRequest request; + *request.mutable_connection() = connection; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RepositoryManagerClient::UpdateConnection( google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request, @@ -105,6 +152,25 @@ RepositoryManagerClient::UpdateConnection( return connection_->UpdateConnection(request); } +StatusOr +RepositoryManagerClient::UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RepositoryManagerClient::UpdateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> RepositoryManagerClient::DeleteConnection(std::string const& name, Options opts) { @@ -114,6 +180,18 @@ RepositoryManagerClient::DeleteConnection(std::string const& name, return connection_->DeleteConnection(request); } +StatusOr +RepositoryManagerClient::DeleteConnection(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v2::DeleteConnectionRequest request; + request.set_name(name); + return connection_->DeleteConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RepositoryManagerClient::DeleteConnection( google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request, @@ -122,6 +200,25 @@ RepositoryManagerClient::DeleteConnection( return connection_->DeleteConnection(request); } +StatusOr +RepositoryManagerClient::DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RepositoryManagerClient::DeleteConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> RepositoryManagerClient::CreateRepository( std::string const& parent, @@ -135,6 +232,21 @@ RepositoryManagerClient::CreateRepository( return connection_->CreateRepository(request); } +StatusOr +RepositoryManagerClient::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::devtools::cloudbuild::v2::Repository const& repository, + std::string const& repository_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v2::CreateRepositoryRequest request; + request.set_parent(parent); + *request.mutable_repository() = repository; + request.set_repository_id(repository_id); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RepositoryManagerClient::CreateRepository( google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request, @@ -143,6 +255,25 @@ RepositoryManagerClient::CreateRepository( return connection_->CreateRepository(request); } +StatusOr +RepositoryManagerClient::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RepositoryManagerClient::CreateRepository( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + operation); +} + future< StatusOr> RepositoryManagerClient::BatchCreateRepositories( @@ -158,6 +289,22 @@ RepositoryManagerClient::BatchCreateRepositories( return connection_->BatchCreateRepositories(request); } +StatusOr +RepositoryManagerClient::BatchCreateRepositories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector< + google::devtools::cloudbuild::v2::CreateRepositoryRequest> const& + requests, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest request; + request.set_parent(parent); + *request.mutable_requests() = {requests.begin(), requests.end()}; + return connection_->BatchCreateRepositories( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> RepositoryManagerClient::BatchCreateRepositories( @@ -168,6 +315,27 @@ RepositoryManagerClient::BatchCreateRepositories( return connection_->BatchCreateRepositories(request); } +StatusOr +RepositoryManagerClient::BatchCreateRepositories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateRepositories( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +RepositoryManagerClient::BatchCreateRepositories( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateRepositories(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RepositoryManagerClient::GetRepository(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -210,6 +378,18 @@ RepositoryManagerClient::DeleteRepository(std::string const& name, return connection_->DeleteRepository(request); } +StatusOr +RepositoryManagerClient::DeleteRepository(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::devtools::cloudbuild::v2::DeleteRepositoryRequest request; + request.set_name(name); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RepositoryManagerClient::DeleteRepository( google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request, @@ -218,6 +398,25 @@ RepositoryManagerClient::DeleteRepository( return connection_->DeleteRepository(request); } +StatusOr +RepositoryManagerClient::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RepositoryManagerClient::DeleteRepository( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RepositoryManagerClient::FetchReadWriteToken(std::string const& repository, Options opts) { diff --git a/google/cloud/cloudbuild/v2/repository_manager_client.h b/google/cloud/cloudbuild/v2/repository_manager_client.h index 673185f0ba12b..70fdc6b9abf3c 100644 --- a/google/cloud/cloudbuild/v2/repository_manager_client.h +++ b/google/cloud/cloudbuild/v2/repository_manager_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CLOUDBUILD_V2_REPOSITORY_MANAGER_CLIENT_H #include "google/cloud/cloudbuild/v2/repository_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -129,6 +131,12 @@ class RepositoryManagerClient { google::devtools::cloudbuild::v2::Connection const& connection, std::string const& connection_id, Options opts = {}); + StatusOr CreateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::devtools::cloudbuild::v2::Connection const& connection, + std::string const& connection_id, Options opts = {}); + // clang-format off /// /// Creates a Connection. @@ -168,6 +176,16 @@ class RepositoryManagerClient { google::devtools::cloudbuild::v2::CreateConnectionRequest const& request, Options opts = {}); + StatusOr CreateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateConnectionRequest const& request, + Options opts = {}); + + future> + CreateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single connection. @@ -335,6 +353,11 @@ class RepositoryManagerClient { google::devtools::cloudbuild::v2::Connection const& connection, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::Connection const& connection, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a single connection. @@ -374,6 +397,16 @@ class RepositoryManagerClient { google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request, Options opts = {}); + StatusOr UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::UpdateConnectionRequest const& request, + Options opts = {}); + + future> + UpdateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single connection. @@ -407,6 +440,10 @@ class RepositoryManagerClient { future> DeleteConnection(std::string const& name, Options opts = {}); + StatusOr DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single connection. @@ -446,6 +483,16 @@ class RepositoryManagerClient { google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request, Options opts = {}); + StatusOr DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteConnectionRequest const& request, + Options opts = {}); + + future> + DeleteConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a Repository. @@ -488,6 +535,12 @@ class RepositoryManagerClient { google::devtools::cloudbuild::v2::Repository const& repository, std::string const& repository_id, Options opts = {}); + StatusOr CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::devtools::cloudbuild::v2::Repository const& repository, + std::string const& repository_id, Options opts = {}); + // clang-format off /// /// Creates a Repository. @@ -527,6 +580,16 @@ class RepositoryManagerClient { google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request, Options opts = {}); + StatusOr CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::CreateRepositoryRequest const& request, + Options opts = {}); + + future> + CreateRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates multiple repositories inside a connection. @@ -569,6 +632,14 @@ class RepositoryManagerClient { requests, Options opts = {}); + StatusOr BatchCreateRepositories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector< + google::devtools::cloudbuild::v2::CreateRepositoryRequest> const& + requests, + Options opts = {}); + // clang-format off /// /// Creates multiple repositories inside a connection. @@ -610,6 +681,18 @@ class RepositoryManagerClient { request, Options opts = {}); + StatusOr BatchCreateRepositories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::BatchCreateRepositoriesRequest const& + request, + Options opts = {}); + + future> + BatchCreateRepositories(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single repository. @@ -775,6 +858,10 @@ class RepositoryManagerClient { future> DeleteRepository(std::string const& name, Options opts = {}); + StatusOr DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single repository. @@ -814,6 +901,16 @@ class RepositoryManagerClient { google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request, Options opts = {}); + StatusOr DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::devtools::cloudbuild::v2::DeleteRepositoryRequest const& request, + Options opts = {}); + + future> + DeleteRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Fetches read/write token of a given repository. 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_client.h b/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_client.h index 0cc5c65c93709..2193e634c7450 100644 --- a/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_client.h +++ b/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CLOUDCONTROLSPARTNER_V1_CLOUD_CONTROLS_PARTNER_CORE_CLIENT_H #include "google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_core_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_client.h index 9b3a2f4f651af..694740d810436 100644 --- a/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_client.h +++ b/google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CLOUDCONTROLSPARTNER_V1_CLOUD_CONTROLS_PARTNER_MONITORING_CLIENT_H #include "google/cloud/cloudcontrolspartner/v1/cloud_controls_partner_monitoring_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/cloudquotas/v1/cloud_quotas_client.h index ee956cb1edec0..3474fcbd77031 100644 --- a/google/cloud/cloudquotas/v1/cloud_quotas_client.h +++ b/google/cloud/cloudquotas/v1/cloud_quotas_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CLOUDQUOTAS_V1_CLOUD_QUOTAS_CLIENT_H #include "google/cloud/cloudquotas/v1/cloud_quotas_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_client.cc index 73b7c63ea347c..a63a8c16f4462 100644 --- a/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_client.cc +++ b/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_client.cc @@ -43,6 +43,25 @@ ConsumerProcurementServiceClient::PlaceOrder( return connection_->PlaceOrder(request); } +StatusOr +ConsumerProcurementServiceClient::PlaceOrder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1::PlaceOrderRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PlaceOrder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConsumerProcurementServiceClient::PlaceOrder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PlaceOrder(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ConsumerProcurementServiceClient::GetOrder(std::string const& name, Options opts) { diff --git a/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_client.h b/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_client.h index 849484d8eee3e..7a873f3fa0e99 100644 --- a/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_client.h +++ b/google/cloud/commerce/consumer/procurement/v1/consumer_procurement_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMMERCE_CONSUMER_PROCUREMENT_V1_CONSUMER_PROCUREMENT_CLIENT_H #include "google/cloud/commerce/consumer/procurement/v1/consumer_procurement_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -152,6 +154,17 @@ class ConsumerProcurementServiceClient { PlaceOrderRequest const& request, Options opts = {}); + StatusOr PlaceOrder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request, + Options opts = {}); + + future> + PlaceOrder(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the requested 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..8d41e3c0bd1c1 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,62 @@ ConsumerProcurementServiceConnectionImpl::PlaceOrder( polling_policy(*current), __func__); } +StatusOr +ConsumerProcurementServiceConnectionImpl::PlaceOrder( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..b90b24b3e6bf4 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request) override; + + future> + PlaceOrder(google::cloud::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..2df9a66c40077 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,33 @@ ConsumerProcurementServiceTracingConnection::PlaceOrder( return internal::EndSpan(std::move(span), child_->PlaceOrder(request)); } +StatusOr +ConsumerProcurementServiceTracingConnection::PlaceOrder( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConsumerProcurementServiceTracingConnection::PlaceOrder( + google::cloud::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(google::cloud::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..7e362d76a9889 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request) override; + + future> + PlaceOrder(google::cloud::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..581ca00cb6bcf 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,20 @@ class MockConsumerProcurementServiceConnection PlaceOrderRequest const& request), (override)); + MOCK_METHOD(StatusOr, PlaceOrder, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::commerce::consumer::procurement::v1:: + PlaceOrderRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + PlaceOrder, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetOrder, diff --git a/google/cloud/composer/v1/environments_client.cc b/google/cloud/composer/v1/environments_client.cc index a3b9383f8ca7b..0fa91112c6464 100644 --- a/google/cloud/composer/v1/environments_client.cc +++ b/google/cloud/composer/v1/environments_client.cc @@ -47,6 +47,21 @@ EnvironmentsClient::CreateEnvironment( return connection_->CreateEnvironment(request); } +StatusOr EnvironmentsClient::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::orchestration::airflow::service::v1::Environment const& + environment, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::orchestration::airflow::service::v1::CreateEnvironmentRequest + request; + request.set_parent(parent); + *request.mutable_environment() = environment; + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> EnvironmentsClient::CreateEnvironment( @@ -57,6 +72,26 @@ EnvironmentsClient::CreateEnvironment( return connection_->CreateEnvironment(request); } +StatusOr EnvironmentsClient::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +EnvironmentsClient::CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EnvironmentsClient::GetEnvironment(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -109,6 +144,22 @@ EnvironmentsClient::UpdateEnvironment( return connection_->UpdateEnvironment(request); } +StatusOr EnvironmentsClient::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::orchestration::airflow::service::v1::Environment const& + environment, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::orchestration::airflow::service::v1::UpdateEnvironmentRequest + request; + request.set_name(name); + *request.mutable_environment() = environment; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> EnvironmentsClient::UpdateEnvironment( @@ -119,6 +170,26 @@ EnvironmentsClient::UpdateEnvironment( return connection_->UpdateEnvironment(request); } +StatusOr EnvironmentsClient::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +EnvironmentsClient::UpdateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + future> EnvironmentsClient::DeleteEnvironment(std::string const& name, Options opts) { @@ -129,6 +200,17 @@ EnvironmentsClient::DeleteEnvironment(std::string const& name, Options opts) { return connection_->DeleteEnvironment(request); } +StatusOr EnvironmentsClient::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::orchestration::airflow::service::v1::DeleteEnvironmentRequest + request; + request.set_name(name); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EnvironmentsClient::DeleteEnvironment( @@ -139,6 +221,26 @@ EnvironmentsClient::DeleteEnvironment( return connection_->DeleteEnvironment(request); } +StatusOr EnvironmentsClient::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EnvironmentsClient::DeleteEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EnvironmentsClient::ExecuteAirflowCommand( @@ -413,6 +515,25 @@ EnvironmentsClient::SaveSnapshot( return connection_->SaveSnapshot(request); } +StatusOr EnvironmentsClient::SaveSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SaveSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EnvironmentsClient::SaveSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SaveSnapshot(google::cloud::ExperimentalTag{}, operation); +} + future> EnvironmentsClient::LoadSnapshot( @@ -423,6 +544,25 @@ EnvironmentsClient::LoadSnapshot( return connection_->LoadSnapshot(request); } +StatusOr EnvironmentsClient::LoadSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LoadSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EnvironmentsClient::LoadSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LoadSnapshot(google::cloud::ExperimentalTag{}, operation); +} + future> EnvironmentsClient::DatabaseFailover( @@ -433,6 +573,26 @@ EnvironmentsClient::DatabaseFailover( return connection_->DatabaseFailover(request); } +StatusOr EnvironmentsClient::DatabaseFailover( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DatabaseFailover(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EnvironmentsClient::DatabaseFailover( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DatabaseFailover(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EnvironmentsClient::FetchDatabaseProperties( diff --git a/google/cloud/composer/v1/environments_client.h b/google/cloud/composer/v1/environments_client.h index a9d30430a861f..df619c41d3225 100644 --- a/google/cloud/composer/v1/environments_client.h +++ b/google/cloud/composer/v1/environments_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPOSER_V1_ENVIRONMENTS_CLIENT_H #include "google/cloud/composer/v1/environments_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,13 @@ class EnvironmentsClient { environment, Options opts = {}); + StatusOr CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::orchestration::airflow::service::v1::Environment const& + environment, + Options opts = {}); + // clang-format off /// /// Create a new environment. @@ -166,6 +175,18 @@ class EnvironmentsClient { CreateEnvironmentRequest const& request, Options opts = {}); + StatusOr CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request, + Options opts = {}); + + future< + StatusOr> + CreateEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Get an existing environment. @@ -349,6 +370,13 @@ class EnvironmentsClient { environment, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::orchestration::airflow::service::v1::Environment const& + environment, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update an environment. @@ -389,6 +417,18 @@ class EnvironmentsClient { UpdateEnvironmentRequest const& request, Options opts = {}); + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request, + Options opts = {}); + + future< + StatusOr> + UpdateEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Delete an environment. @@ -423,6 +463,10 @@ class EnvironmentsClient { google::cloud::orchestration::airflow::service::v1::OperationMetadata>> DeleteEnvironment(std::string const& name, Options opts = {}); + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete an environment. @@ -463,6 +507,18 @@ class EnvironmentsClient { DeleteEnvironmentRequest const& request, Options opts = {}); + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request, + Options opts = {}); + + future> + DeleteEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Executes Airflow CLI command. @@ -1390,6 +1446,18 @@ class EnvironmentsClient { SaveSnapshotRequest const& request, Options opts = {}); + StatusOr SaveSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request, + Options opts = {}); + + future> + SaveSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Loads a snapshot of a Cloud Composer environment. @@ -1433,6 +1501,18 @@ class EnvironmentsClient { LoadSnapshotRequest const& request, Options opts = {}); + StatusOr LoadSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request, + Options opts = {}); + + future> + LoadSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Triggers database failover (only for highly resilient environments). @@ -1473,6 +1553,18 @@ class EnvironmentsClient { DatabaseFailoverRequest const& request, Options opts = {}); + StatusOr DatabaseFailover( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request, + Options opts = {}); + + future> + DatabaseFailover(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Fetches database properties. 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_client.h b/google/cloud/composer/v1/image_versions_client.h index 073319d5ab4c6..08fb467b5e1a9 100644 --- a/google/cloud/composer/v1/image_versions_client.h +++ b/google/cloud/composer/v1/image_versions_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPOSER_V1_IMAGE_VERSIONS_CLIENT_H #include "google/cloud/composer/v1/image_versions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..c912e897ae3a1 100644 --- a/google/cloud/composer/v1/internal/environments_connection_impl.cc +++ b/google/cloud/composer/v1/internal/environments_connection_impl.cc @@ -105,6 +105,63 @@ EnvironmentsConnectionImpl::CreateEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +257,63 @@ EnvironmentsConnectionImpl::UpdateEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +356,64 @@ EnvironmentsConnectionImpl::DeleteEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +761,64 @@ EnvironmentsConnectionImpl::SaveSnapshot( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::SaveSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +861,64 @@ EnvironmentsConnectionImpl::LoadSnapshot( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::LoadSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +962,66 @@ EnvironmentsConnectionImpl::DatabaseFailover( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::DatabaseFailover( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..0a9e48ac00928 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request) override; + + future< + StatusOr> + CreateEnvironment(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request) override; + + future< + StatusOr> + UpdateEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment(google::cloud::orchestration::airflow::service::v1:: DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request) override; + + future> + DeleteEnvironment(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request) override; + + future> + SaveSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> LoadSnapshot(google::cloud::orchestration::airflow::service::v1:: LoadSnapshotRequest const& request) override; + StatusOr LoadSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request) override; + + future> + LoadSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DatabaseFailover(google::cloud::orchestration::airflow::service::v1:: DatabaseFailoverRequest const& request) override; + StatusOr DatabaseFailover( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request) override; + + future> + DatabaseFailover(google::cloud::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..16b6b53593e25 100644 --- a/google/cloud/composer/v1/internal/environments_tracing_connection.cc +++ b/google/cloud/composer/v1/internal/environments_tracing_connection.cc @@ -44,6 +44,32 @@ EnvironmentsTracingConnection::CreateEnvironment( return internal::EndSpan(std::move(span), child_->CreateEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +EnvironmentsTracingConnection::CreateEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr EnvironmentsTracingConnection::GetEnvironment( google::cloud::orchestration::airflow::service::v1:: @@ -78,6 +104,32 @@ EnvironmentsTracingConnection::UpdateEnvironment( return internal::EndSpan(std::move(span), child_->UpdateEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +EnvironmentsTracingConnection::UpdateEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EnvironmentsTracingConnection::DeleteEnvironment( @@ -89,6 +141,32 @@ EnvironmentsTracingConnection::DeleteEnvironment( return internal::EndSpan(std::move(span), child_->DeleteEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::DeleteEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr EnvironmentsTracingConnection::ExecuteAirflowCommand( @@ -263,6 +341,32 @@ EnvironmentsTracingConnection::SaveSnapshot( return internal::EndSpan(std::move(span), child_->SaveSnapshot(request)); } +StatusOr +EnvironmentsTracingConnection::SaveSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::SaveSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EnvironmentsTracingConnection::LoadSnapshot( @@ -274,6 +378,32 @@ EnvironmentsTracingConnection::LoadSnapshot( return internal::EndSpan(std::move(span), child_->LoadSnapshot(request)); } +StatusOr +EnvironmentsTracingConnection::LoadSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::LoadSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EnvironmentsTracingConnection::DatabaseFailover( @@ -285,6 +415,32 @@ EnvironmentsTracingConnection::DatabaseFailover( return internal::EndSpan(std::move(span), child_->DatabaseFailover(request)); } +StatusOr +EnvironmentsTracingConnection::DatabaseFailover( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::DatabaseFailover( + google::cloud::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(google::cloud::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..9ea1e4c8e9160 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request) override; + + future< + StatusOr> + CreateEnvironment(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request) override; + + future< + StatusOr> + UpdateEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment(google::cloud::orchestration::airflow::service::v1:: DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request) override; + + future> + DeleteEnvironment(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request) override; + + future> + SaveSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> LoadSnapshot(google::cloud::orchestration::airflow::service::v1:: LoadSnapshotRequest const& request) override; + StatusOr LoadSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request) override; + + future> + LoadSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DatabaseFailover(google::cloud::orchestration::airflow::service::v1:: DatabaseFailoverRequest const& request) override; + StatusOr DatabaseFailover( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request) override; + + future> + DatabaseFailover(google::cloud::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..82cf7044a99e8 100644 --- a/google/cloud/composer/v1/mocks/mock_environments_connection.h +++ b/google/cloud/composer/v1/mocks/mock_environments_connection.h @@ -54,6 +54,20 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { CreateEnvironmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + CreateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetEnvironment, @@ -77,6 +91,20 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { UpdateEnvironmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + UpdateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteEnvironment, @@ -84,6 +112,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { DeleteEnvironmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DeleteEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, ExecuteAirflowCommand, @@ -186,6 +227,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { SaveSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, SaveSnapshot, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + SaveSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + SaveSnapshot, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, LoadSnapshot, @@ -193,6 +247,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { LoadSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, LoadSnapshot, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + LoadSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + LoadSnapshot, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DatabaseFailover, @@ -200,6 +267,19 @@ class MockEnvironmentsConnection : public composer_v1::EnvironmentsConnection { DatabaseFailoverRequest const& request), (override)); + MOCK_METHOD(StatusOr, DatabaseFailover, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::orchestration::airflow::service::v1:: + DatabaseFailoverRequest const& request), + (override)); + + MOCK_METHOD(future>, + DatabaseFailover, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, FetchDatabaseProperties, diff --git a/google/cloud/compute/accelerator_types/v1/accelerator_types_client.h b/google/cloud/compute/accelerator_types/v1/accelerator_types_client.h index 3aeaf83ec16de..9a22d513fa38e 100644 --- a/google/cloud/compute/accelerator_types/v1/accelerator_types_client.h +++ b/google/cloud/compute/accelerator_types/v1/accelerator_types_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ACCELERATOR_TYPES_V1_ACCELERATOR_TYPES_CLIENT_H #include "google/cloud/compute/accelerator_types/v1/accelerator_types_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/compute/addresses/v1/addresses_client.cc index a3cf5692f8982..cad2ff05c5ae8 100644 --- a/google/cloud/compute/addresses/v1/addresses_client.cc +++ b/google/cloud/compute/addresses/v1/addresses_client.cc @@ -65,6 +65,21 @@ AddressesClient::DeleteAddress(std::string const& project, return connection_->DeleteAddress(request); } +StatusOr +AddressesClient::DeleteAddress(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& address, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest request; + request.set_project(project); + request.set_region(region); + request.set_address(address); + return connection_->DeleteAddress(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AddressesClient::DeleteAddress( google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& @@ -74,6 +89,26 @@ AddressesClient::DeleteAddress( return connection_->DeleteAddress(request); } +StatusOr +AddressesClient::DeleteAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAddress(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AddressesClient::DeleteAddress( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAddress(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AddressesClient::GetAddress( std::string const& project, std::string const& region, std::string const& address, Options opts) { @@ -106,6 +141,21 @@ AddressesClient::InsertAddress( return connection_->InsertAddress(request); } +StatusOr +AddressesClient::InsertAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Address const& address_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_address_resource() = address_resource; + return connection_->InsertAddress(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AddressesClient::InsertAddress( google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& @@ -115,6 +165,26 @@ AddressesClient::InsertAddress( return connection_->InsertAddress(request); } +StatusOr +AddressesClient::InsertAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertAddress(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AddressesClient::InsertAddress( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertAddress(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AddressesClient::ListAddresses(std::string const& project, std::string const& region, Options opts) { @@ -150,6 +220,24 @@ AddressesClient::Move( return connection_->Move(request); } +StatusOr AddressesClient::Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& address, + google::cloud::cpp::compute::v1::RegionAddressesMoveRequest const& + region_addresses_move_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::addresses::v1::MoveRequest request; + request.set_project(project); + request.set_region(region); + request.set_address(address); + *request.mutable_region_addresses_move_request_resource() = + region_addresses_move_request_resource; + return connection_->Move(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AddressesClient::Move( google::cloud::cpp::compute::addresses::v1::MoveRequest const& request, @@ -158,6 +246,23 @@ AddressesClient::Move( return connection_->Move(request); } +StatusOr AddressesClient::Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Move(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AddressesClient::Move( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Move(google::cloud::ExperimentalTag{}, operation); +} + future> AddressesClient::SetLabels( std::string const& project, std::string const& region, @@ -175,6 +280,24 @@ AddressesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr AddressesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest request; + request.set_project(project); + request.set_region(region); + request.set_resource(resource); + *request.mutable_region_set_labels_request_resource() = + region_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AddressesClient::SetLabels( google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& request, @@ -183,6 +306,23 @@ AddressesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr AddressesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AddressesClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_addresses_v1 } // namespace cloud diff --git a/google/cloud/compute/addresses/v1/addresses_client.h b/google/cloud/compute/addresses/v1/addresses_client.h index 941d8cb13c2b8..e2ea323d04492 100644 --- a/google/cloud/compute/addresses/v1/addresses_client.h +++ b/google/cloud/compute/addresses/v1/addresses_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ADDRESSES_V1_ADDRESSES_CLIENT_H #include "google/cloud/compute/addresses/v1/addresses_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,6 +204,11 @@ class AddressesClient { std::string const& project, std::string const& region, std::string const& address, Options opts = {}); + StatusOr DeleteAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& address, Options opts = {}); + // clang-format off /// /// Deletes the specified address resource. @@ -241,6 +248,17 @@ class AddressesClient { request, Options opts = {}); + StatusOr DeleteAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request, + Options opts = {}); + + future> DeleteAddress( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified address resource. @@ -340,6 +358,12 @@ class AddressesClient { google::cloud::cpp::compute::v1::Address const& address_resource, Options opts = {}); + StatusOr InsertAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Address const& address_resource, + Options opts = {}); + // clang-format off /// /// Creates an address resource in the specified project by using the data @@ -380,6 +404,17 @@ class AddressesClient { request, Options opts = {}); + StatusOr InsertAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request, + Options opts = {}); + + future> InsertAddress( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of addresses contained within the specified region. @@ -496,6 +531,14 @@ class AddressesClient { region_addresses_move_request_resource, Options opts = {}); + StatusOr Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& address, + google::cloud::cpp::compute::v1::RegionAddressesMoveRequest const& + region_addresses_move_request_resource, + Options opts = {}); + // clang-format off /// /// Moves the specified address resource. @@ -534,6 +577,16 @@ class AddressesClient { google::cloud::cpp::compute::addresses::v1::MoveRequest const& request, Options opts = {}); + StatusOr Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request, + Options opts = {}); + + future> Move( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the labels on an Address. To learn more about labels, read the @@ -574,6 +627,14 @@ class AddressesClient { region_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on an Address. To learn more about labels, read the @@ -614,6 +675,17 @@ class AddressesClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..5c911948552c5 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,31 @@ AddressesTracingConnection::DeleteAddress( return internal::EndSpan(std::move(span), child_->DeleteAddress(request)); } +StatusOr +AddressesTracingConnection::DeleteAddress( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AddressesTracingConnection::DeleteAddress( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AddressesTracingConnection::GetAddress( google::cloud::cpp::compute::addresses::v1::GetAddressRequest const& @@ -77,6 +102,31 @@ AddressesTracingConnection::InsertAddress( return internal::EndSpan(std::move(span), child_->InsertAddress(request)); } +StatusOr +AddressesTracingConnection::InsertAddress( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AddressesTracingConnection::InsertAddress( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AddressesTracingConnection::ListAddresses( google::cloud::cpp::compute::addresses::v1::ListAddressesRequest request) { @@ -97,6 +147,30 @@ AddressesTracingConnection::Move( return internal::EndSpan(std::move(span), child_->Move(request)); } +StatusOr +AddressesTracingConnection::Move( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AddressesTracingConnection::Move( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AddressesTracingConnection::SetLabels( google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& @@ -107,6 +181,31 @@ AddressesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +AddressesTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AddressesTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..e310f8ca98b65 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request) override; + + future> DeleteAddress( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request) override; + + future> InsertAddress( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request) + override; + + future> Move( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::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..3b6e75b686020 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::DeleteAddressRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteAddress, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::InsertAddressRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertAddress, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::MoveRequest const& request), + (override)); + + MOCK_METHOD(future>, + Move, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::addresses::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.cc b/google/cloud/compute/autoscalers/v1/autoscalers_client.cc index e0b1e987f1d51..9495f315f77dc 100644 --- a/google/cloud/compute/autoscalers/v1/autoscalers_client.cc +++ b/google/cloud/compute/autoscalers/v1/autoscalers_client.cc @@ -66,6 +66,22 @@ AutoscalersClient::DeleteAutoscaler(std::string const& project, return connection_->DeleteAutoscaler(request); } +StatusOr +AutoscalersClient::DeleteAutoscaler(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& autoscaler, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::autoscalers::v1::DeleteAutoscalerRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_autoscaler(autoscaler); + return connection_->DeleteAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoscalersClient::DeleteAutoscaler( google::cloud::cpp::compute::autoscalers::v1::DeleteAutoscalerRequest const& @@ -75,6 +91,26 @@ AutoscalersClient::DeleteAutoscaler( return connection_->DeleteAutoscaler(request); } +StatusOr +AutoscalersClient::DeleteAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::DeleteAutoscalerRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoscalersClient::DeleteAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAutoscaler(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AutoscalersClient::GetAutoscaler(std::string const& project, std::string const& zone, @@ -109,6 +145,21 @@ AutoscalersClient::InsertAutoscaler( return connection_->InsertAutoscaler(request); } +StatusOr +AutoscalersClient::InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::autoscalers::v1::InsertAutoscalerRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_autoscaler_resource() = autoscaler_resource; + return connection_->InsertAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoscalersClient::InsertAutoscaler( google::cloud::cpp::compute::autoscalers::v1::InsertAutoscalerRequest const& @@ -118,6 +169,26 @@ AutoscalersClient::InsertAutoscaler( return connection_->InsertAutoscaler(request); } +StatusOr +AutoscalersClient::InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::InsertAutoscalerRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoscalersClient::InsertAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertAutoscaler(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange AutoscalersClient::ListAutoscalers(std::string const& project, std::string const& zone, Options opts) { @@ -150,6 +221,21 @@ AutoscalersClient::PatchAutoscaler( return connection_->PatchAutoscaler(request); } +StatusOr +AutoscalersClient::PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::autoscalers::v1::PatchAutoscalerRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_autoscaler_resource() = autoscaler_resource; + return connection_->PatchAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoscalersClient::PatchAutoscaler( google::cloud::cpp::compute::autoscalers::v1::PatchAutoscalerRequest const& @@ -159,6 +245,26 @@ AutoscalersClient::PatchAutoscaler( return connection_->PatchAutoscaler(request); } +StatusOr +AutoscalersClient::PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::PatchAutoscalerRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoscalersClient::PatchAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchAutoscaler(google::cloud::ExperimentalTag{}, + operation); +} + future> AutoscalersClient::UpdateAutoscaler( std::string const& project, std::string const& zone, @@ -172,6 +278,21 @@ AutoscalersClient::UpdateAutoscaler( return connection_->UpdateAutoscaler(request); } +StatusOr +AutoscalersClient::UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::autoscalers::v1::UpdateAutoscalerRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_autoscaler_resource() = autoscaler_resource; + return connection_->UpdateAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutoscalersClient::UpdateAutoscaler( google::cloud::cpp::compute::autoscalers::v1::UpdateAutoscalerRequest const& @@ -181,6 +302,26 @@ AutoscalersClient::UpdateAutoscaler( return connection_->UpdateAutoscaler(request); } +StatusOr +AutoscalersClient::UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1::UpdateAutoscalerRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutoscalersClient::UpdateAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAutoscaler(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_autoscalers_v1 } // namespace cloud diff --git a/google/cloud/compute/autoscalers/v1/autoscalers_client.h b/google/cloud/compute/autoscalers/v1/autoscalers_client.h index 23fea5d3abc38..39954d272b499 100644 --- a/google/cloud/compute/autoscalers/v1/autoscalers_client.h +++ b/google/cloud/compute/autoscalers/v1/autoscalers_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_AUTOSCALERS_V1_AUTOSCALERS_CLIENT_H #include "google/cloud/compute/autoscalers/v1/autoscalers_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class AutoscalersClient { std::string const& project, std::string const& zone, std::string const& autoscaler, Options opts = {}); + StatusOr DeleteAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& autoscaler, Options opts = {}); + // clang-format off /// /// Deletes the specified autoscaler. @@ -242,6 +249,17 @@ class AutoscalersClient { DeleteAutoscalerRequest const& request, Options opts = {}); + StatusOr DeleteAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const& request, + Options opts = {}); + + future> DeleteAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified autoscaler resource. @@ -341,6 +359,12 @@ class AutoscalersClient { google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, Options opts = {}); + StatusOr InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts = {}); + // clang-format off /// /// Creates an autoscaler in the specified project using the data included in @@ -381,6 +405,17 @@ class AutoscalersClient { InsertAutoscalerRequest const& request, Options opts = {}); + StatusOr InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const& request, + Options opts = {}); + + future> InsertAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of autoscalers contained within the specified zone. @@ -497,6 +532,12 @@ class AutoscalersClient { google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, Options opts = {}); + StatusOr PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts = {}); + // clang-format off /// /// Updates an autoscaler in the specified project using the data included in @@ -538,6 +579,17 @@ class AutoscalersClient { PatchAutoscalerRequest const& request, Options opts = {}); + StatusOr PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const& request, + Options opts = {}); + + future> PatchAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an autoscaler in the specified project using the data included in @@ -575,6 +627,12 @@ class AutoscalersClient { google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, Options opts = {}); + StatusOr UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts = {}); + // clang-format off /// /// Updates an autoscaler in the specified project using the data included in @@ -615,6 +673,17 @@ class AutoscalersClient { UpdateAutoscalerRequest const& request, Options opts = {}); + StatusOr UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const& request, + Options opts = {}); + + future> UpdateAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..d9db9ab066eeb 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,31 @@ AutoscalersTracingConnection::DeleteAutoscaler( return internal::EndSpan(std::move(span), child_->DeleteAutoscaler(request)); } +StatusOr +AutoscalersTracingConnection::DeleteAutoscaler( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoscalersTracingConnection::DeleteAutoscaler( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AutoscalersTracingConnection::GetAutoscaler( google::cloud::cpp::compute::autoscalers::v1::GetAutoscalerRequest const& @@ -78,6 +103,31 @@ AutoscalersTracingConnection::InsertAutoscaler( return internal::EndSpan(std::move(span), child_->InsertAutoscaler(request)); } +StatusOr +AutoscalersTracingConnection::InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoscalersTracingConnection::InsertAutoscaler( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange AutoscalersTracingConnection::ListAutoscalers( google::cloud::cpp::compute::autoscalers::v1::ListAutoscalersRequest @@ -101,6 +151,31 @@ AutoscalersTracingConnection::PatchAutoscaler( return internal::EndSpan(std::move(span), child_->PatchAutoscaler(request)); } +StatusOr +AutoscalersTracingConnection::PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoscalersTracingConnection::PatchAutoscaler( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AutoscalersTracingConnection::UpdateAutoscaler( google::cloud::cpp::compute::autoscalers::v1::UpdateAutoscalerRequest const& @@ -111,6 +186,31 @@ AutoscalersTracingConnection::UpdateAutoscaler( return internal::EndSpan(std::move(span), child_->UpdateAutoscaler(request)); } +StatusOr +AutoscalersTracingConnection::UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutoscalersTracingConnection::UpdateAutoscaler( + google::cloud::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(google::cloud::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..22c9d3133f6f9 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const& request) override; + + future> DeleteAutoscaler( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const& request) override; + + future> InsertAutoscaler( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const& request) override; + + future> PatchAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateAutoscaler( google::cloud::cpp::compute::autoscalers::v1:: UpdateAutoscalerRequest const& request) override; + StatusOr UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const& request) override; + + future> UpdateAutoscaler( + google::cloud::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..eb236958cbd07 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + DeleteAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAutoscaler, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + InsertAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertAutoscaler, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + PatchAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchAutoscaler, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::autoscalers::v1:: + UpdateAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAutoscaler, + (google::cloud::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_client.cc b/google/cloud/compute/backend_buckets/v1/backend_buckets_client.cc index 7f1d019480d8f..a47c9b0554bc6 100644 --- a/google/cloud/compute/backend_buckets/v1/backend_buckets_client.cc +++ b/google/cloud/compute/backend_buckets/v1/backend_buckets_client.cc @@ -47,6 +47,23 @@ BackendBucketsClient::AddSignedUrlKey( return connection_->AddSignedUrlKey(request); } +StatusOr +BackendBucketsClient::AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + google::cloud::cpp::compute::v1::SignedUrlKey const& + signed_url_key_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_buckets::v1::AddSignedUrlKeyRequest + request; + request.set_project(project); + request.set_backend_bucket(backend_bucket); + *request.mutable_signed_url_key_resource() = signed_url_key_resource; + return connection_->AddSignedUrlKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendBucketsClient::AddSignedUrlKey( google::cloud::cpp::compute::backend_buckets::v1:: @@ -56,6 +73,26 @@ BackendBucketsClient::AddSignedUrlKey( return connection_->AddSignedUrlKey(request); } +StatusOr +BackendBucketsClient::AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddSignedUrlKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendBucketsClient::AddSignedUrlKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddSignedUrlKey(google::cloud::ExperimentalTag{}, + operation); +} + future> BackendBucketsClient::DeleteBackendBucket(std::string const& project, std::string const& backend_bucket, @@ -68,6 +105,21 @@ BackendBucketsClient::DeleteBackendBucket(std::string const& project, return connection_->DeleteBackendBucket(request); } +StatusOr +BackendBucketsClient::DeleteBackendBucket(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& backend_bucket, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_buckets::v1::DeleteBackendBucketRequest + request; + request.set_project(project); + request.set_backend_bucket(backend_bucket); + return connection_->DeleteBackendBucket(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendBucketsClient::DeleteBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -77,6 +129,26 @@ BackendBucketsClient::DeleteBackendBucket( return connection_->DeleteBackendBucket(request); } +StatusOr +BackendBucketsClient::DeleteBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackendBucket(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendBucketsClient::DeleteBackendBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackendBucket(google::cloud::ExperimentalTag{}, + operation); +} + future> BackendBucketsClient::DeleteSignedUrlKey(std::string const& project, std::string const& backend_bucket, @@ -91,6 +163,23 @@ BackendBucketsClient::DeleteSignedUrlKey(std::string const& project, return connection_->DeleteSignedUrlKey(request); } +StatusOr +BackendBucketsClient::DeleteSignedUrlKey(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& backend_bucket, + std::string const& key_name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_buckets::v1::DeleteSignedUrlKeyRequest + request; + request.set_project(project); + request.set_backend_bucket(backend_bucket); + request.set_key_name(key_name); + return connection_->DeleteSignedUrlKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendBucketsClient::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_buckets::v1:: @@ -100,6 +189,26 @@ BackendBucketsClient::DeleteSignedUrlKey( return connection_->DeleteSignedUrlKey(request); } +StatusOr +BackendBucketsClient::DeleteSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSignedUrlKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendBucketsClient::DeleteSignedUrlKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSignedUrlKey(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BackendBucketsClient::GetBackendBucket(std::string const& project, std::string const& backend_bucket, @@ -154,6 +263,22 @@ BackendBucketsClient::InsertBackendBucket( return connection_->InsertBackendBucket(request); } +StatusOr +BackendBucketsClient::InsertBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::BackendBucket const& + backend_bucket_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_buckets::v1::InsertBackendBucketRequest + request; + request.set_project(project); + *request.mutable_backend_bucket_resource() = backend_bucket_resource; + return connection_->InsertBackendBucket(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendBucketsClient::InsertBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -163,6 +288,26 @@ BackendBucketsClient::InsertBackendBucket( return connection_->InsertBackendBucket(request); } +StatusOr +BackendBucketsClient::InsertBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertBackendBucket(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendBucketsClient::InsertBackendBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertBackendBucket(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange BackendBucketsClient::ListBackendBuckets(std::string const& project, Options opts) { @@ -197,6 +342,23 @@ BackendBucketsClient::PatchBackendBucket( return connection_->PatchBackendBucket(request); } +StatusOr +BackendBucketsClient::PatchBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + google::cloud::cpp::compute::v1::BackendBucket const& + backend_bucket_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_buckets::v1::PatchBackendBucketRequest + request; + request.set_project(project); + request.set_backend_bucket(backend_bucket); + *request.mutable_backend_bucket_resource() = backend_bucket_resource; + return connection_->PatchBackendBucket(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendBucketsClient::PatchBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -206,6 +368,26 @@ BackendBucketsClient::PatchBackendBucket( return connection_->PatchBackendBucket(request); } +StatusOr +BackendBucketsClient::PatchBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchBackendBucket(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendBucketsClient::PatchBackendBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchBackendBucket(google::cloud::ExperimentalTag{}, + operation); +} + future> BackendBucketsClient::SetEdgeSecurityPolicy( std::string const& project, std::string const& backend_bucket, @@ -222,6 +404,24 @@ BackendBucketsClient::SetEdgeSecurityPolicy( return connection_->SetEdgeSecurityPolicy(request); } +StatusOr +BackendBucketsClient::SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_buckets::v1::SetEdgeSecurityPolicyRequest + request; + request.set_project(project); + request.set_backend_bucket(backend_bucket); + *request.mutable_security_policy_reference_resource() = + security_policy_reference_resource; + return connection_->SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BackendBucketsClient::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_buckets::v1:: @@ -231,6 +431,26 @@ BackendBucketsClient::SetEdgeSecurityPolicy( return connection_->SetEdgeSecurityPolicy(request); } +StatusOr +BackendBucketsClient::SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BackendBucketsClient::SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetEdgeSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BackendBucketsClient::SetIamPolicy( std::string const& project, std::string const& resource, @@ -295,6 +515,23 @@ BackendBucketsClient::UpdateBackendBucket( return connection_->UpdateBackendBucket(request); } +StatusOr +BackendBucketsClient::UpdateBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + google::cloud::cpp::compute::v1::BackendBucket const& + backend_bucket_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_buckets::v1::UpdateBackendBucketRequest + request; + request.set_project(project); + request.set_backend_bucket(backend_bucket); + *request.mutable_backend_bucket_resource() = backend_bucket_resource; + return connection_->UpdateBackendBucket(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendBucketsClient::UpdateBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -304,6 +541,26 @@ BackendBucketsClient::UpdateBackendBucket( return connection_->UpdateBackendBucket(request); } +StatusOr +BackendBucketsClient::UpdateBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackendBucket(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendBucketsClient::UpdateBackendBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackendBucket(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_backend_buckets_v1 } // namespace cloud diff --git a/google/cloud/compute/backend_buckets/v1/backend_buckets_client.h b/google/cloud/compute/backend_buckets/v1/backend_buckets_client.h index 49747ba55bfcc..9ba0a93c7b456 100644 --- a/google/cloud/compute/backend_buckets/v1/backend_buckets_client.h +++ b/google/cloud/compute/backend_buckets/v1/backend_buckets_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_BACKEND_BUCKETS_V1_BACKEND_BUCKETS_CLIENT_H #include "google/cloud/compute/backend_buckets/v1/backend_buckets_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,13 @@ class BackendBucketsClient { signed_url_key_resource, Options opts = {}); + StatusOr AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + google::cloud::cpp::compute::v1::SignedUrlKey const& + signed_url_key_resource, + Options opts = {}); + // clang-format off /// /// Adds a key for validating requests with signed URLs for this backend @@ -165,6 +174,17 @@ class BackendBucketsClient { AddSignedUrlKeyRequest const& request, Options opts = {}); + StatusOr AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request, + Options opts = {}); + + future> AddSignedUrlKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified BackendBucket resource. @@ -199,6 +219,11 @@ class BackendBucketsClient { DeleteBackendBucket(std::string const& project, std::string const& backend_bucket, Options opts = {}); + StatusOr DeleteBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + Options opts = {}); + // clang-format off /// /// Deletes the specified BackendBucket resource. @@ -238,6 +263,18 @@ class BackendBucketsClient { DeleteBackendBucketRequest const& request, Options opts = {}); + StatusOr DeleteBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request, + Options opts = {}); + + future> + DeleteBackendBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a key for validating requests with signed URLs for this backend @@ -276,6 +313,11 @@ class BackendBucketsClient { std::string const& backend_bucket, std::string const& key_name, Options opts = {}); + StatusOr DeleteSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + std::string const& key_name, Options opts = {}); + // clang-format off /// /// Deletes a key for validating requests with signed URLs for this backend @@ -316,6 +358,18 @@ class BackendBucketsClient { DeleteSignedUrlKeyRequest const& request, Options opts = {}); + StatusOr DeleteSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request, + Options opts = {}); + + future> + DeleteSignedUrlKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified BackendBucket resource. @@ -477,6 +531,13 @@ class BackendBucketsClient { backend_bucket_resource, Options opts = {}); + StatusOr InsertBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::BackendBucket const& + backend_bucket_resource, + Options opts = {}); + // clang-format off /// /// Creates a BackendBucket resource in the specified project using the data @@ -517,6 +578,18 @@ class BackendBucketsClient { InsertBackendBucketRequest const& request, Options opts = {}); + StatusOr InsertBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request, + Options opts = {}); + + future> + InsertBackendBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of BackendBucket resources available to the specified @@ -636,6 +709,13 @@ class BackendBucketsClient { backend_bucket_resource, Options opts = {}); + StatusOr PatchBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + google::cloud::cpp::compute::v1::BackendBucket const& + backend_bucket_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified BackendBucket resource with the data included in the @@ -677,6 +757,18 @@ class BackendBucketsClient { PatchBackendBucketRequest const& request, Options opts = {}); + StatusOr PatchBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request, + Options opts = {}); + + future> + PatchBackendBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the edge security policy for the specified backend bucket. @@ -716,6 +808,13 @@ class BackendBucketsClient { security_policy_reference_resource, Options opts = {}); + StatusOr SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts = {}); + // clang-format off /// /// Sets the edge security policy for the specified backend bucket. @@ -755,6 +854,18 @@ class BackendBucketsClient { SetEdgeSecurityPolicyRequest const& request, Options opts = {}); + StatusOr SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request, + Options opts = {}); + + future> + SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -925,6 +1036,13 @@ class BackendBucketsClient { backend_bucket_resource, Options opts = {}); + StatusOr UpdateBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_bucket, + google::cloud::cpp::compute::v1::BackendBucket const& + backend_bucket_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified BackendBucket resource with the data included in the @@ -965,6 +1083,18 @@ class BackendBucketsClient { UpdateBackendBucketRequest const& request, Options opts = {}); + StatusOr UpdateBackendBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request, + Options opts = {}); + + future> + UpdateBackendBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..31417e521e370 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,31 @@ BackendBucketsTracingConnection::AddSignedUrlKey( return internal::EndSpan(std::move(span), child_->AddSignedUrlKey(request)); } +StatusOr +BackendBucketsTracingConnection::AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::AddSignedUrlKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackendBucketsTracingConnection::DeleteBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -55,6 +80,33 @@ BackendBucketsTracingConnection::DeleteBackendBucket( child_->DeleteBackendBucket(request)); } +StatusOr +BackendBucketsTracingConnection::DeleteBackendBucket( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::DeleteBackendBucket( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackendBucketsTracingConnection::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_buckets::v1:: @@ -67,6 +119,33 @@ BackendBucketsTracingConnection::DeleteSignedUrlKey( child_->DeleteSignedUrlKey(request)); } +StatusOr +BackendBucketsTracingConnection::DeleteSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::DeleteSignedUrlKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BackendBucketsTracingConnection::GetBackendBucket( google::cloud::cpp::compute::backend_buckets::v1:: @@ -99,6 +178,33 @@ BackendBucketsTracingConnection::InsertBackendBucket( child_->InsertBackendBucket(request)); } +StatusOr +BackendBucketsTracingConnection::InsertBackendBucket( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::InsertBackendBucket( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BackendBucketsTracingConnection::ListBackendBuckets( google::cloud::cpp::compute::backend_buckets::v1::ListBackendBucketsRequest @@ -125,6 +231,33 @@ BackendBucketsTracingConnection::PatchBackendBucket( child_->PatchBackendBucket(request)); } +StatusOr +BackendBucketsTracingConnection::PatchBackendBucket( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::PatchBackendBucket( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackendBucketsTracingConnection::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_buckets::v1:: @@ -137,6 +270,33 @@ BackendBucketsTracingConnection::SetEdgeSecurityPolicy( child_->SetEdgeSecurityPolicy(request)); } +StatusOr +BackendBucketsTracingConnection::SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::SetEdgeSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BackendBucketsTracingConnection::SetIamPolicy( google::cloud::cpp::compute::backend_buckets::v1::SetIamPolicyRequest const& @@ -170,6 +330,33 @@ BackendBucketsTracingConnection::UpdateBackendBucket( child_->UpdateBackendBucket(request)); } +StatusOr +BackendBucketsTracingConnection::UpdateBackendBucket( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendBucketsTracingConnection::UpdateBackendBucket( + google::cloud::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(google::cloud::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..ae709620b524a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request) override; + + future> AddSignedUrlKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request) override; + + future> + DeleteBackendBucket( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request) override; + + future> + DeleteSignedUrlKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request) override; + + future> + InsertBackendBucket( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request) override; + + future> + PatchBackendBucket( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request) override; + + future> + SetEdgeSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request) override; + + future> + UpdateBackendBucket( + google::cloud::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..19a5140ee58bc 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + AddSignedUrlKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddSignedUrlKey, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteBackendBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackendBucket, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + DeleteSignedUrlKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSignedUrlKey, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + InsertBackendBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertBackendBucket, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + PatchBackendBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchBackendBucket, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + SetEdgeSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetEdgeSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_buckets::v1:: + UpdateBackendBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackendBucket, + (google::cloud::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_client.cc b/google/cloud/compute/backend_services/v1/backend_services_client.cc index 836a91fbd8dae..88e60f101c1c5 100644 --- a/google/cloud/compute/backend_services/v1/backend_services_client.cc +++ b/google/cloud/compute/backend_services/v1/backend_services_client.cc @@ -47,6 +47,23 @@ BackendServicesClient::AddSignedUrlKey( return connection_->AddSignedUrlKey(request); } +StatusOr +BackendServicesClient::AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::SignedUrlKey const& + signed_url_key_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_services::v1::AddSignedUrlKeyRequest + request; + request.set_project(project); + request.set_backend_service(backend_service); + *request.mutable_signed_url_key_resource() = signed_url_key_resource; + return connection_->AddSignedUrlKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendServicesClient::AddSignedUrlKey( google::cloud::cpp::compute::backend_services::v1:: @@ -56,6 +73,26 @@ BackendServicesClient::AddSignedUrlKey( return connection_->AddSignedUrlKey(request); } +StatusOr +BackendServicesClient::AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddSignedUrlKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendServicesClient::AddSignedUrlKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddSignedUrlKey(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange> BackendServicesClient::AggregatedListBackendServices(std::string const& project, @@ -89,6 +126,21 @@ BackendServicesClient::DeleteBackendService(std::string const& project, return connection_->DeleteBackendService(request); } +StatusOr +BackendServicesClient::DeleteBackendService(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& backend_service, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_services::v1::DeleteBackendServiceRequest + request; + request.set_project(project); + request.set_backend_service(backend_service); + return connection_->DeleteBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BackendServicesClient::DeleteBackendService( google::cloud::cpp::compute::backend_services::v1:: @@ -98,6 +150,26 @@ BackendServicesClient::DeleteBackendService( return connection_->DeleteBackendService(request); } +StatusOr +BackendServicesClient::DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BackendServicesClient::DeleteBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackendService(google::cloud::ExperimentalTag{}, + operation); +} + future> BackendServicesClient::DeleteSignedUrlKey(std::string const& project, std::string const& backend_service, @@ -112,6 +184,23 @@ BackendServicesClient::DeleteSignedUrlKey(std::string const& project, return connection_->DeleteSignedUrlKey(request); } +StatusOr +BackendServicesClient::DeleteSignedUrlKey(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& backend_service, + std::string const& key_name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_services::v1::DeleteSignedUrlKeyRequest + request; + request.set_project(project); + request.set_backend_service(backend_service); + request.set_key_name(key_name); + return connection_->DeleteSignedUrlKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendServicesClient::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_services::v1:: @@ -121,6 +210,26 @@ BackendServicesClient::DeleteSignedUrlKey( return connection_->DeleteSignedUrlKey(request); } +StatusOr +BackendServicesClient::DeleteSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSignedUrlKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendServicesClient::DeleteSignedUrlKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSignedUrlKey(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BackendServicesClient::GetBackendService(std::string const& project, std::string const& backend_service, @@ -200,6 +309,22 @@ BackendServicesClient::InsertBackendService( return connection_->InsertBackendService(request); } +StatusOr +BackendServicesClient::InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_services::v1::InsertBackendServiceRequest + request; + request.set_project(project); + *request.mutable_backend_service_resource() = backend_service_resource; + return connection_->InsertBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BackendServicesClient::InsertBackendService( google::cloud::cpp::compute::backend_services::v1:: @@ -209,6 +334,26 @@ BackendServicesClient::InsertBackendService( return connection_->InsertBackendService(request); } +StatusOr +BackendServicesClient::InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BackendServicesClient::InsertBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertBackendService(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange BackendServicesClient::ListBackendServices(std::string const& project, Options opts) { @@ -260,6 +405,23 @@ BackendServicesClient::PatchBackendService( return connection_->PatchBackendService(request); } +StatusOr +BackendServicesClient::PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_services::v1::PatchBackendServiceRequest + request; + request.set_project(project); + request.set_backend_service(backend_service); + *request.mutable_backend_service_resource() = backend_service_resource; + return connection_->PatchBackendService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendServicesClient::PatchBackendService( google::cloud::cpp::compute::backend_services::v1:: @@ -269,6 +431,26 @@ BackendServicesClient::PatchBackendService( return connection_->PatchBackendService(request); } +StatusOr +BackendServicesClient::PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchBackendService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendServicesClient::PatchBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchBackendService(google::cloud::ExperimentalTag{}, + operation); +} + future> BackendServicesClient::SetEdgeSecurityPolicy( std::string const& project, std::string const& backend_service, @@ -285,6 +467,24 @@ BackendServicesClient::SetEdgeSecurityPolicy( return connection_->SetEdgeSecurityPolicy(request); } +StatusOr +BackendServicesClient::SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest request; + request.set_project(project); + request.set_backend_service(backend_service); + *request.mutable_security_policy_reference_resource() = + security_policy_reference_resource; + return connection_->SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BackendServicesClient::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -294,6 +494,26 @@ BackendServicesClient::SetEdgeSecurityPolicy( return connection_->SetEdgeSecurityPolicy(request); } +StatusOr +BackendServicesClient::SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BackendServicesClient::SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetEdgeSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BackendServicesClient::SetIamPolicy( std::string const& project, std::string const& resource, @@ -335,6 +555,24 @@ BackendServicesClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +BackendServicesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_services::v1::SetSecurityPolicyRequest + request; + request.set_project(project); + request.set_backend_service(backend_service); + *request.mutable_security_policy_reference_resource() = + security_policy_reference_resource; + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackendServicesClient::SetSecurityPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -344,6 +582,26 @@ BackendServicesClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +BackendServicesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackendServicesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr BackendServicesClient::TestIamPermissions( std::string const& project, std::string const& resource, @@ -384,6 +642,23 @@ BackendServicesClient::UpdateBackendService( return connection_->UpdateBackendService(request); } +StatusOr +BackendServicesClient::UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::backend_services::v1::UpdateBackendServiceRequest + request; + request.set_project(project); + request.set_backend_service(backend_service); + *request.mutable_backend_service_resource() = backend_service_resource; + return connection_->UpdateBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> BackendServicesClient::UpdateBackendService( google::cloud::cpp::compute::backend_services::v1:: @@ -393,6 +668,26 @@ BackendServicesClient::UpdateBackendService( return connection_->UpdateBackendService(request); } +StatusOr +BackendServicesClient::UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +BackendServicesClient::UpdateBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackendService(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_backend_services_v1 } // namespace cloud diff --git a/google/cloud/compute/backend_services/v1/backend_services_client.h b/google/cloud/compute/backend_services/v1/backend_services_client.h index 1919cfc9f892d..b692d5eda6859 100644 --- a/google/cloud/compute/backend_services/v1/backend_services_client.h +++ b/google/cloud/compute/backend_services/v1/backend_services_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_BACKEND_SERVICES_V1_BACKEND_SERVICES_CLIENT_H #include "google/cloud/compute/backend_services/v1/backend_services_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,13 @@ class BackendServicesClient { signed_url_key_resource, Options opts = {}); + StatusOr AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::SignedUrlKey const& + signed_url_key_resource, + Options opts = {}); + // clang-format off /// /// Adds a key for validating requests with signed URLs for this backend @@ -166,6 +175,17 @@ class BackendServicesClient { AddSignedUrlKeyRequest const& request, Options opts = {}); + StatusOr AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request, + Options opts = {}); + + future> AddSignedUrlKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of all BackendService resources, regional and global, @@ -284,6 +304,11 @@ class BackendServicesClient { DeleteBackendService(std::string const& project, std::string const& backend_service, Options opts = {}); + StatusOr DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + Options opts = {}); + // clang-format off /// /// Deletes the specified BackendService resource. @@ -323,6 +348,18 @@ class BackendServicesClient { DeleteBackendServiceRequest const& request, Options opts = {}); + StatusOr DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request, + Options opts = {}); + + future> + DeleteBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a key for validating requests with signed URLs for this backend @@ -361,6 +398,11 @@ class BackendServicesClient { std::string const& backend_service, std::string const& key_name, Options opts = {}); + StatusOr DeleteSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + std::string const& key_name, Options opts = {}); + // clang-format off /// /// Deletes a key for validating requests with signed URLs for this backend @@ -401,6 +443,18 @@ class BackendServicesClient { DeleteSignedUrlKeyRequest const& request, Options opts = {}); + StatusOr DeleteSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request, + Options opts = {}); + + future> + DeleteSignedUrlKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified BackendService resource. @@ -632,6 +686,13 @@ class BackendServicesClient { backend_service_resource, Options opts = {}); + StatusOr InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts = {}); + // clang-format off /// /// Creates a BackendService resource in the specified project using the data @@ -673,6 +734,18 @@ class BackendServicesClient { InsertBackendServiceRequest const& request, Options opts = {}); + StatusOr InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request, + Options opts = {}); + + future> + InsertBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of BackendService resources available to the specified @@ -872,6 +945,13 @@ class BackendServicesClient { backend_service_resource, Options opts = {}); + StatusOr PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified BackendService resource with the data included in the @@ -914,6 +994,18 @@ class BackendServicesClient { PatchBackendServiceRequest const& request, Options opts = {}); + StatusOr PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request, + Options opts = {}); + + future> + PatchBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the edge security policy for the specified backend service. @@ -953,6 +1045,13 @@ class BackendServicesClient { security_policy_reference_resource, Options opts = {}); + StatusOr SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts = {}); + // clang-format off /// /// Sets the edge security policy for the specified backend service. @@ -992,6 +1091,18 @@ class BackendServicesClient { SetEdgeSecurityPolicyRequest const& request, Options opts = {}); + StatusOr SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request, + Options opts = {}); + + future> + SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -1098,6 +1209,13 @@ class BackendServicesClient { security_policy_reference_resource, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts = {}); + // clang-format off /// /// Sets the Google Cloud Armor security policy for the specified backend @@ -1138,6 +1256,17 @@ class BackendServicesClient { SetSecurityPolicyRequest const& request, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request, + Options opts = {}); + + future> + SetSecurityPolicy(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. @@ -1242,6 +1371,13 @@ class BackendServicesClient { backend_service_resource, Options opts = {}); + StatusOr UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& backend_service, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified BackendService resource with the data included in the @@ -1282,6 +1418,18 @@ class BackendServicesClient { UpdateBackendServiceRequest const& request, Options opts = {}); + StatusOr UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request, + Options opts = {}); + + future> + UpdateBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..0c38d1c02c537 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,33 @@ BackendServicesTracingConnection::AddSignedUrlKey( return internal::EndSpan(std::move(span), child_->AddSignedUrlKey(request)); } +StatusOr +BackendServicesTracingConnection::AddSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::AddSignedUrlKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange> BackendServicesTracingConnection::AggregatedListBackendServices( @@ -72,6 +99,33 @@ BackendServicesTracingConnection::DeleteBackendService( child_->DeleteBackendService(request)); } +StatusOr +BackendServicesTracingConnection::DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::DeleteBackendService( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> BackendServicesTracingConnection::DeleteSignedUrlKey( google::cloud::cpp::compute::backend_services::v1:: @@ -84,6 +138,33 @@ BackendServicesTracingConnection::DeleteSignedUrlKey( child_->DeleteSignedUrlKey(request)); } +StatusOr +BackendServicesTracingConnection::DeleteSignedUrlKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::DeleteSignedUrlKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BackendServicesTracingConnection::GetBackendService( google::cloud::cpp::compute::backend_services::v1:: @@ -127,6 +208,33 @@ BackendServicesTracingConnection::InsertBackendService( child_->InsertBackendService(request)); } +StatusOr +BackendServicesTracingConnection::InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::InsertBackendService( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BackendServicesTracingConnection::ListBackendServices( google::cloud::cpp::compute::backend_services::v1:: @@ -166,6 +274,33 @@ BackendServicesTracingConnection::PatchBackendService( child_->PatchBackendService(request)); } +StatusOr +BackendServicesTracingConnection::PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::PatchBackendService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackendServicesTracingConnection::SetEdgeSecurityPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -178,6 +313,33 @@ BackendServicesTracingConnection::SetEdgeSecurityPolicy( child_->SetEdgeSecurityPolicy(request)); } +StatusOr +BackendServicesTracingConnection::SetEdgeSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::SetEdgeSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BackendServicesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::backend_services::v1:: @@ -199,6 +361,33 @@ BackendServicesTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +BackendServicesTracingConnection::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::SetSecurityPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr BackendServicesTracingConnection::TestIamPermissions( google::cloud::cpp::compute::backend_services::v1:: @@ -222,6 +411,33 @@ BackendServicesTracingConnection::UpdateBackendService( child_->UpdateBackendService(request)); } +StatusOr +BackendServicesTracingConnection::UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackendServicesTracingConnection::UpdateBackendService( + google::cloud::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( + google::cloud::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..a79618afede28 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request) override; + + future> AddSignedUrlKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request) override; + + future> + DeleteBackendService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request) override; + + future> + DeleteSignedUrlKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request) override; + + future> + InsertBackendService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request) override; + + future> + PatchBackendService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request) override; + + future> + SetEdgeSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request) override; + + future> + UpdateBackendService( + google::cloud::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..47023f0b4615c 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + AddSignedUrlKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddSignedUrlKey, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackendService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + DeleteSignedUrlKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSignedUrlKey, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + InsertBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertBackendService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + PatchBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchBackendService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetEdgeSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetEdgeSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::backend_services::v1:: + UpdateBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackendService, + (google::cloud::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_client.h b/google/cloud/compute/disk_types/v1/disk_types_client.h index 62a65116b2403..6f3e0e5652599 100644 --- a/google/cloud/compute/disk_types/v1/disk_types_client.h +++ b/google/cloud/compute/disk_types/v1/disk_types_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_DISK_TYPES_V1_DISK_TYPES_CLIENT_H #include "google/cloud/compute/disk_types/v1/disk_types_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/compute/disks/v1/disks_client.cc index e8e2a6842f8de..c0e5a076e1416 100644 --- a/google/cloud/compute/disks/v1/disks_client.cc +++ b/google/cloud/compute/disks/v1/disks_client.cc @@ -49,6 +49,25 @@ DisksClient::AddResourcePolicies( return connection_->AddResourcePolicies(request); } +StatusOr +DisksClient::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::DisksAddResourcePoliciesRequest const& + disks_add_resource_policies_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_disk(disk); + *request.mutable_disks_add_resource_policies_request_resource() = + disks_add_resource_policies_request_resource; + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::AddResourcePolicies( google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& @@ -58,6 +77,26 @@ DisksClient::AddResourcePolicies( return connection_->AddResourcePolicies(request); } +StatusOr +DisksClient::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::AddResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange< std::pair> DisksClient::AggregatedListDisks(std::string const& project, Options opts) { @@ -90,6 +129,21 @@ DisksClient::BulkInsert( return connection_->BulkInsert(request); } +StatusOr DisksClient::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::BulkInsertDiskResource const& + bulk_insert_disk_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::BulkInsertRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_bulk_insert_disk_resource() = bulk_insert_disk_resource; + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::BulkInsert( google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request, @@ -98,6 +152,23 @@ DisksClient::BulkInsert( return connection_->BulkInsert(request); } +StatusOr DisksClient::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, operation); +} + future> DisksClient::CreateSnapshot( std::string const& project, std::string const& zone, @@ -113,6 +184,23 @@ DisksClient::CreateSnapshot( return connection_->CreateSnapshot(request); } +StatusOr +DisksClient::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_disk(disk); + *request.mutable_snapshot_resource() = snapshot_resource; + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& @@ -122,6 +210,26 @@ DisksClient::CreateSnapshot( return connection_->CreateSnapshot(request); } +StatusOr +DisksClient::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::CreateSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + future> DisksClient::DeleteDisk(std::string const& project, std::string const& zone, std::string const& disk, Options opts) { @@ -133,6 +241,19 @@ DisksClient::DeleteDisk(std::string const& project, std::string const& zone, return connection_->DeleteDisk(request); } +StatusOr DisksClient::DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_disk(disk); + return connection_->DeleteDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request, @@ -141,6 +262,23 @@ DisksClient::DeleteDisk( return connection_->DeleteDisk(request); } +StatusOr DisksClient::DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::DeleteDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDisk(google::cloud::ExperimentalTag{}, operation); +} + StatusOr DisksClient::GetDisk( std::string const& project, std::string const& zone, std::string const& disk, Options opts) { @@ -189,6 +327,19 @@ DisksClient::InsertDisk( return connection_->InsertDisk(request); } +StatusOr DisksClient::InsertDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Disk const& disk_resource, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::InsertDiskRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_disk_resource() = disk_resource; + return connection_->InsertDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::InsertDisk( google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request, @@ -197,6 +348,23 @@ DisksClient::InsertDisk( return connection_->InsertDisk(request); } +StatusOr DisksClient::InsertDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::InsertDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertDisk(google::cloud::ExperimentalTag{}, operation); +} + StreamRange DisksClient::ListDisks( std::string const& project, std::string const& zone, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -230,6 +398,25 @@ DisksClient::RemoveResourcePolicies( return connection_->RemoveResourcePolicies(request); } +StatusOr +DisksClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::DisksRemoveResourcePoliciesRequest const& + disks_remove_resource_policies_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::RemoveResourcePoliciesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_disk(disk); + *request.mutable_disks_remove_resource_policies_request_resource() = + disks_remove_resource_policies_request_resource; + return connection_->RemoveResourcePolicies( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::RemoveResourcePolicies( google::cloud::cpp::compute::disks::v1::RemoveResourcePoliciesRequest const& @@ -239,6 +426,26 @@ DisksClient::RemoveResourcePolicies( return connection_->RemoveResourcePolicies(request); } +StatusOr +DisksClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::RemoveResourcePoliciesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveResourcePolicies( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveResourcePolicies(google::cloud::ExperimentalTag{}, + operation); +} + future> DisksClient::Resize(std::string const& project, std::string const& zone, std::string const& disk, @@ -255,6 +462,24 @@ DisksClient::Resize(std::string const& project, std::string const& zone, return connection_->Resize(request); } +StatusOr DisksClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::DisksResizeRequest const& + disks_resize_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::ResizeRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_disk(disk); + *request.mutable_disks_resize_request_resource() = + disks_resize_request_resource; + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::Resize( google::cloud::cpp::compute::disks::v1::ResizeRequest const& request, @@ -263,6 +488,23 @@ DisksClient::Resize( return connection_->Resize(request); } +StatusOr DisksClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::Resize(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, operation); +} + StatusOr DisksClient::SetIamPolicy( std::string const& project, std::string const& zone, std::string const& resource, @@ -303,6 +545,24 @@ DisksClient::SetLabels( return connection_->SetLabels(request); } +StatusOr DisksClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& resource, + google::cloud::cpp::compute::v1::ZoneSetLabelsRequest const& + zone_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::SetLabelsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_resource(resource); + *request.mutable_zone_set_labels_request_resource() = + zone_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::SetLabels( google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request, @@ -311,6 +571,23 @@ DisksClient::SetLabels( return connection_->SetLabels(request); } +StatusOr DisksClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + future> DisksClient::StartAsyncReplication( std::string const& project, std::string const& zone, @@ -328,6 +605,25 @@ DisksClient::StartAsyncReplication( return connection_->StartAsyncReplication(request); } +StatusOr +DisksClient::StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::DisksStartAsyncReplicationRequest const& + disks_start_async_replication_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::StartAsyncReplicationRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_disk(disk); + *request.mutable_disks_start_async_replication_request_resource() = + disks_start_async_replication_request_resource; + return connection_->StartAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::StartAsyncReplication( google::cloud::cpp::compute::disks::v1::StartAsyncReplicationRequest const& @@ -337,6 +633,26 @@ DisksClient::StartAsyncReplication( return connection_->StartAsyncReplication(request); } +StatusOr +DisksClient::StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StartAsyncReplicationRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::StartAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartAsyncReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> DisksClient::StopAsyncReplication(std::string const& project, std::string const& zone, @@ -349,6 +665,21 @@ DisksClient::StopAsyncReplication(std::string const& project, return connection_->StopAsyncReplication(request); } +StatusOr +DisksClient::StopAsyncReplication(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& disk, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_disk(disk); + return connection_->StopAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::StopAsyncReplication( google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& @@ -358,6 +689,26 @@ DisksClient::StopAsyncReplication( return connection_->StopAsyncReplication(request); } +StatusOr +DisksClient::StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::StopAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopAsyncReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> DisksClient::StopGroupAsyncReplication( std::string const& project, std::string const& zone, @@ -375,6 +726,25 @@ DisksClient::StopGroupAsyncReplication( return connection_->StopGroupAsyncReplication(request); } +StatusOr +DisksClient::StopGroupAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1:: + DisksStopGroupAsyncReplicationResource const& + disks_stop_group_async_replication_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::StopGroupAsyncReplicationRequest + request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_disks_stop_group_async_replication_resource() = + disks_stop_group_async_replication_resource; + return connection_->StopGroupAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::StopGroupAsyncReplication( google::cloud::cpp::compute::disks::v1:: @@ -384,6 +754,26 @@ DisksClient::StopGroupAsyncReplication( return connection_->StopGroupAsyncReplication(request); } +StatusOr +DisksClient::StopGroupAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopGroupAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::StopGroupAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopGroupAsyncReplication( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr DisksClient::TestIamPermissions( std::string const& project, std::string const& zone, @@ -425,6 +815,22 @@ DisksClient::UpdateDisk( return connection_->UpdateDisk(request); } +StatusOr DisksClient::UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, std::string const& update_mask, + google::cloud::cpp::compute::v1::Disk const& disk_resource, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_disk(disk); + request.set_update_mask(update_mask); + *request.mutable_disk_resource() = disk_resource; + return connection_->UpdateDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DisksClient::UpdateDisk( google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request, @@ -433,6 +839,23 @@ DisksClient::UpdateDisk( return connection_->UpdateDisk(request); } +StatusOr DisksClient::UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DisksClient::UpdateDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDisk(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_disks_v1 } // namespace cloud diff --git a/google/cloud/compute/disks/v1/disks_client.h b/google/cloud/compute/disks/v1/disks_client.h index 8624892d970f8..b053e34aa5b54 100644 --- a/google/cloud/compute/disks/v1/disks_client.h +++ b/google/cloud/compute/disks/v1/disks_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_DISKS_V1_DISKS_CLIENT_H #include "google/cloud/compute/disks/v1/disks_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,14 @@ class DisksClient { disks_add_resource_policies_request_resource, Options opts = {}); + StatusOr AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::DisksAddResourcePoliciesRequest const& + disks_add_resource_policies_request_resource, + Options opts = {}); + // clang-format off /// /// Adds existing resource policies to a disk. You can only add one policy @@ -167,6 +177,18 @@ class DisksClient { request, Options opts = {}); + StatusOr AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request, + Options opts = {}); + + future> + AddResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves an aggregated list of persistent disks. To prevent failure, @@ -288,6 +310,13 @@ class DisksClient { bulk_insert_disk_resource, Options opts = {}); + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::BulkInsertDiskResource const& + bulk_insert_disk_resource, + Options opts = {}); + // clang-format off /// /// Bulk create a set of disks. @@ -326,6 +355,16 @@ class DisksClient { google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request, Options opts = {}); + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request, + Options opts = {}); + + future> BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a snapshot of a specified persistent disk. For regular snapshot @@ -367,6 +406,13 @@ class DisksClient { google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, Options opts = {}); + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, + Options opts = {}); + // clang-format off /// /// Creates a snapshot of a specified persistent disk. For regular snapshot @@ -409,6 +455,17 @@ class DisksClient { request, Options opts = {}); + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request, + Options opts = {}); + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified persistent disk. Deleting a disk removes its data @@ -447,6 +504,11 @@ class DisksClient { std::string const& project, std::string const& zone, std::string const& disk, Options opts = {}); + StatusOr DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, Options opts = {}); + // clang-format off /// /// Deletes the specified persistent disk. Deleting a disk removes its data @@ -488,6 +550,16 @@ class DisksClient { google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request, Options opts = {}); + StatusOr DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request, + Options opts = {}); + + future> DeleteDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified persistent disk. @@ -653,6 +725,12 @@ class DisksClient { google::cloud::cpp::compute::v1::Disk const& disk_resource, Options opts = {}); + StatusOr InsertDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Disk const& disk_resource, + Options opts = {}); + // clang-format off /// /// Creates a persistent disk in the specified project using the data in the @@ -695,6 +773,16 @@ class DisksClient { google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request, Options opts = {}); + StatusOr InsertDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request, + Options opts = {}); + + future> InsertDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of persistent disks contained within the specified zone. @@ -812,6 +900,14 @@ class DisksClient { disks_remove_resource_policies_request_resource, Options opts = {}); + StatusOr RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::DisksRemoveResourcePoliciesRequest const& + disks_remove_resource_policies_request_resource, + Options opts = {}); + // clang-format off /// /// Removes resource policies from a disk. @@ -851,6 +947,18 @@ class DisksClient { RemoveResourcePoliciesRequest const& request, Options opts = {}); + StatusOr RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const& request, + Options opts = {}); + + future> + RemoveResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resizes the specified persistent disk. You can only increase the size of @@ -891,6 +999,14 @@ class DisksClient { disks_resize_request_resource, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::DisksResizeRequest const& + disks_resize_request_resource, + Options opts = {}); + // clang-format off /// /// Resizes the specified persistent disk. You can only increase the size of @@ -930,6 +1046,16 @@ class DisksClient { google::cloud::cpp::compute::disks::v1::ResizeRequest const& request, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request, + Options opts = {}); + + future> Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -1038,6 +1164,14 @@ class DisksClient { zone_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& resource, + google::cloud::cpp::compute::v1::ZoneSetLabelsRequest const& + zone_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on a disk. To learn more about labels, read the Labeling @@ -1077,6 +1211,16 @@ class DisksClient { google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts asynchronous replication. Must be invoked on the primary disk. @@ -1117,6 +1261,14 @@ class DisksClient { disks_start_async_replication_request_resource, Options opts = {}); + StatusOr StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, + google::cloud::cpp::compute::v1::DisksStartAsyncReplicationRequest const& + disks_start_async_replication_request_resource, + Options opts = {}); + // clang-format off /// /// Starts asynchronous replication. Must be invoked on the primary disk. @@ -1156,6 +1308,18 @@ class DisksClient { StartAsyncReplicationRequest const& request, Options opts = {}); + StatusOr StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const& request, + Options opts = {}); + + future> + StartAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stops asynchronous replication. Can be invoked either on the primary or on @@ -1192,6 +1356,11 @@ class DisksClient { StopAsyncReplication(std::string const& project, std::string const& zone, std::string const& disk, Options opts = {}); + StatusOr StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, Options opts = {}); + // clang-format off /// /// Stops asynchronous replication. Can be invoked either on the primary or on @@ -1233,6 +1402,18 @@ class DisksClient { request, Options opts = {}); + StatusOr StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& + request, + Options opts = {}); + + future> + StopAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stops asynchronous replication for a consistency group of disks. Can be @@ -1273,6 +1454,15 @@ class DisksClient { disks_stop_group_async_replication_resource, Options opts = {}); + StatusOr + StopGroupAsyncReplication(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1:: + DisksStopGroupAsyncReplicationResource const& + disks_stop_group_async_replication_resource, + Options opts = {}); + // clang-format off /// /// Stops asynchronous replication for a consistency group of disks. Can be @@ -1313,6 +1503,19 @@ class DisksClient { StopGroupAsyncReplicationRequest const& request, Options opts = {}); + StatusOr + StopGroupAsyncReplication(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request, + Options opts = {}); + + future> + StopGroupAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. @@ -1422,6 +1625,13 @@ class DisksClient { google::cloud::cpp::compute::v1::Disk const& disk_resource, Options opts = {}); + StatusOr UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& disk, std::string const& update_mask, + google::cloud::cpp::compute::v1::Disk const& disk_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified disk with the data included in the request. The @@ -1462,6 +1672,16 @@ class DisksClient { google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request, Options opts = {}); + StatusOr UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request, + Options opts = {}); + + future> UpdateDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..08ea12934c332 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,31 @@ DisksTracingConnection::AddResourcePolicies( child_->AddResourcePolicies(request)); } +StatusOr +DisksTracingConnection::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::AddResourcePolicies( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange< std::pair> DisksTracingConnection::AggregatedListDisks( @@ -67,6 +92,30 @@ DisksTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(request)); } +StatusOr +DisksTracingConnection::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::BulkInsert( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& @@ -77,6 +126,31 @@ DisksTracingConnection::CreateSnapshot( return internal::EndSpan(std::move(span), child_->CreateSnapshot(request)); } +StatusOr +DisksTracingConnection::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::CreateSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) { @@ -86,6 +160,30 @@ DisksTracingConnection::DeleteDisk( return internal::EndSpan(std::move(span), child_->DeleteDisk(request)); } +StatusOr +DisksTracingConnection::DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::DeleteDisk( + google::cloud::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(google::cloud::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 +210,30 @@ DisksTracingConnection::InsertDisk( return internal::EndSpan(std::move(span), child_->InsertDisk(request)); } +StatusOr +DisksTracingConnection::InsertDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::InsertDisk( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DisksTracingConnection::ListDisks( google::cloud::cpp::compute::disks::v1::ListDisksRequest request) { @@ -134,6 +256,31 @@ DisksTracingConnection::RemoveResourcePolicies( child_->RemoveResourcePolicies(request)); } +StatusOr +DisksTracingConnection::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::RemoveResourcePolicies( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::Resize( google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) { @@ -142,6 +289,28 @@ DisksTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +DisksTracingConnection::Resize( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::Resize( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DisksTracingConnection::SetIamPolicy( google::cloud::cpp::compute::disks::v1::SetIamPolicyRequest const& @@ -161,6 +330,30 @@ DisksTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +DisksTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::SetLabels( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::StartAsyncReplication( google::cloud::cpp::compute::disks::v1::StartAsyncReplicationRequest const& @@ -172,6 +365,31 @@ DisksTracingConnection::StartAsyncReplication( child_->StartAsyncReplication(request)); } +StatusOr +DisksTracingConnection::StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::StartAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::StopAsyncReplication( google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& @@ -183,6 +401,31 @@ DisksTracingConnection::StopAsyncReplication( child_->StopAsyncReplication(request)); } +StatusOr +DisksTracingConnection::StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::StopAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DisksTracingConnection::StopGroupAsyncReplication( google::cloud::cpp::compute::disks::v1:: @@ -194,6 +437,31 @@ DisksTracingConnection::StopGroupAsyncReplication( child_->StopGroupAsyncReplication(request)); } +StatusOr +DisksTracingConnection::StopGroupAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::StopGroupAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DisksTracingConnection::TestIamPermissions( google::cloud::cpp::compute::disks::v1::TestIamPermissionsRequest const& @@ -213,6 +481,30 @@ DisksTracingConnection::UpdateDisk( return internal::EndSpan(std::move(span), child_->UpdateDisk(request)); } +StatusOr +DisksTracingConnection::UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DisksTracingConnection::UpdateDisk( + google::cloud::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(google::cloud::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..777ad2880918d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request) override; + + future> + AddResourcePolicies( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& request) + override; + + future> BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> CreateSnapshot( google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& request) override; + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request) override; + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteDisk( google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) override; + StatusOr DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& request) + override; + + future> DeleteDisk( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& request) + override; + + future> InsertDisk( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resize( google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) override; + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request) + override; + + future> Resize( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request) + override; + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StartAsyncReplication( google::cloud::cpp::compute::disks::v1:: StartAsyncReplicationRequest const& request) override; + StatusOr StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const& request) override; + + future> + StartAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopAsyncReplication( google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& request) override; + StatusOr StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::StopAsyncReplicationRequest const& + request) override; + + future> + StopAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StopGroupAsyncReplication( google::cloud::cpp::compute::disks::v1:: StopGroupAsyncReplicationRequest const& request) override; + StatusOr + StopGroupAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request) override; + + future> + StopGroupAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& request) + override; + + future> UpdateDisk( + google::cloud::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..e30019297a2dc 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::AddResourcePoliciesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddResourcePolicies, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::BulkInsertRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkInsert, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::CreateSnapshotRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSnapshot, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::DeleteDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteDisk, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::InsertDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertDisk, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + RemoveResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveResourcePolicies, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::ResizeRequest const& request), + (override)); + + MOCK_METHOD(future>, + Resize, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StartAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartAsyncReplication, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopAsyncReplication, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1:: + StopGroupAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopGroupAsyncReplication, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::disks::v1::UpdateDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDisk, + (google::cloud::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_client.cc b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.cc index 5168383e09b70..eb4f6b0ee6d03 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.cc +++ b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.cc @@ -45,6 +45,20 @@ ExternalVpnGatewaysClient::DeleteExternalVpnGateway( return connection_->DeleteExternalVpnGateway(request); } +StatusOr +ExternalVpnGatewaysClient::DeleteExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& external_vpn_gateway, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest request; + request.set_project(project); + request.set_external_vpn_gateway(external_vpn_gateway); + return connection_->DeleteExternalVpnGateway( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ExternalVpnGatewaysClient::DeleteExternalVpnGateway( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -54,6 +68,26 @@ ExternalVpnGatewaysClient::DeleteExternalVpnGateway( return connection_->DeleteExternalVpnGateway(request); } +StatusOr +ExternalVpnGatewaysClient::DeleteExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExternalVpnGateway( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ExternalVpnGatewaysClient::DeleteExternalVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExternalVpnGateway(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ExternalVpnGatewaysClient::GetExternalVpnGateway( std::string const& project, std::string const& external_vpn_gateway, @@ -90,6 +124,23 @@ ExternalVpnGatewaysClient::InsertExternalVpnGateway( return connection_->InsertExternalVpnGateway(request); } +StatusOr +ExternalVpnGatewaysClient::InsertExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ExternalVpnGateway const& + external_vpn_gateway_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest request; + request.set_project(project); + *request.mutable_external_vpn_gateway_resource() = + external_vpn_gateway_resource; + return connection_->InsertExternalVpnGateway( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ExternalVpnGatewaysClient::InsertExternalVpnGateway( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -99,6 +150,26 @@ ExternalVpnGatewaysClient::InsertExternalVpnGateway( return connection_->InsertExternalVpnGateway(request); } +StatusOr +ExternalVpnGatewaysClient::InsertExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertExternalVpnGateway( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ExternalVpnGatewaysClient::InsertExternalVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertExternalVpnGateway(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ExternalVpnGatewaysClient::ListExternalVpnGateways(std::string const& project, Options opts) { @@ -134,6 +205,24 @@ ExternalVpnGatewaysClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +ExternalVpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::external_vpn_gateways::v1::SetLabelsRequest + request; + request.set_project(project); + request.set_resource(resource); + *request.mutable_global_set_labels_request_resource() = + global_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ExternalVpnGatewaysClient::SetLabels( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -143,6 +232,25 @@ ExternalVpnGatewaysClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +ExternalVpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ExternalVpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ExternalVpnGatewaysClient::TestIamPermissions( std::string const& project, std::string const& resource, diff --git a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.h b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.h index 0413501f5d75b..051da5f3652aa 100644 --- a/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.h +++ b/google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_EXTERNAL_VPN_GATEWAYS_V1_EXTERNAL_VPN_GATEWAYS_CLIENT_H #include "google/cloud/compute/external_vpn_gateways/v1/external_vpn_gateways_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,11 @@ class ExternalVpnGatewaysClient { std::string const& external_vpn_gateway, Options opts = {}); + StatusOr DeleteExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& external_vpn_gateway, + Options opts = {}); + // clang-format off /// /// Deletes the specified externalVpnGateway. @@ -165,6 +172,18 @@ class ExternalVpnGatewaysClient { DeleteExternalVpnGatewayRequest const& request, Options opts = {}); + StatusOr DeleteExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request, + Options opts = {}); + + future> + DeleteExternalVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified externalVpnGateway. Get a list of available @@ -267,6 +286,13 @@ class ExternalVpnGatewaysClient { external_vpn_gateway_resource, Options opts = {}); + StatusOr InsertExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ExternalVpnGateway const& + external_vpn_gateway_resource, + Options opts = {}); + // clang-format off /// /// Creates a ExternalVpnGateway in the specified project using the data @@ -308,6 +334,18 @@ class ExternalVpnGatewaysClient { InsertExternalVpnGatewayRequest const& request, Options opts = {}); + StatusOr InsertExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request, + Options opts = {}); + + future> + InsertExternalVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of ExternalVpnGateway available to the specified @@ -425,6 +463,13 @@ class ExternalVpnGatewaysClient { global_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on an ExternalVpnGateway. To learn more about labels, read @@ -465,6 +510,17 @@ class ExternalVpnGatewaysClient { SetLabelsRequest const& request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. 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..c8228298d2761 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,33 @@ ExternalVpnGatewaysTracingConnection::DeleteExternalVpnGateway( child_->DeleteExternalVpnGateway(request)); } +StatusOr +ExternalVpnGatewaysTracingConnection::DeleteExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ExternalVpnGatewaysTracingConnection::DeleteExternalVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ExternalVpnGatewaysTracingConnection::GetExternalVpnGateway( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -71,6 +98,33 @@ ExternalVpnGatewaysTracingConnection::InsertExternalVpnGateway( child_->InsertExternalVpnGateway(request)); } +StatusOr +ExternalVpnGatewaysTracingConnection::InsertExternalVpnGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ExternalVpnGatewaysTracingConnection::InsertExternalVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ExternalVpnGatewaysTracingConnection::ListExternalVpnGateways( google::cloud::cpp::compute::external_vpn_gateways::v1:: @@ -96,6 +150,33 @@ ExternalVpnGatewaysTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +ExternalVpnGatewaysTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ExternalVpnGatewaysTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..59a34762c1731 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request) override; + + future> + DeleteExternalVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request) override; + + future> + InsertExternalVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + google::cloud::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..9cebb1513d1f1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + DeleteExternalVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteExternalVpnGateway, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + InsertExternalVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertExternalVpnGateway, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::external_vpn_gateways::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.cc b/google/cloud/compute/firewall_policies/v1/firewall_policies_client.cc index 3bd4a3d950e9c..0fce32c8f8478 100644 --- a/google/cloud/compute/firewall_policies/v1/firewall_policies_client.cc +++ b/google/cloud/compute/firewall_policies/v1/firewall_policies_client.cc @@ -47,6 +47,23 @@ FirewallPoliciesClient::AddAssociation( return connection_->AddAssociation(request); } +StatusOr +FirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyAssociation const& + firewall_policy_association_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1::AddAssociationRequest + request; + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_association_resource() = + firewall_policy_association_resource; + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::AddAssociation( google::cloud::cpp::compute::firewall_policies::v1:: @@ -56,6 +73,26 @@ FirewallPoliciesClient::AddAssociation( return connection_->AddAssociation(request); } +StatusOr +FirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + operation); +} + future> FirewallPoliciesClient::AddRule( std::string const& firewall_policy, @@ -70,6 +107,22 @@ FirewallPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +FirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest request; + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_rule_resource() = + firewall_policy_rule_resource; + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::AddRule( google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& @@ -79,6 +132,25 @@ FirewallPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +FirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, operation); +} + future> FirewallPoliciesClient::CloneRules(std::string const& firewall_policy, Options opts) { @@ -88,6 +160,18 @@ FirewallPoliciesClient::CloneRules(std::string const& firewall_policy, return connection_->CloneRules(request); } +StatusOr +FirewallPoliciesClient::CloneRules(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& firewall_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1::CloneRulesRequest request; + request.set_firewall_policy(firewall_policy); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::CloneRules( google::cloud::cpp::compute::firewall_policies::v1::CloneRulesRequest const& @@ -97,6 +181,25 @@ FirewallPoliciesClient::CloneRules( return connection_->CloneRules(request); } +StatusOr +FirewallPoliciesClient::CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::CloneRulesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::CloneRules( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, operation); +} + future> FirewallPoliciesClient::DeleteFirewallPolicy(std::string const& firewall_policy, Options opts) { @@ -107,6 +210,19 @@ FirewallPoliciesClient::DeleteFirewallPolicy(std::string const& firewall_policy, return connection_->DeleteFirewallPolicy(request); } +StatusOr +FirewallPoliciesClient::DeleteFirewallPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& firewall_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest request; + request.set_firewall_policy(firewall_policy); + return connection_->DeleteFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::DeleteFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -116,6 +232,26 @@ FirewallPoliciesClient::DeleteFirewallPolicy( return connection_->DeleteFirewallPolicy(request); } +StatusOr +FirewallPoliciesClient::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FirewallPoliciesClient::GetFirewallPolicy(std::string const& firewall_policy, Options opts) { @@ -200,6 +336,26 @@ FirewallPoliciesClient::InsertFirewallPolicy( return connection_->InsertFirewallPolicy(request); } +StatusOr +FirewallPoliciesClient::InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::InsertFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange FirewallPoliciesClient::ListFirewallPolicies( google::cloud::cpp::compute::firewall_policies::v1:: @@ -227,6 +383,17 @@ FirewallPoliciesClient::Move(std::string const& firewall_policy, Options opts) { return connection_->Move(request); } +StatusOr +FirewallPoliciesClient::Move(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& firewall_policy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest request; + request.set_firewall_policy(firewall_policy); + return connection_->Move(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::Move( google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& @@ -236,6 +403,25 @@ FirewallPoliciesClient::Move( return connection_->Move(request); } +StatusOr +FirewallPoliciesClient::Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Move(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::Move( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Move(google::cloud::ExperimentalTag{}, operation); +} + future> FirewallPoliciesClient::PatchFirewallPolicy( std::string const& firewall_policy, @@ -250,6 +436,22 @@ FirewallPoliciesClient::PatchFirewallPolicy( return connection_->PatchFirewallPolicy(request); } +StatusOr +FirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1::PatchFirewallPolicyRequest + request; + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_resource() = firewall_policy_resource; + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::PatchFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -259,6 +461,26 @@ FirewallPoliciesClient::PatchFirewallPolicy( return connection_->PatchFirewallPolicy(request); } +StatusOr +FirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> FirewallPoliciesClient::PatchRule( std::string const& firewall_policy, @@ -273,6 +495,22 @@ FirewallPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +FirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1::PatchRuleRequest request; + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_rule_resource() = + firewall_policy_rule_resource; + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::PatchRule( google::cloud::cpp::compute::firewall_policies::v1::PatchRuleRequest const& @@ -282,6 +520,25 @@ FirewallPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +FirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::PatchRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, operation); +} + future> FirewallPoliciesClient::RemoveAssociation(std::string const& firewall_policy, Options opts) { @@ -292,6 +549,19 @@ FirewallPoliciesClient::RemoveAssociation(std::string const& firewall_policy, return connection_->RemoveAssociation(request); } +StatusOr +FirewallPoliciesClient::RemoveAssociation(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& firewall_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1::RemoveAssociationRequest + request; + request.set_firewall_policy(firewall_policy); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::RemoveAssociation( google::cloud::cpp::compute::firewall_policies::v1:: @@ -301,6 +571,26 @@ FirewallPoliciesClient::RemoveAssociation( return connection_->RemoveAssociation(request); } +StatusOr +FirewallPoliciesClient::RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::RemoveAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + operation); +} + future> FirewallPoliciesClient::RemoveRule(std::string const& firewall_policy, Options opts) { @@ -310,6 +600,18 @@ FirewallPoliciesClient::RemoveRule(std::string const& firewall_policy, return connection_->RemoveRule(request); } +StatusOr +FirewallPoliciesClient::RemoveRule(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& firewall_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewall_policies::v1::RemoveRuleRequest request; + request.set_firewall_policy(firewall_policy); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallPoliciesClient::RemoveRule( google::cloud::cpp::compute::firewall_policies::v1::RemoveRuleRequest const& @@ -319,6 +621,25 @@ FirewallPoliciesClient::RemoveRule( return connection_->RemoveRule(request); } +StatusOr +FirewallPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::RemoveRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, operation); +} + StatusOr FirewallPoliciesClient::SetIamPolicy( std::string const& resource, diff --git a/google/cloud/compute/firewall_policies/v1/firewall_policies_client.h b/google/cloud/compute/firewall_policies/v1/firewall_policies_client.h index d408e6989f8d2..31140345d6420 100644 --- a/google/cloud/compute/firewall_policies/v1/firewall_policies_client.h +++ b/google/cloud/compute/firewall_policies/v1/firewall_policies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_FIREWALL_POLICIES_V1_FIREWALL_POLICIES_CLIENT_H #include "google/cloud/compute/firewall_policies/v1/firewall_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -123,6 +125,13 @@ class FirewallPoliciesClient { firewall_policy_association_resource, Options opts = {}); + StatusOr AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyAssociation const& + firewall_policy_association_resource, + Options opts = {}); + // clang-format off /// /// Inserts an association for the specified firewall policy. @@ -162,6 +171,17 @@ class FirewallPoliciesClient { AddAssociationRequest const& request, Options opts = {}); + StatusOr AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request, + Options opts = {}); + + future> AddAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Inserts a rule into a firewall policy. @@ -198,6 +218,13 @@ class FirewallPoliciesClient { firewall_policy_rule_resource, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Inserts a rule into a firewall policy. @@ -237,6 +264,17 @@ class FirewallPoliciesClient { request, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request, + Options opts = {}); + + future> AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Copies rules to the specified firewall policy. @@ -269,6 +307,10 @@ class FirewallPoliciesClient { future> CloneRules( std::string const& firewall_policy, Options opts = {}); + StatusOr CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Copies rules to the specified firewall policy. @@ -308,6 +350,17 @@ class FirewallPoliciesClient { CloneRulesRequest const& request, Options opts = {}); + StatusOr CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const& request, + Options opts = {}); + + future> CloneRules( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified policy. @@ -340,6 +393,10 @@ class FirewallPoliciesClient { future> DeleteFirewallPolicy(std::string const& firewall_policy, Options opts = {}); + StatusOr DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Deletes the specified policy. @@ -379,6 +436,18 @@ class FirewallPoliciesClient { DeleteFirewallPolicyRequest const& request, Options opts = {}); + StatusOr DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request, + Options opts = {}); + + future> + DeleteFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified firewall policy. @@ -657,6 +726,18 @@ class FirewallPoliciesClient { InsertFirewallPolicyRequest const& request, Options opts = {}); + StatusOr InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request, + Options opts = {}); + + future> + InsertFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all the policies that have been configured for the specified folder @@ -766,6 +847,10 @@ class FirewallPoliciesClient { future> Move( std::string const& firewall_policy, Options opts = {}); + StatusOr Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Moves the specified firewall policy. @@ -805,6 +890,17 @@ class FirewallPoliciesClient { request, Options opts = {}); + StatusOr Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request, + Options opts = {}); + + future> Move( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Patches the specified policy with the data included in the request. @@ -841,6 +937,13 @@ class FirewallPoliciesClient { firewall_policy_resource, Options opts = {}); + StatusOr PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified policy with the data included in the request. @@ -880,6 +983,18 @@ class FirewallPoliciesClient { PatchFirewallPolicyRequest const& request, Options opts = {}); + StatusOr PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request, + Options opts = {}); + + future> + PatchFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Patches a rule of the specified priority. @@ -916,6 +1031,13 @@ class FirewallPoliciesClient { firewall_policy_rule_resource, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Patches a rule of the specified priority. @@ -955,6 +1077,17 @@ class FirewallPoliciesClient { PatchRuleRequest const& request, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const& request, + Options opts = {}); + + future> PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes an association for the specified firewall policy. @@ -987,6 +1120,10 @@ class FirewallPoliciesClient { future> RemoveAssociation(std::string const& firewall_policy, Options opts = {}); + StatusOr RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Removes an association for the specified firewall policy. @@ -1026,6 +1163,17 @@ class FirewallPoliciesClient { RemoveAssociationRequest const& request, Options opts = {}); + StatusOr RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request, + Options opts = {}); + + future> + RemoveAssociation(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a rule of the specified priority. @@ -1058,6 +1206,10 @@ class FirewallPoliciesClient { future> RemoveRule( std::string const& firewall_policy, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Deletes a rule of the specified priority. @@ -1097,6 +1249,17 @@ class FirewallPoliciesClient { RemoveRuleRequest const& request, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const& request, + Options opts = {}); + + future> RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any 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..5590d540a2aa3 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,33 @@ FirewallPoliciesTracingConnection::AddAssociation( return internal::EndSpan(std::move(span), child_->AddAssociation(request)); } +StatusOr +FirewallPoliciesTracingConnection::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::AddAssociation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::AddRule( google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& @@ -55,6 +82,31 @@ FirewallPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +FirewallPoliciesTracingConnection::AddRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::AddRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::CloneRules( google::cloud::cpp::compute::firewall_policies::v1::CloneRulesRequest const& @@ -65,6 +117,31 @@ FirewallPoliciesTracingConnection::CloneRules( return internal::EndSpan(std::move(span), child_->CloneRules(request)); } +StatusOr +FirewallPoliciesTracingConnection::CloneRules( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::CloneRules( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -77,6 +154,33 @@ FirewallPoliciesTracingConnection::DeleteFirewallPolicy( child_->DeleteFirewallPolicy(request)); } +StatusOr +FirewallPoliciesTracingConnection::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::DeleteFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FirewallPoliciesTracingConnection::GetFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -131,6 +235,33 @@ FirewallPoliciesTracingConnection::InsertFirewallPolicy( child_->InsertFirewallPolicy(request)); } +StatusOr +FirewallPoliciesTracingConnection::InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::InsertFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange FirewallPoliciesTracingConnection::ListFirewallPolicies( google::cloud::cpp::compute::firewall_policies::v1:: @@ -167,6 +298,31 @@ FirewallPoliciesTracingConnection::Move( return internal::EndSpan(std::move(span), child_->Move(request)); } +StatusOr +FirewallPoliciesTracingConnection::Move( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::Move( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::PatchFirewallPolicy( google::cloud::cpp::compute::firewall_policies::v1:: @@ -179,6 +335,33 @@ FirewallPoliciesTracingConnection::PatchFirewallPolicy( child_->PatchFirewallPolicy(request)); } +StatusOr +FirewallPoliciesTracingConnection::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::PatchFirewallPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::firewall_policies::v1::PatchRuleRequest const& @@ -189,6 +372,31 @@ FirewallPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +FirewallPoliciesTracingConnection::PatchRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::PatchRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::RemoveAssociation( google::cloud::cpp::compute::firewall_policies::v1:: @@ -200,6 +408,33 @@ FirewallPoliciesTracingConnection::RemoveAssociation( return internal::EndSpan(std::move(span), child_->RemoveAssociation(request)); } +StatusOr +FirewallPoliciesTracingConnection::RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::RemoveAssociation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FirewallPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::firewall_policies::v1::RemoveRuleRequest const& @@ -210,6 +445,31 @@ FirewallPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +FirewallPoliciesTracingConnection::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallPoliciesTracingConnection::RemoveRule( + google::cloud::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(google::cloud::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..ea7583e8be6b0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request) override; + + future> AddRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request) override; + + future> Move( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + google::cloud::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..e8fe3d0b7277c 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + AddAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddAssociation, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::AddRuleRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + CloneRulesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CloneRules, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + InsertFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1::MoveRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Move, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveAssociation, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewall_policies::v1:: + RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (google::cloud::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_client.cc b/google/cloud/compute/firewalls/v1/firewalls_client.cc index 85e493c580f33..83fb71082d551 100644 --- a/google/cloud/compute/firewalls/v1/firewalls_client.cc +++ b/google/cloud/compute/firewalls/v1/firewalls_client.cc @@ -42,6 +42,19 @@ FirewallsClient::DeleteFirewall(std::string const& project, return connection_->DeleteFirewall(request); } +StatusOr +FirewallsClient::DeleteFirewall(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& firewall, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest request; + request.set_project(project); + request.set_firewall(firewall); + return connection_->DeleteFirewall(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallsClient::DeleteFirewall( google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& @@ -51,6 +64,26 @@ FirewallsClient::DeleteFirewall( return connection_->DeleteFirewall(request); } +StatusOr +FirewallsClient::DeleteFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFirewall(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallsClient::DeleteFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFirewall(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FirewallsClient::GetFirewall(std::string const& project, std::string const& firewall, Options opts) { @@ -82,6 +115,20 @@ FirewallsClient::InsertFirewall( return connection_->InsertFirewall(request); } +StatusOr +FirewallsClient::InsertFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Firewall const& firewall_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest request; + request.set_project(project); + *request.mutable_firewall_resource() = firewall_resource; + return connection_->InsertFirewall(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallsClient::InsertFirewall( google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& @@ -91,6 +138,26 @@ FirewallsClient::InsertFirewall( return connection_->InsertFirewall(request); } +StatusOr +FirewallsClient::InsertFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertFirewall(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallsClient::InsertFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertFirewall(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange FirewallsClient::ListFirewalls(std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -120,6 +187,21 @@ FirewallsClient::PatchFirewall( return connection_->PatchFirewall(request); } +StatusOr +FirewallsClient::PatchFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall, + google::cloud::cpp::compute::v1::Firewall const& firewall_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest request; + request.set_project(project); + request.set_firewall(firewall); + *request.mutable_firewall_resource() = firewall_resource; + return connection_->PatchFirewall(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallsClient::PatchFirewall( google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& @@ -129,6 +211,26 @@ FirewallsClient::PatchFirewall( return connection_->PatchFirewall(request); } +StatusOr +FirewallsClient::PatchFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchFirewall(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallsClient::PatchFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchFirewall(google::cloud::ExperimentalTag{}, + operation); +} + future> FirewallsClient::UpdateFirewall( std::string const& project, std::string const& firewall, @@ -142,6 +244,21 @@ FirewallsClient::UpdateFirewall( return connection_->UpdateFirewall(request); } +StatusOr +FirewallsClient::UpdateFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall, + google::cloud::cpp::compute::v1::Firewall const& firewall_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest request; + request.set_project(project); + request.set_firewall(firewall); + *request.mutable_firewall_resource() = firewall_resource; + return connection_->UpdateFirewall(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FirewallsClient::UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& @@ -151,6 +268,26 @@ FirewallsClient::UpdateFirewall( return connection_->UpdateFirewall(request); } +StatusOr +FirewallsClient::UpdateFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFirewall(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FirewallsClient::UpdateFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFirewall(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_firewalls_v1 } // namespace cloud diff --git a/google/cloud/compute/firewalls/v1/firewalls_client.h b/google/cloud/compute/firewalls/v1/firewalls_client.h index d679227c997a0..4097d87af2f8f 100644 --- a/google/cloud/compute/firewalls/v1/firewalls_client.h +++ b/google/cloud/compute/firewalls/v1/firewalls_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_FIREWALLS_V1_FIREWALLS_CLIENT_H #include "google/cloud/compute/firewalls/v1/firewalls_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -118,6 +120,11 @@ class FirewallsClient { std::string const& project, std::string const& firewall, Options opts = {}); + StatusOr DeleteFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall, + Options opts = {}); + // clang-format off /// /// Deletes the specified firewall. @@ -157,6 +164,17 @@ class FirewallsClient { request, Options opts = {}); + StatusOr DeleteFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request, + Options opts = {}); + + future> DeleteFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified firewall. @@ -254,6 +272,12 @@ class FirewallsClient { google::cloud::cpp::compute::v1::Firewall const& firewall_resource, Options opts = {}); + StatusOr InsertFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Firewall const& firewall_resource, + Options opts = {}); + // clang-format off /// /// Creates a firewall rule in the specified project using the data included in @@ -294,6 +318,17 @@ class FirewallsClient { request, Options opts = {}); + StatusOr InsertFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request, + Options opts = {}); + + future> InsertFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of firewall rules available to the specified project. @@ -408,6 +443,12 @@ class FirewallsClient { google::cloud::cpp::compute::v1::Firewall const& firewall_resource, Options opts = {}); + StatusOr PatchFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall, + google::cloud::cpp::compute::v1::Firewall const& firewall_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified firewall rule with the data included in the request. @@ -449,6 +490,17 @@ class FirewallsClient { request, Options opts = {}); + StatusOr PatchFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request, + Options opts = {}); + + future> PatchFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified firewall rule with the data included in the request. @@ -487,6 +539,12 @@ class FirewallsClient { google::cloud::cpp::compute::v1::Firewall const& firewall_resource, Options opts = {}); + StatusOr UpdateFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall, + google::cloud::cpp::compute::v1::Firewall const& firewall_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified firewall rule with the data included in the request. @@ -528,6 +586,17 @@ class FirewallsClient { request, Options opts = {}); + StatusOr UpdateFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request, + Options opts = {}); + + future> UpdateFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..e21e4a2320e97 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,31 @@ FirewallsTracingConnection::DeleteFirewall( return internal::EndSpan(std::move(span), child_->DeleteFirewall(request)); } +StatusOr +FirewallsTracingConnection::DeleteFirewall( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallsTracingConnection::DeleteFirewall( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FirewallsTracingConnection::GetFirewall( google::cloud::cpp::compute::firewalls::v1::GetFirewallRequest const& @@ -63,6 +88,31 @@ FirewallsTracingConnection::InsertFirewall( return internal::EndSpan(std::move(span), child_->InsertFirewall(request)); } +StatusOr +FirewallsTracingConnection::InsertFirewall( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallsTracingConnection::InsertFirewall( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange FirewallsTracingConnection::ListFirewalls( google::cloud::cpp::compute::firewalls::v1::ListFirewallsRequest request) { @@ -85,6 +135,31 @@ FirewallsTracingConnection::PatchFirewall( return internal::EndSpan(std::move(span), child_->PatchFirewall(request)); } +StatusOr +FirewallsTracingConnection::PatchFirewall( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallsTracingConnection::PatchFirewall( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FirewallsTracingConnection::UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& @@ -95,6 +170,31 @@ FirewallsTracingConnection::UpdateFirewall( return internal::EndSpan(std::move(span), child_->UpdateFirewall(request)); } +StatusOr +FirewallsTracingConnection::UpdateFirewall( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FirewallsTracingConnection::UpdateFirewall( + google::cloud::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(google::cloud::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..0ea3124ed9860 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request) override; + + future> DeleteFirewall( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request) override; + + future> InsertFirewall( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request) override; + + future> PatchFirewall( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateFirewall( google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& request) override; + StatusOr UpdateFirewall( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request) override; + + future> UpdateFirewall( + google::cloud::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..5e5585fb0a89e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::DeleteFirewallRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteFirewall, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::InsertFirewallRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertFirewall, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::PatchFirewallRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchFirewall, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::firewalls::v1::UpdateFirewallRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateFirewall, + (google::cloud::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_client.cc b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_client.cc index bbe33a8062fcf..69fef21a5dd63 100644 --- a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_client.cc +++ b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_client.cc @@ -67,6 +67,23 @@ ForwardingRulesClient::DeleteForwardingRule(std::string const& project, return connection_->DeleteForwardingRule(request); } +StatusOr +ForwardingRulesClient::DeleteForwardingRule(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& forwarding_rule, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::forwarding_rules::v1::DeleteForwardingRuleRequest + request; + request.set_project(project); + request.set_region(region); + request.set_forwarding_rule(forwarding_rule); + return connection_->DeleteForwardingRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ForwardingRulesClient::DeleteForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -76,6 +93,26 @@ ForwardingRulesClient::DeleteForwardingRule( return connection_->DeleteForwardingRule(request); } +StatusOr +ForwardingRulesClient::DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteForwardingRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ForwardingRulesClient::DeleteForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteForwardingRule(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ForwardingRulesClient::GetForwardingRule(std::string const& project, std::string const& region, @@ -114,6 +151,23 @@ ForwardingRulesClient::InsertForwardingRule( return connection_->InsertForwardingRule(request); } +StatusOr +ForwardingRulesClient::InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::ForwardingRule const& + forwarding_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::forwarding_rules::v1::InsertForwardingRuleRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_forwarding_rule_resource() = forwarding_rule_resource; + return connection_->InsertForwardingRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ForwardingRulesClient::InsertForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -123,6 +177,26 @@ ForwardingRulesClient::InsertForwardingRule( return connection_->InsertForwardingRule(request); } +StatusOr +ForwardingRulesClient::InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertForwardingRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ForwardingRulesClient::InsertForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertForwardingRule(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ForwardingRulesClient::ListForwardingRules(std::string const& project, std::string const& region, @@ -161,6 +235,25 @@ ForwardingRulesClient::PatchForwardingRule( return connection_->PatchForwardingRule(request); } +StatusOr +ForwardingRulesClient::PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& forwarding_rule, + google::cloud::cpp::compute::v1::ForwardingRule const& + forwarding_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::forwarding_rules::v1::PatchForwardingRuleRequest + request; + request.set_project(project); + request.set_region(region); + request.set_forwarding_rule(forwarding_rule); + *request.mutable_forwarding_rule_resource() = forwarding_rule_resource; + return connection_->PatchForwardingRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ForwardingRulesClient::PatchForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -170,6 +263,26 @@ ForwardingRulesClient::PatchForwardingRule( return connection_->PatchForwardingRule(request); } +StatusOr +ForwardingRulesClient::PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchForwardingRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ForwardingRulesClient::PatchForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchForwardingRule(google::cloud::ExperimentalTag{}, + operation); +} + future> ForwardingRulesClient::SetLabels( std::string const& project, std::string const& region, @@ -187,6 +300,25 @@ ForwardingRulesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +ForwardingRulesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest request; + request.set_project(project); + request.set_region(region); + request.set_resource(resource); + *request.mutable_region_set_labels_request_resource() = + region_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ForwardingRulesClient::SetLabels( google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& @@ -196,6 +328,25 @@ ForwardingRulesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +ForwardingRulesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ForwardingRulesClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + future> ForwardingRulesClient::SetTarget( std::string const& project, std::string const& region, @@ -212,6 +363,24 @@ ForwardingRulesClient::SetTarget( return connection_->SetTarget(request); } +StatusOr +ForwardingRulesClient::SetTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& forwarding_rule, + google::cloud::cpp::compute::v1::TargetReference const& + target_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest request; + request.set_project(project); + request.set_region(region); + request.set_forwarding_rule(forwarding_rule); + *request.mutable_target_reference_resource() = target_reference_resource; + return connection_->SetTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ForwardingRulesClient::SetTarget( google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& @@ -221,6 +390,25 @@ ForwardingRulesClient::SetTarget( return connection_->SetTarget(request); } +StatusOr +ForwardingRulesClient::SetTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ForwardingRulesClient::SetTarget( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTarget(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_forwarding_rules_v1 } // namespace cloud diff --git a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_client.h b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_client.h index 5f3a53503f1be..78c5062bdce08 100644 --- a/google/cloud/compute/forwarding_rules/v1/forwarding_rules_client.h +++ b/google/cloud/compute/forwarding_rules/v1/forwarding_rules_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_FORWARDING_RULES_V1_FORWARDING_RULES_CLIENT_H #include "google/cloud/compute/forwarding_rules/v1/forwarding_rules_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class ForwardingRulesClient { DeleteForwardingRule(std::string const& project, std::string const& region, std::string const& forwarding_rule, Options opts = {}); + StatusOr DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& forwarding_rule, Options opts = {}); + // clang-format off /// /// Deletes the specified ForwardingRule resource. @@ -245,6 +252,18 @@ class ForwardingRulesClient { DeleteForwardingRuleRequest const& request, Options opts = {}); + StatusOr DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request, + Options opts = {}); + + future> + DeleteForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified ForwardingRule resource. @@ -345,6 +364,13 @@ class ForwardingRulesClient { forwarding_rule_resource, Options opts = {}); + StatusOr InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::ForwardingRule const& + forwarding_rule_resource, + Options opts = {}); + // clang-format off /// /// Creates a ForwardingRule resource in the specified project and region using @@ -385,6 +411,18 @@ class ForwardingRulesClient { InsertForwardingRuleRequest const& request, Options opts = {}); + StatusOr InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request, + Options opts = {}); + + future> + InsertForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of ForwardingRule resources available to the specified @@ -508,6 +546,14 @@ class ForwardingRulesClient { forwarding_rule_resource, Options opts = {}); + StatusOr PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& forwarding_rule, + google::cloud::cpp::compute::v1::ForwardingRule const& + forwarding_rule_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified forwarding rule with the data included in the @@ -550,6 +596,18 @@ class ForwardingRulesClient { PatchForwardingRuleRequest const& request, Options opts = {}); + StatusOr PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request, + Options opts = {}); + + future> + PatchForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the labels on the specified resource. To learn more about labels, read @@ -590,6 +648,14 @@ class ForwardingRulesClient { region_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on the specified resource. To learn more about labels, read @@ -630,6 +696,17 @@ class ForwardingRulesClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes target URL for forwarding rule. The new target should be of the @@ -670,6 +747,14 @@ class ForwardingRulesClient { target_reference_resource, Options opts = {}); + StatusOr SetTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& forwarding_rule, + google::cloud::cpp::compute::v1::TargetReference const& + target_reference_resource, + Options opts = {}); + // clang-format off /// /// Changes target URL for forwarding rule. The new target should be of the @@ -710,6 +795,17 @@ class ForwardingRulesClient { request, Options opts = {}); + StatusOr SetTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& + request, + Options opts = {}); + + future> SetTarget( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..0f5c08ae049bd 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,33 @@ ForwardingRulesTracingConnection::DeleteForwardingRule( child_->DeleteForwardingRule(request)); } +StatusOr +ForwardingRulesTracingConnection::DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::DeleteForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ForwardingRulesTracingConnection::GetForwardingRule( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -84,6 +111,33 @@ ForwardingRulesTracingConnection::InsertForwardingRule( child_->InsertForwardingRule(request)); } +StatusOr +ForwardingRulesTracingConnection::InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::InsertForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ForwardingRulesTracingConnection::ListForwardingRules( google::cloud::cpp::compute::forwarding_rules::v1:: @@ -110,6 +164,33 @@ ForwardingRulesTracingConnection::PatchForwardingRule( child_->PatchForwardingRule(request)); } +StatusOr +ForwardingRulesTracingConnection::PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::PatchForwardingRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ForwardingRulesTracingConnection::SetLabels( google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& @@ -120,6 +201,31 @@ ForwardingRulesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +ForwardingRulesTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::SetLabels( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ForwardingRulesTracingConnection::SetTarget( google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& @@ -130,6 +236,31 @@ ForwardingRulesTracingConnection::SetTarget( return internal::EndSpan(std::move(span), child_->SetTarget(request)); } +StatusOr +ForwardingRulesTracingConnection::SetTarget( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ForwardingRulesTracingConnection::SetTarget( + google::cloud::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(google::cloud::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..65ea93318d6cc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) override; + + future> + DeleteForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) override; + + future> + InsertForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) override; + + future> + PatchForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1::SetTargetRequest const& + request) override; + + future> SetTarget( + google::cloud::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..8ec03ba5638b4 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteForwardingRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + InsertForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertForwardingRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + PatchForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchForwardingRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::forwarding_rules::v1:: + SetTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetTarget, + (google::cloud::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_client.cc b/google/cloud/compute/global_addresses/v1/global_addresses_client.cc index b95f9f4a906e9..01862ade4086a 100644 --- a/google/cloud/compute/global_addresses/v1/global_addresses_client.cc +++ b/google/cloud/compute/global_addresses/v1/global_addresses_client.cc @@ -43,6 +43,20 @@ GlobalAddressesClient::DeleteAddress(std::string const& project, return connection_->DeleteAddress(request); } +StatusOr +GlobalAddressesClient::DeleteAddress(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& address, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_addresses::v1::DeleteAddressRequest + request; + request.set_project(project); + request.set_address(address); + return connection_->DeleteAddress(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GlobalAddressesClient::DeleteAddress( google::cloud::cpp::compute::global_addresses::v1:: @@ -52,6 +66,26 @@ GlobalAddressesClient::DeleteAddress( return connection_->DeleteAddress(request); } +StatusOr +GlobalAddressesClient::DeleteAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAddress(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalAddressesClient::DeleteAddress( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAddress(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr GlobalAddressesClient::GetAddress(std::string const& project, std::string const& address, Options opts) { @@ -84,6 +118,21 @@ GlobalAddressesClient::InsertAddress( return connection_->InsertAddress(request); } +StatusOr +GlobalAddressesClient::InsertAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Address const& address_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_addresses::v1::InsertAddressRequest + request; + request.set_project(project); + *request.mutable_address_resource() = address_resource; + return connection_->InsertAddress(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GlobalAddressesClient::InsertAddress( google::cloud::cpp::compute::global_addresses::v1:: @@ -93,6 +142,26 @@ GlobalAddressesClient::InsertAddress( return connection_->InsertAddress(request); } +StatusOr +GlobalAddressesClient::InsertAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertAddress(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalAddressesClient::InsertAddress( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertAddress(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange GlobalAddressesClient::ListGlobalAddresses(std::string const& project, Options opts) { @@ -127,6 +196,23 @@ GlobalAddressesClient::Move( return connection_->Move(request); } +StatusOr +GlobalAddressesClient::Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& address, + google::cloud::cpp::compute::v1::GlobalAddressesMoveRequest const& + global_addresses_move_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_addresses::v1::MoveRequest request; + request.set_project(project); + request.set_address(address); + *request.mutable_global_addresses_move_request_resource() = + global_addresses_move_request_resource; + return connection_->Move(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GlobalAddressesClient::Move( google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& @@ -136,6 +222,25 @@ GlobalAddressesClient::Move( return connection_->Move(request); } +StatusOr +GlobalAddressesClient::Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Move(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalAddressesClient::Move( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Move(google::cloud::ExperimentalTag{}, operation); +} + future> GlobalAddressesClient::SetLabels( std::string const& project, std::string const& resource, @@ -151,6 +256,23 @@ GlobalAddressesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +GlobalAddressesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest request; + request.set_project(project); + request.set_resource(resource); + *request.mutable_global_set_labels_request_resource() = + global_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GlobalAddressesClient::SetLabels( google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& @@ -160,6 +282,25 @@ GlobalAddressesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +GlobalAddressesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalAddressesClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_global_addresses_v1 } // namespace cloud diff --git a/google/cloud/compute/global_addresses/v1/global_addresses_client.h b/google/cloud/compute/global_addresses/v1/global_addresses_client.h index be0f5028aad89..20950873c8856 100644 --- a/google/cloud/compute/global_addresses/v1/global_addresses_client.h +++ b/google/cloud/compute/global_addresses/v1/global_addresses_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_GLOBAL_ADDRESSES_V1_GLOBAL_ADDRESSES_CLIENT_H #include "google/cloud/compute/global_addresses/v1/global_addresses_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -121,6 +123,11 @@ class GlobalAddressesClient { std::string const& project, std::string const& address, Options opts = {}); + StatusOr DeleteAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& address, + Options opts = {}); + // clang-format off /// /// Deletes the specified address resource. @@ -160,6 +167,17 @@ class GlobalAddressesClient { DeleteAddressRequest const& request, Options opts = {}); + StatusOr DeleteAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request, + Options opts = {}); + + future> DeleteAddress( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified address resource. @@ -257,6 +275,12 @@ class GlobalAddressesClient { google::cloud::cpp::compute::v1::Address const& address_resource, Options opts = {}); + StatusOr InsertAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Address const& address_resource, + Options opts = {}); + // clang-format off /// /// Creates an address resource in the specified project by using the data @@ -297,6 +321,17 @@ class GlobalAddressesClient { InsertAddressRequest const& request, Options opts = {}); + StatusOr InsertAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request, + Options opts = {}); + + future> InsertAddress( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of global addresses. @@ -411,6 +446,13 @@ class GlobalAddressesClient { global_addresses_move_request_resource, Options opts = {}); + StatusOr Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& address, + google::cloud::cpp::compute::v1::GlobalAddressesMoveRequest const& + global_addresses_move_request_resource, + Options opts = {}); + // clang-format off /// /// Moves the specified address resource from one project to another project. @@ -450,6 +492,17 @@ class GlobalAddressesClient { request, Options opts = {}); + StatusOr Move( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request, + Options opts = {}); + + future> Move( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the labels on a GlobalAddress. To learn more about labels, read the @@ -488,6 +541,13 @@ class GlobalAddressesClient { global_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on a GlobalAddress. To learn more about labels, read the @@ -528,6 +588,17 @@ class GlobalAddressesClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..46c5e303397e9 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,31 @@ GlobalAddressesTracingConnection::DeleteAddress( return internal::EndSpan(std::move(span), child_->DeleteAddress(request)); } +StatusOr +GlobalAddressesTracingConnection::DeleteAddress( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalAddressesTracingConnection::DeleteAddress( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr GlobalAddressesTracingConnection::GetAddress( google::cloud::cpp::compute::global_addresses::v1::GetAddressRequest const& @@ -64,6 +89,31 @@ GlobalAddressesTracingConnection::InsertAddress( return internal::EndSpan(std::move(span), child_->InsertAddress(request)); } +StatusOr +GlobalAddressesTracingConnection::InsertAddress( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalAddressesTracingConnection::InsertAddress( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange GlobalAddressesTracingConnection::ListGlobalAddresses( google::cloud::cpp::compute::global_addresses::v1:: @@ -87,6 +137,31 @@ GlobalAddressesTracingConnection::Move( return internal::EndSpan(std::move(span), child_->Move(request)); } +StatusOr +GlobalAddressesTracingConnection::Move( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalAddressesTracingConnection::Move( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> GlobalAddressesTracingConnection::SetLabels( google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& @@ -97,6 +172,31 @@ GlobalAddressesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +GlobalAddressesTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalAddressesTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..47d942ba940e0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request) override; + + future> DeleteAddress( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request) override; + + future> InsertAddress( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request) override; + + future> Move( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::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..edfb2ecdd18a4 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + DeleteAddressRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAddress, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + InsertAddressRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertAddress, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1::MoveRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Move, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_addresses::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.cc b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_client.cc index 50283c89680b2..87f40aab48465 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_client.cc +++ b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_client.cc @@ -45,6 +45,20 @@ GlobalForwardingRulesClient::DeleteForwardingRule( return connection_->DeleteForwardingRule(request); } +StatusOr +GlobalForwardingRulesClient::DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& forwarding_rule, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest request; + request.set_project(project); + request.set_forwarding_rule(forwarding_rule); + return connection_->DeleteForwardingRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalForwardingRulesClient::DeleteForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -54,6 +68,26 @@ GlobalForwardingRulesClient::DeleteForwardingRule( return connection_->DeleteForwardingRule(request); } +StatusOr +GlobalForwardingRulesClient::DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteForwardingRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalForwardingRulesClient::DeleteForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteForwardingRule(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr GlobalForwardingRulesClient::GetForwardingRule( std::string const& project, std::string const& forwarding_rule, @@ -89,6 +123,22 @@ GlobalForwardingRulesClient::InsertForwardingRule( return connection_->InsertForwardingRule(request); } +StatusOr +GlobalForwardingRulesClient::InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ForwardingRule const& + forwarding_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest request; + request.set_project(project); + *request.mutable_forwarding_rule_resource() = forwarding_rule_resource; + return connection_->InsertForwardingRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalForwardingRulesClient::InsertForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -98,6 +148,26 @@ GlobalForwardingRulesClient::InsertForwardingRule( return connection_->InsertForwardingRule(request); } +StatusOr +GlobalForwardingRulesClient::InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertForwardingRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalForwardingRulesClient::InsertForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertForwardingRule(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange GlobalForwardingRulesClient::ListGlobalForwardingRules( std::string const& project, Options opts) { @@ -132,6 +202,23 @@ GlobalForwardingRulesClient::PatchForwardingRule( return connection_->PatchForwardingRule(request); } +StatusOr +GlobalForwardingRulesClient::PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& forwarding_rule, + google::cloud::cpp::compute::v1::ForwardingRule const& + forwarding_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest request; + request.set_project(project); + request.set_forwarding_rule(forwarding_rule); + *request.mutable_forwarding_rule_resource() = forwarding_rule_resource; + return connection_->PatchForwardingRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GlobalForwardingRulesClient::PatchForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -141,6 +228,26 @@ GlobalForwardingRulesClient::PatchForwardingRule( return connection_->PatchForwardingRule(request); } +StatusOr +GlobalForwardingRulesClient::PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchForwardingRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalForwardingRulesClient::PatchForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchForwardingRule(google::cloud::ExperimentalTag{}, + operation); +} + future> GlobalForwardingRulesClient::SetLabels( std::string const& project, std::string const& resource, @@ -157,6 +264,24 @@ GlobalForwardingRulesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +GlobalForwardingRulesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_forwarding_rules::v1::SetLabelsRequest + request; + request.set_project(project); + request.set_resource(resource); + *request.mutable_global_set_labels_request_resource() = + global_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GlobalForwardingRulesClient::SetLabels( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -166,6 +291,25 @@ GlobalForwardingRulesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +GlobalForwardingRulesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalForwardingRulesClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + future> GlobalForwardingRulesClient::SetTarget( std::string const& project, std::string const& forwarding_rule, @@ -181,6 +325,23 @@ GlobalForwardingRulesClient::SetTarget( return connection_->SetTarget(request); } +StatusOr +GlobalForwardingRulesClient::SetTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& forwarding_rule, + google::cloud::cpp::compute::v1::TargetReference const& + target_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_forwarding_rules::v1::SetTargetRequest + request; + request.set_project(project); + request.set_forwarding_rule(forwarding_rule); + *request.mutable_target_reference_resource() = target_reference_resource; + return connection_->SetTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GlobalForwardingRulesClient::SetTarget( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -190,6 +351,25 @@ GlobalForwardingRulesClient::SetTarget( return connection_->SetTarget(request); } +StatusOr +GlobalForwardingRulesClient::SetTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalForwardingRulesClient::SetTarget( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTarget(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_client.h index 5b7c4f433bdbb..84431bf404058 100644 --- a/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_client.h +++ b/google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_GLOBAL_FORWARDING_RULES_V1_GLOBAL_FORWARDING_RULES_CLIENT_H #include "google/cloud/compute/global_forwarding_rules/v1/global_forwarding_rules_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,11 @@ class GlobalForwardingRulesClient { DeleteForwardingRule(std::string const& project, std::string const& forwarding_rule, Options opts = {}); + StatusOr DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& forwarding_rule, + Options opts = {}); + // clang-format off /// /// Deletes the specified GlobalForwardingRule resource. @@ -164,6 +171,18 @@ class GlobalForwardingRulesClient { v1::DeleteForwardingRuleRequest const& request, Options opts = {}); + StatusOr DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request, + Options opts = {}); + + future> + DeleteForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified GlobalForwardingRule resource. Gets a list of @@ -264,6 +283,13 @@ class GlobalForwardingRulesClient { forwarding_rule_resource, Options opts = {}); + StatusOr InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ForwardingRule const& + forwarding_rule_resource, + Options opts = {}); + // clang-format off /// /// Creates a GlobalForwardingRule resource in the specified project using the @@ -304,6 +330,18 @@ class GlobalForwardingRulesClient { v1::InsertForwardingRuleRequest const& request, Options opts = {}); + StatusOr InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request, + Options opts = {}); + + future> + InsertForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of GlobalForwardingRule resources available to the @@ -425,6 +463,13 @@ class GlobalForwardingRulesClient { forwarding_rule_resource, Options opts = {}); + StatusOr PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& forwarding_rule, + google::cloud::cpp::compute::v1::ForwardingRule const& + forwarding_rule_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified forwarding rule with the data included in the @@ -467,6 +512,18 @@ class GlobalForwardingRulesClient { PatchForwardingRuleRequest const& request, Options opts = {}); + StatusOr PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request, + Options opts = {}); + + future> + PatchForwardingRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the labels on the specified resource. To learn more about labels, read @@ -505,6 +562,13 @@ class GlobalForwardingRulesClient { global_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on the specified resource. To learn more about labels, read @@ -545,6 +609,17 @@ class GlobalForwardingRulesClient { SetLabelsRequest const& request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes target URL for the GlobalForwardingRule resource. The new target @@ -583,6 +658,13 @@ class GlobalForwardingRulesClient { target_reference_resource, Options opts = {}); + StatusOr SetTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& forwarding_rule, + google::cloud::cpp::compute::v1::TargetReference const& + target_reference_resource, + Options opts = {}); + // clang-format off /// /// Changes target URL for the GlobalForwardingRule resource. The new target @@ -623,6 +705,17 @@ class GlobalForwardingRulesClient { SetTargetRequest const& request, Options opts = {}); + StatusOr SetTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request, + Options opts = {}); + + future> SetTarget( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..14c9d3272ef66 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,33 @@ GlobalForwardingRulesTracingConnection::DeleteForwardingRule( child_->DeleteForwardingRule(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::DeleteForwardingRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::DeleteForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr GlobalForwardingRulesTracingConnection::GetForwardingRule( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -71,6 +98,33 @@ GlobalForwardingRulesTracingConnection::InsertForwardingRule( child_->InsertForwardingRule(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::InsertForwardingRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::InsertForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange GlobalForwardingRulesTracingConnection::ListGlobalForwardingRules( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -97,6 +151,33 @@ GlobalForwardingRulesTracingConnection::PatchForwardingRule( child_->PatchForwardingRule(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::PatchForwardingRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::PatchForwardingRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> GlobalForwardingRulesTracingConnection::SetLabels( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -108,6 +189,33 @@ GlobalForwardingRulesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::SetLabels( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> GlobalForwardingRulesTracingConnection::SetTarget( google::cloud::cpp::compute::global_forwarding_rules::v1:: @@ -119,6 +227,33 @@ GlobalForwardingRulesTracingConnection::SetTarget( return internal::EndSpan(std::move(span), child_->SetTarget(request)); } +StatusOr +GlobalForwardingRulesTracingConnection::SetTarget( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalForwardingRulesTracingConnection::SetTarget( + google::cloud::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(google::cloud::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..0602b26e60efe 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request) override; + + future> + DeleteForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request) override; + + future> + InsertForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request) override; + + future> + PatchForwardingRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request) override; + + future> SetTarget( + google::cloud::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..ed7edaf2380e0 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + DeleteForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteForwardingRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + InsertForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertForwardingRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + PatchForwardingRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchForwardingRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_forwarding_rules::v1:: + SetTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetTarget, + (google::cloud::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_client.cc b/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_client.cc index 82b603f961cd0..3337c7944f25b 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_client.cc +++ b/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_client.cc @@ -53,6 +53,26 @@ GlobalNetworkEndpointGroupsClient::AttachNetworkEndpoints( return connection_->AttachNetworkEndpoints(request); } +StatusOr +GlobalNetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + GlobalNetworkEndpointGroupsAttachEndpointsRequest const& + global_network_endpoint_groups_attach_endpoints_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest request; + request.set_project(project); + request.set_network_endpoint_group(network_endpoint_group); + *request + .mutable_global_network_endpoint_groups_attach_endpoints_request_resource() = + global_network_endpoint_groups_attach_endpoints_request_resource; + return connection_->AttachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalNetworkEndpointGroupsClient::AttachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -62,6 +82,26 @@ GlobalNetworkEndpointGroupsClient::AttachNetworkEndpoints( return connection_->AttachNetworkEndpoints(request); } +StatusOr +GlobalNetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalNetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachNetworkEndpoints(google::cloud::ExperimentalTag{}, + operation); +} + future> GlobalNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( std::string const& project, std::string const& network_endpoint_group, @@ -74,6 +114,20 @@ GlobalNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( return connection_->DeleteNetworkEndpointGroup(request); } +StatusOr +GlobalNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network_endpoint_group, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest request; + request.set_project(project); + request.set_network_endpoint_group(network_endpoint_group); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -83,6 +137,26 @@ GlobalNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( return connection_->DeleteNetworkEndpointGroup(request); } +StatusOr +GlobalNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, operation); +} + future> GlobalNetworkEndpointGroupsClient::DetachNetworkEndpoints( std::string const& project, std::string const& network_endpoint_group, @@ -101,6 +175,26 @@ GlobalNetworkEndpointGroupsClient::DetachNetworkEndpoints( return connection_->DetachNetworkEndpoints(request); } +StatusOr +GlobalNetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + GlobalNetworkEndpointGroupsDetachEndpointsRequest const& + global_network_endpoint_groups_detach_endpoints_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest request; + request.set_project(project); + request.set_network_endpoint_group(network_endpoint_group); + *request + .mutable_global_network_endpoint_groups_detach_endpoints_request_resource() = + global_network_endpoint_groups_detach_endpoints_request_resource; + return connection_->DetachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalNetworkEndpointGroupsClient::DetachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -110,6 +204,26 @@ GlobalNetworkEndpointGroupsClient::DetachNetworkEndpoints( return connection_->DetachNetworkEndpoints(request); } +StatusOr +GlobalNetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalNetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachNetworkEndpoints(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr GlobalNetworkEndpointGroupsClient::GetNetworkEndpointGroup( std::string const& project, std::string const& network_endpoint_group, @@ -146,6 +260,23 @@ GlobalNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( return connection_->InsertNetworkEndpointGroup(request); } +StatusOr +GlobalNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::NetworkEndpointGroup const& + network_endpoint_group_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest request; + request.set_project(project); + *request.mutable_network_endpoint_group_resource() = + network_endpoint_group_resource; + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -155,6 +286,26 @@ GlobalNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( return connection_->InsertNetworkEndpointGroup(request); } +StatusOr +GlobalNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange GlobalNetworkEndpointGroupsClient::ListGlobalNetworkEndpointGroups( std::string const& project, Options opts) { diff --git a/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_client.h b/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_client.h index d997433ebfc35..5dbc5eaac3297 100644 --- a/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_client.h +++ b/google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_GLOBAL_NETWORK_ENDPOINT_GROUPS_V1_GLOBAL_NETWORK_ENDPOINT_GROUPS_CLIENT_H #include "google/cloud/compute/global_network_endpoint_groups/v1/global_network_endpoint_groups_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -133,6 +135,14 @@ class GlobalNetworkEndpointGroupsClient { global_network_endpoint_groups_attach_endpoints_request_resource, Options opts = {}); + StatusOr AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + GlobalNetworkEndpointGroupsAttachEndpointsRequest const& + global_network_endpoint_groups_attach_endpoints_request_resource, + Options opts = {}); + // clang-format off /// /// Attach a network endpoint to the specified network endpoint group. @@ -173,6 +183,18 @@ class GlobalNetworkEndpointGroupsClient { AttachNetworkEndpointsRequest const& request, Options opts = {}); + StatusOr AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request, + Options opts = {}); + + future> + AttachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified network endpoint group.Note that the NEG cannot be @@ -210,6 +232,13 @@ class GlobalNetworkEndpointGroupsClient { std::string const& network_endpoint_group, Options opts = {}); + StatusOr + DeleteNetworkEndpointGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& network_endpoint_group, + Options opts = {}); + // clang-format off /// /// Deletes the specified network endpoint group.Note that the NEG cannot be @@ -251,6 +280,19 @@ class GlobalNetworkEndpointGroupsClient { DeleteNetworkEndpointGroupRequest const& request, Options opts = {}); + StatusOr + DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request, + Options opts = {}); + + future> + DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Detach the network endpoint from the specified network endpoint group. @@ -291,6 +333,14 @@ class GlobalNetworkEndpointGroupsClient { global_network_endpoint_groups_detach_endpoints_request_resource, Options opts = {}); + StatusOr DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + GlobalNetworkEndpointGroupsDetachEndpointsRequest const& + global_network_endpoint_groups_detach_endpoints_request_resource, + Options opts = {}); + // clang-format off /// /// Detach the network endpoint from the specified network endpoint group. @@ -331,6 +381,18 @@ class GlobalNetworkEndpointGroupsClient { DetachNetworkEndpointsRequest const& request, Options opts = {}); + StatusOr DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request, + Options opts = {}); + + future> + DetachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified network endpoint group. @@ -432,6 +494,14 @@ class GlobalNetworkEndpointGroupsClient { network_endpoint_group_resource, Options opts = {}); + StatusOr + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::NetworkEndpointGroup const& + network_endpoint_group_resource, + Options opts = {}); + // clang-format off /// /// Creates a network endpoint group in the specified project using the @@ -473,6 +543,19 @@ class GlobalNetworkEndpointGroupsClient { InsertNetworkEndpointGroupRequest const& request, Options opts = {}); + StatusOr + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request, + Options opts = {}); + + future> + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of network endpoint groups that are located in the 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..bca4b7e94d578 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,33 @@ GlobalNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( child_->AttachNetworkEndpoints(request)); } +StatusOr +GlobalNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> GlobalNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -61,6 +88,33 @@ GlobalNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( child_->DeleteNetworkEndpointGroup(request)); } +StatusOr +GlobalNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> GlobalNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -73,6 +127,33 @@ GlobalNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( child_->DetachNetworkEndpoints(request)); } +StatusOr +GlobalNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr GlobalNetworkEndpointGroupsTracingConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::global_network_endpoint_groups::v1:: @@ -96,6 +177,33 @@ GlobalNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( child_->InsertNetworkEndpointGroup(request)); } +StatusOr +GlobalNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + google::cloud::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( + google::cloud::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..84674294c0680 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + google::cloud::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..ba7c3dbf720d1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + AttachNetworkEndpoints, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkEndpointGroup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachNetworkEndpoints, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkEndpointGroup, + (google::cloud::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_client.h b/google/cloud/compute/global_operations/v1/global_operations_client.h index 5799f0db16ab9..d50722322bce4 100644 --- a/google/cloud/compute/global_operations/v1/global_operations_client.h +++ b/google/cloud/compute/global_operations/v1/global_operations_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_GLOBAL_OPERATIONS_V1_GLOBAL_OPERATIONS_CLIENT_H #include "google/cloud/compute/global_operations/v1/global_operations_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/compute/global_organization_operations/v1/global_organization_operations_client.h index b8463579ad43e..f939a5df28af6 100644 --- a/google/cloud/compute/global_organization_operations/v1/global_organization_operations_client.h +++ b/google/cloud/compute/global_organization_operations/v1/global_organization_operations_client.h @@ -21,6 +21,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_GLOBAL_ORGANIZATION_OPERATIONS_V1_GLOBAL_ORGANIZATION_OPERATIONS_CLIENT_H #include "google/cloud/compute/global_organization_operations/v1/global_organization_operations_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_client.cc index 073c2e3f9baa3..9b0892c0415cd 100644 --- a/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_client.cc +++ b/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_client.cc @@ -47,6 +47,20 @@ GlobalPublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( return connection_->DeletePublicDelegatedPrefix(request); } +StatusOr +GlobalPublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_delegated_prefix, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest request; + request.set_project(project); + request.set_public_delegated_prefix(public_delegated_prefix); + return connection_->DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalPublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -56,6 +70,26 @@ GlobalPublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( return connection_->DeletePublicDelegatedPrefix(request); } +StatusOr +GlobalPublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalPublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr GlobalPublicDelegatedPrefixesClient::GetPublicDelegatedPrefix( std::string const& project, std::string const& public_delegated_prefix, @@ -92,6 +126,23 @@ GlobalPublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( return connection_->InsertPublicDelegatedPrefix(request); } +StatusOr +GlobalPublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::PublicDelegatedPrefix const& + public_delegated_prefix_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest request; + request.set_project(project); + *request.mutable_public_delegated_prefix_resource() = + public_delegated_prefix_resource; + return connection_->InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalPublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -101,6 +152,26 @@ GlobalPublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( return connection_->InsertPublicDelegatedPrefix(request); } +StatusOr +GlobalPublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalPublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange GlobalPublicDelegatedPrefixesClient::ListGlobalPublicDelegatedPrefixes( std::string const& project, Options opts) { @@ -136,6 +207,24 @@ GlobalPublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( return connection_->PatchPublicDelegatedPrefix(request); } +StatusOr +GlobalPublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_delegated_prefix, + google::cloud::cpp::compute::v1::PublicDelegatedPrefix const& + public_delegated_prefix_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest request; + request.set_project(project); + request.set_public_delegated_prefix(public_delegated_prefix); + *request.mutable_public_delegated_prefix_resource() = + public_delegated_prefix_resource; + return connection_->PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> GlobalPublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -145,6 +234,26 @@ GlobalPublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( return connection_->PatchPublicDelegatedPrefix(request); } +StatusOr +GlobalPublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +GlobalPublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_client.h index 7b09af00cca8f..73f0473d1568a 100644 --- a/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_client.h +++ b/google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_GLOBAL_PUBLIC_DELEGATED_PREFIXES_V1_GLOBAL_PUBLIC_DELEGATED_PREFIXES_CLIENT_H #include "google/cloud/compute/global_public_delegated_prefixes/v1/global_public_delegated_prefixes_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -127,6 +129,13 @@ class GlobalPublicDelegatedPrefixesClient { std::string const& public_delegated_prefix, Options opts = {}); + StatusOr + DeletePublicDelegatedPrefix(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& public_delegated_prefix, + Options opts = {}); + // clang-format off /// /// Deletes the specified global PublicDelegatedPrefix. @@ -167,6 +176,19 @@ class GlobalPublicDelegatedPrefixesClient { DeletePublicDelegatedPrefixRequest const& request, Options opts = {}); + StatusOr + DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request, + Options opts = {}); + + future> + DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified global PublicDelegatedPrefix resource. @@ -268,6 +290,14 @@ class GlobalPublicDelegatedPrefixesClient { public_delegated_prefix_resource, Options opts = {}); + StatusOr + InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::PublicDelegatedPrefix const& + public_delegated_prefix_resource, + Options opts = {}); + // clang-format off /// /// Creates a global PublicDelegatedPrefix in the specified project using the @@ -309,6 +339,19 @@ class GlobalPublicDelegatedPrefixesClient { InsertPublicDelegatedPrefixRequest const& request, Options opts = {}); + StatusOr + InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request, + Options opts = {}); + + future> + InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the global PublicDelegatedPrefixes for a project. @@ -428,6 +471,14 @@ class GlobalPublicDelegatedPrefixesClient { public_delegated_prefix_resource, Options opts = {}); + StatusOr + PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_delegated_prefix, + google::cloud::cpp::compute::v1::PublicDelegatedPrefix const& + public_delegated_prefix_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified global PublicDelegatedPrefix resource with the data @@ -470,6 +521,19 @@ class GlobalPublicDelegatedPrefixesClient { PatchPublicDelegatedPrefixRequest const& request, Options opts = {}); + StatusOr + PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request, + Options opts = {}); + + future> + PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..cbdc2e36ec419 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,33 @@ GlobalPublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( child_->DeletePublicDelegatedPrefix(request)); } +StatusOr +GlobalPublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalPublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr GlobalPublicDelegatedPrefixesTracingConnection::GetPublicDelegatedPrefix( google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: @@ -72,6 +99,33 @@ GlobalPublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( child_->InsertPublicDelegatedPrefix(request)); } +StatusOr +GlobalPublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalPublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange GlobalPublicDelegatedPrefixesTracingConnection:: ListGlobalPublicDelegatedPrefixes( @@ -100,6 +154,33 @@ GlobalPublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( child_->PatchPublicDelegatedPrefix(request)); } +StatusOr +GlobalPublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GlobalPublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr + DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) override; + + future> + DeletePublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) override; + + future> + InsertPublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) override; + + future> + PatchPublicDelegatedPrefix( + google::cloud::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..562be4945a958 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes:: + v1::DeletePublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePublicDelegatedPrefix, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes:: + v1::InsertPublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertPublicDelegatedPrefix, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::global_public_delegated_prefixes:: + v1::PatchPublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPublicDelegatedPrefix, + (google::cloud::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_client.cc b/google/cloud/compute/health_checks/v1/health_checks_client.cc index 57b8bff828b62..f6d3aad8a129c 100644 --- a/google/cloud/compute/health_checks/v1/health_checks_client.cc +++ b/google/cloud/compute/health_checks/v1/health_checks_client.cc @@ -65,6 +65,21 @@ HealthChecksClient::DeleteHealthCheck(std::string const& project, return connection_->DeleteHealthCheck(request); } +StatusOr +HealthChecksClient::DeleteHealthCheck(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& health_check, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::health_checks::v1::DeleteHealthCheckRequest + request; + request.set_project(project); + request.set_health_check(health_check); + return connection_->DeleteHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HealthChecksClient::DeleteHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -74,6 +89,26 @@ HealthChecksClient::DeleteHealthCheck( return connection_->DeleteHealthCheck(request); } +StatusOr +HealthChecksClient::DeleteHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HealthChecksClient::DeleteHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr HealthChecksClient::GetHealthCheck(std::string const& project, std::string const& health_check, @@ -107,6 +142,21 @@ HealthChecksClient::InsertHealthCheck( return connection_->InsertHealthCheck(request); } +StatusOr +HealthChecksClient::InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::health_checks::v1::InsertHealthCheckRequest + request; + request.set_project(project); + *request.mutable_health_check_resource() = health_check_resource; + return connection_->InsertHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HealthChecksClient::InsertHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -116,6 +166,26 @@ HealthChecksClient::InsertHealthCheck( return connection_->InsertHealthCheck(request); } +StatusOr +HealthChecksClient::InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HealthChecksClient::InsertHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange HealthChecksClient::ListHealthChecks(std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -148,6 +218,22 @@ HealthChecksClient::PatchHealthCheck( return connection_->PatchHealthCheck(request); } +StatusOr +HealthChecksClient::PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& health_check, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::health_checks::v1::PatchHealthCheckRequest + request; + request.set_project(project); + request.set_health_check(health_check); + *request.mutable_health_check_resource() = health_check_resource; + return connection_->PatchHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HealthChecksClient::PatchHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -157,6 +243,26 @@ HealthChecksClient::PatchHealthCheck( return connection_->PatchHealthCheck(request); } +StatusOr +HealthChecksClient::PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HealthChecksClient::PatchHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + future> HealthChecksClient::UpdateHealthCheck( std::string const& project, std::string const& health_check, @@ -171,6 +277,22 @@ HealthChecksClient::UpdateHealthCheck( return connection_->UpdateHealthCheck(request); } +StatusOr +HealthChecksClient::UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& health_check, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::health_checks::v1::UpdateHealthCheckRequest + request; + request.set_project(project); + request.set_health_check(health_check); + *request.mutable_health_check_resource() = health_check_resource; + return connection_->UpdateHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HealthChecksClient::UpdateHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -180,6 +302,26 @@ HealthChecksClient::UpdateHealthCheck( return connection_->UpdateHealthCheck(request); } +StatusOr +HealthChecksClient::UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HealthChecksClient::UpdateHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_health_checks_v1 } // namespace cloud diff --git a/google/cloud/compute/health_checks/v1/health_checks_client.h b/google/cloud/compute/health_checks/v1/health_checks_client.h index 80ffb5181272d..936128b7ebf66 100644 --- a/google/cloud/compute/health_checks/v1/health_checks_client.h +++ b/google/cloud/compute/health_checks/v1/health_checks_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_HEALTH_CHECKS_V1_HEALTH_CHECKS_CLIENT_H #include "google/cloud/compute/health_checks/v1/health_checks_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -204,6 +206,11 @@ class HealthChecksClient { DeleteHealthCheck(std::string const& project, std::string const& health_check, Options opts = {}); + StatusOr DeleteHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& health_check, + Options opts = {}); + // clang-format off /// /// Deletes the specified HealthCheck resource. @@ -243,6 +250,17 @@ class HealthChecksClient { DeleteHealthCheckRequest const& request, Options opts = {}); + StatusOr DeleteHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request, + Options opts = {}); + + future> + DeleteHealthCheck(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified HealthCheck resource. @@ -341,6 +359,12 @@ class HealthChecksClient { google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, Options opts = {}); + StatusOr InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts = {}); + // clang-format off /// /// Creates a HealthCheck resource in the specified project using the data @@ -381,6 +405,17 @@ class HealthChecksClient { InsertHealthCheckRequest const& request, Options opts = {}); + StatusOr InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request, + Options opts = {}); + + future> + InsertHealthCheck(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of HealthCheck resources available to the specified @@ -498,6 +533,12 @@ class HealthChecksClient { google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, Options opts = {}); + StatusOr PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& health_check, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts = {}); + // clang-format off /// /// Updates a HealthCheck resource in the specified project using the data @@ -539,6 +580,17 @@ class HealthChecksClient { PatchHealthCheckRequest const& request, Options opts = {}); + StatusOr PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request, + Options opts = {}); + + future> PatchHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a HealthCheck resource in the specified project using the data @@ -577,6 +629,12 @@ class HealthChecksClient { google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, Options opts = {}); + StatusOr UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& health_check, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts = {}); + // clang-format off /// /// Updates a HealthCheck resource in the specified project using the data @@ -617,6 +675,17 @@ class HealthChecksClient { UpdateHealthCheckRequest const& request, Options opts = {}); + StatusOr UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request, + Options opts = {}); + + future> + UpdateHealthCheck(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..17d71ad968987 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,31 @@ HealthChecksTracingConnection::DeleteHealthCheck( return internal::EndSpan(std::move(span), child_->DeleteHealthCheck(request)); } +StatusOr +HealthChecksTracingConnection::DeleteHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HealthChecksTracingConnection::DeleteHealthCheck( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr HealthChecksTracingConnection::GetHealthCheck( google::cloud::cpp::compute::health_checks::v1::GetHealthCheckRequest const& @@ -78,6 +103,31 @@ HealthChecksTracingConnection::InsertHealthCheck( return internal::EndSpan(std::move(span), child_->InsertHealthCheck(request)); } +StatusOr +HealthChecksTracingConnection::InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HealthChecksTracingConnection::InsertHealthCheck( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange HealthChecksTracingConnection::ListHealthChecks( google::cloud::cpp::compute::health_checks::v1::ListHealthChecksRequest @@ -101,6 +151,31 @@ HealthChecksTracingConnection::PatchHealthCheck( return internal::EndSpan(std::move(span), child_->PatchHealthCheck(request)); } +StatusOr +HealthChecksTracingConnection::PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HealthChecksTracingConnection::PatchHealthCheck( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> HealthChecksTracingConnection::UpdateHealthCheck( google::cloud::cpp::compute::health_checks::v1:: @@ -111,6 +186,31 @@ HealthChecksTracingConnection::UpdateHealthCheck( return internal::EndSpan(std::move(span), child_->UpdateHealthCheck(request)); } +StatusOr +HealthChecksTracingConnection::UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HealthChecksTracingConnection::UpdateHealthCheck( + google::cloud::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(google::cloud::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..c196fd102c685 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request) override; + + future> + DeleteHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request) override; + + future> + InsertHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request) override; + + future> PatchHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request) override; + + future> + UpdateHealthCheck( + google::cloud::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..7831284be2968 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + DeleteHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + InsertHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + PatchHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::health_checks::v1:: + UpdateHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHealthCheck, + (google::cloud::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_client.cc b/google/cloud/compute/http_health_checks/v1/http_health_checks_client.cc index 91bb58e093817..7438908e21b34 100644 --- a/google/cloud/compute/http_health_checks/v1/http_health_checks_client.cc +++ b/google/cloud/compute/http_health_checks/v1/http_health_checks_client.cc @@ -44,6 +44,20 @@ HttpHealthChecksClient::DeleteHttpHealthCheck( return connection_->DeleteHttpHealthCheck(request); } +StatusOr +HttpHealthChecksClient::DeleteHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& http_health_check, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest request; + request.set_project(project); + request.set_http_health_check(http_health_check); + return connection_->DeleteHttpHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> HttpHealthChecksClient::DeleteHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -53,6 +67,26 @@ HttpHealthChecksClient::DeleteHttpHealthCheck( return connection_->DeleteHttpHealthCheck(request); } +StatusOr +HttpHealthChecksClient::DeleteHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHttpHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +HttpHealthChecksClient::DeleteHttpHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHttpHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr HttpHealthChecksClient::GetHttpHealthCheck(std::string const& project, std::string const& http_health_check, @@ -88,6 +122,22 @@ HttpHealthChecksClient::InsertHttpHealthCheck( return connection_->InsertHttpHealthCheck(request); } +StatusOr +HttpHealthChecksClient::InsertHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::HttpHealthCheck const& + http_health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest request; + request.set_project(project); + *request.mutable_http_health_check_resource() = http_health_check_resource; + return connection_->InsertHttpHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> HttpHealthChecksClient::InsertHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -97,6 +147,26 @@ HttpHealthChecksClient::InsertHttpHealthCheck( return connection_->InsertHttpHealthCheck(request); } +StatusOr +HttpHealthChecksClient::InsertHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHttpHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +HttpHealthChecksClient::InsertHttpHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHttpHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange HttpHealthChecksClient::ListHttpHealthChecks(std::string const& project, Options opts) { @@ -131,6 +201,23 @@ HttpHealthChecksClient::PatchHttpHealthCheck( return connection_->PatchHttpHealthCheck(request); } +StatusOr +HttpHealthChecksClient::PatchHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& http_health_check, + google::cloud::cpp::compute::v1::HttpHealthCheck const& + http_health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest request; + request.set_project(project); + request.set_http_health_check(http_health_check); + *request.mutable_http_health_check_resource() = http_health_check_resource; + return connection_->PatchHttpHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> HttpHealthChecksClient::PatchHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -140,6 +227,26 @@ HttpHealthChecksClient::PatchHttpHealthCheck( return connection_->PatchHttpHealthCheck(request); } +StatusOr +HttpHealthChecksClient::PatchHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHttpHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +HttpHealthChecksClient::PatchHttpHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHttpHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + future> HttpHealthChecksClient::UpdateHttpHealthCheck( std::string const& project, std::string const& http_health_check, @@ -155,6 +262,23 @@ HttpHealthChecksClient::UpdateHttpHealthCheck( return connection_->UpdateHttpHealthCheck(request); } +StatusOr +HttpHealthChecksClient::UpdateHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& http_health_check, + google::cloud::cpp::compute::v1::HttpHealthCheck const& + http_health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest request; + request.set_project(project); + request.set_http_health_check(http_health_check); + *request.mutable_http_health_check_resource() = http_health_check_resource; + return connection_->UpdateHttpHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> HttpHealthChecksClient::UpdateHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -164,6 +288,26 @@ HttpHealthChecksClient::UpdateHttpHealthCheck( return connection_->UpdateHttpHealthCheck(request); } +StatusOr +HttpHealthChecksClient::UpdateHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHttpHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +HttpHealthChecksClient::UpdateHttpHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHttpHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/http_health_checks/v1/http_health_checks_client.h index 5967c25444c14..a52f2fa992be9 100644 --- a/google/cloud/compute/http_health_checks/v1/http_health_checks_client.h +++ b/google/cloud/compute/http_health_checks/v1/http_health_checks_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_HTTP_HEALTH_CHECKS_V1_HTTP_HEALTH_CHECKS_CLIENT_H #include "google/cloud/compute/http_health_checks/v1/http_health_checks_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -122,6 +124,11 @@ class HttpHealthChecksClient { std::string const& http_health_check, Options opts = {}); + StatusOr DeleteHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& http_health_check, + Options opts = {}); + // clang-format off /// /// Deletes the specified HttpHealthCheck resource. @@ -161,6 +168,18 @@ class HttpHealthChecksClient { DeleteHttpHealthCheckRequest const& request, Options opts = {}); + StatusOr DeleteHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request, + Options opts = {}); + + future> + DeleteHttpHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified HttpHealthCheck resource. @@ -259,6 +278,13 @@ class HttpHealthChecksClient { http_health_check_resource, Options opts = {}); + StatusOr InsertHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::HttpHealthCheck const& + http_health_check_resource, + Options opts = {}); + // clang-format off /// /// Creates a HttpHealthCheck resource in the specified project using the data @@ -299,6 +325,18 @@ class HttpHealthChecksClient { InsertHttpHealthCheckRequest const& request, Options opts = {}); + StatusOr InsertHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request, + Options opts = {}); + + future> + InsertHttpHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of HttpHealthCheck resources available to the specified @@ -418,6 +456,13 @@ class HttpHealthChecksClient { http_health_check_resource, Options opts = {}); + StatusOr PatchHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& http_health_check, + google::cloud::cpp::compute::v1::HttpHealthCheck const& + http_health_check_resource, + Options opts = {}); + // clang-format off /// /// Updates a HttpHealthCheck resource in the specified project using the data @@ -459,6 +504,18 @@ class HttpHealthChecksClient { PatchHttpHealthCheckRequest const& request, Options opts = {}); + StatusOr PatchHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request, + Options opts = {}); + + future> + PatchHttpHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a HttpHealthCheck resource in the specified project using the data @@ -498,6 +555,13 @@ class HttpHealthChecksClient { http_health_check_resource, Options opts = {}); + StatusOr UpdateHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& http_health_check, + google::cloud::cpp::compute::v1::HttpHealthCheck const& + http_health_check_resource, + Options opts = {}); + // clang-format off /// /// Updates a HttpHealthCheck resource in the specified project using the data @@ -538,6 +602,18 @@ class HttpHealthChecksClient { UpdateHttpHealthCheckRequest const& request, Options opts = {}); + StatusOr UpdateHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request, + Options opts = {}); + + future> + UpdateHttpHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..fdafa41b9b9be 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,33 @@ HttpHealthChecksTracingConnection::DeleteHttpHealthCheck( child_->DeleteHttpHealthCheck(request)); } +StatusOr +HttpHealthChecksTracingConnection::DeleteHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HttpHealthChecksTracingConnection::DeleteHttpHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr HttpHealthChecksTracingConnection::GetHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -69,6 +96,33 @@ HttpHealthChecksTracingConnection::InsertHttpHealthCheck( child_->InsertHttpHealthCheck(request)); } +StatusOr +HttpHealthChecksTracingConnection::InsertHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HttpHealthChecksTracingConnection::InsertHttpHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange HttpHealthChecksTracingConnection::ListHttpHealthChecks( google::cloud::cpp::compute::http_health_checks::v1:: @@ -95,6 +149,33 @@ HttpHealthChecksTracingConnection::PatchHttpHealthCheck( child_->PatchHttpHealthCheck(request)); } +StatusOr +HttpHealthChecksTracingConnection::PatchHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HttpHealthChecksTracingConnection::PatchHttpHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> HttpHealthChecksTracingConnection::UpdateHttpHealthCheck( google::cloud::cpp::compute::http_health_checks::v1:: @@ -107,6 +188,33 @@ HttpHealthChecksTracingConnection::UpdateHttpHealthCheck( child_->UpdateHttpHealthCheck(request)); } +StatusOr +HttpHealthChecksTracingConnection::UpdateHttpHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HttpHealthChecksTracingConnection::UpdateHttpHealthCheck( + google::cloud::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( + google::cloud::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..4f9a7f1a92dfc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request) override; + + future> + DeleteHttpHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request) override; + + future> + InsertHttpHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request) override; + + future> + PatchHttpHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request) override; + + future> + UpdateHttpHealthCheck( + google::cloud::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..9ccf6c26951a2 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + DeleteHttpHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHttpHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + InsertHttpHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHttpHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + PatchHttpHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHttpHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::http_health_checks::v1:: + UpdateHttpHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHttpHealthCheck, + (google::cloud::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_client.cc b/google/cloud/compute/https_health_checks/v1/https_health_checks_client.cc index 8ecf434392ca1..77c8d52a5e2e7 100644 --- a/google/cloud/compute/https_health_checks/v1/https_health_checks_client.cc +++ b/google/cloud/compute/https_health_checks/v1/https_health_checks_client.cc @@ -44,6 +44,20 @@ HttpsHealthChecksClient::DeleteHttpsHealthCheck( return connection_->DeleteHttpsHealthCheck(request); } +StatusOr +HttpsHealthChecksClient::DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& https_health_check, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest request; + request.set_project(project); + request.set_https_health_check(https_health_check); + return connection_->DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> HttpsHealthChecksClient::DeleteHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -53,6 +67,26 @@ HttpsHealthChecksClient::DeleteHttpsHealthCheck( return connection_->DeleteHttpsHealthCheck(request); } +StatusOr +HttpsHealthChecksClient::DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +HttpsHealthChecksClient::DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHttpsHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr HttpsHealthChecksClient::GetHttpsHealthCheck( std::string const& project, std::string const& https_health_check, @@ -88,6 +122,22 @@ HttpsHealthChecksClient::InsertHttpsHealthCheck( return connection_->InsertHttpsHealthCheck(request); } +StatusOr +HttpsHealthChecksClient::InsertHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::HttpsHealthCheck const& + https_health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest request; + request.set_project(project); + *request.mutable_https_health_check_resource() = https_health_check_resource; + return connection_->InsertHttpsHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> HttpsHealthChecksClient::InsertHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -97,6 +147,26 @@ HttpsHealthChecksClient::InsertHttpsHealthCheck( return connection_->InsertHttpsHealthCheck(request); } +StatusOr +HttpsHealthChecksClient::InsertHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHttpsHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +HttpsHealthChecksClient::InsertHttpsHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHttpsHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange HttpsHealthChecksClient::ListHttpsHealthChecks(std::string const& project, Options opts) { @@ -131,6 +201,23 @@ HttpsHealthChecksClient::PatchHttpsHealthCheck( return connection_->PatchHttpsHealthCheck(request); } +StatusOr +HttpsHealthChecksClient::PatchHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& https_health_check, + google::cloud::cpp::compute::v1::HttpsHealthCheck const& + https_health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest request; + request.set_project(project); + request.set_https_health_check(https_health_check); + *request.mutable_https_health_check_resource() = https_health_check_resource; + return connection_->PatchHttpsHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> HttpsHealthChecksClient::PatchHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -140,6 +227,26 @@ HttpsHealthChecksClient::PatchHttpsHealthCheck( return connection_->PatchHttpsHealthCheck(request); } +StatusOr +HttpsHealthChecksClient::PatchHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHttpsHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +HttpsHealthChecksClient::PatchHttpsHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHttpsHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + future> HttpsHealthChecksClient::UpdateHttpsHealthCheck( std::string const& project, std::string const& https_health_check, @@ -155,6 +262,23 @@ HttpsHealthChecksClient::UpdateHttpsHealthCheck( return connection_->UpdateHttpsHealthCheck(request); } +StatusOr +HttpsHealthChecksClient::UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& https_health_check, + google::cloud::cpp::compute::v1::HttpsHealthCheck const& + https_health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest request; + request.set_project(project); + request.set_https_health_check(https_health_check); + *request.mutable_https_health_check_resource() = https_health_check_resource; + return connection_->UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> HttpsHealthChecksClient::UpdateHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -164,6 +288,26 @@ HttpsHealthChecksClient::UpdateHttpsHealthCheck( return connection_->UpdateHttpsHealthCheck(request); } +StatusOr +HttpsHealthChecksClient::UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +HttpsHealthChecksClient::UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHttpsHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/https_health_checks/v1/https_health_checks_client.h index 9b6d21387f729..fc106749ce4c2 100644 --- a/google/cloud/compute/https_health_checks/v1/https_health_checks_client.h +++ b/google/cloud/compute/https_health_checks/v1/https_health_checks_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_HTTPS_HEALTH_CHECKS_V1_HTTPS_HEALTH_CHECKS_CLIENT_H #include "google/cloud/compute/https_health_checks/v1/https_health_checks_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -122,6 +124,11 @@ class HttpsHealthChecksClient { std::string const& https_health_check, Options opts = {}); + StatusOr DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& https_health_check, + Options opts = {}); + // clang-format off /// /// Deletes the specified HttpsHealthCheck resource. @@ -161,6 +168,18 @@ class HttpsHealthChecksClient { DeleteHttpsHealthCheckRequest const& request, Options opts = {}); + StatusOr DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request, + Options opts = {}); + + future> + DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified HttpsHealthCheck resource. @@ -260,6 +279,13 @@ class HttpsHealthChecksClient { https_health_check_resource, Options opts = {}); + StatusOr InsertHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::HttpsHealthCheck const& + https_health_check_resource, + Options opts = {}); + // clang-format off /// /// Creates a HttpsHealthCheck resource in the specified project using the data @@ -300,6 +326,18 @@ class HttpsHealthChecksClient { InsertHttpsHealthCheckRequest const& request, Options opts = {}); + StatusOr InsertHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request, + Options opts = {}); + + future> + InsertHttpsHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of HttpsHealthCheck resources available to the specified @@ -419,6 +457,13 @@ class HttpsHealthChecksClient { https_health_check_resource, Options opts = {}); + StatusOr PatchHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& https_health_check, + google::cloud::cpp::compute::v1::HttpsHealthCheck const& + https_health_check_resource, + Options opts = {}); + // clang-format off /// /// Updates a HttpsHealthCheck resource in the specified project using the data @@ -460,6 +505,18 @@ class HttpsHealthChecksClient { PatchHttpsHealthCheckRequest const& request, Options opts = {}); + StatusOr PatchHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request, + Options opts = {}); + + future> + PatchHttpsHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a HttpsHealthCheck resource in the specified project using the data @@ -499,6 +556,13 @@ class HttpsHealthChecksClient { https_health_check_resource, Options opts = {}); + StatusOr UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& https_health_check, + google::cloud::cpp::compute::v1::HttpsHealthCheck const& + https_health_check_resource, + Options opts = {}); + // clang-format off /// /// Updates a HttpsHealthCheck resource in the specified project using the data @@ -539,6 +603,18 @@ class HttpsHealthChecksClient { UpdateHttpsHealthCheckRequest const& request, Options opts = {}); + StatusOr UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request, + Options opts = {}); + + future> + UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..76e155f5a773c 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,33 @@ HttpsHealthChecksTracingConnection::DeleteHttpsHealthCheck( child_->DeleteHttpsHealthCheck(request)); } +StatusOr +HttpsHealthChecksTracingConnection::DeleteHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HttpsHealthChecksTracingConnection::DeleteHttpsHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr HttpsHealthChecksTracingConnection::GetHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -69,6 +96,33 @@ HttpsHealthChecksTracingConnection::InsertHttpsHealthCheck( child_->InsertHttpsHealthCheck(request)); } +StatusOr +HttpsHealthChecksTracingConnection::InsertHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HttpsHealthChecksTracingConnection::InsertHttpsHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange HttpsHealthChecksTracingConnection::ListHttpsHealthChecks( google::cloud::cpp::compute::https_health_checks::v1:: @@ -95,6 +149,33 @@ HttpsHealthChecksTracingConnection::PatchHttpsHealthCheck( child_->PatchHttpsHealthCheck(request)); } +StatusOr +HttpsHealthChecksTracingConnection::PatchHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HttpsHealthChecksTracingConnection::PatchHttpsHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> HttpsHealthChecksTracingConnection::UpdateHttpsHealthCheck( google::cloud::cpp::compute::https_health_checks::v1:: @@ -107,6 +188,33 @@ HttpsHealthChecksTracingConnection::UpdateHttpsHealthCheck( child_->UpdateHttpsHealthCheck(request)); } +StatusOr +HttpsHealthChecksTracingConnection::UpdateHttpsHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HttpsHealthChecksTracingConnection::UpdateHttpsHealthCheck( + google::cloud::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( + google::cloud::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..b2a1eea1e8e5f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request) override; + + future> + DeleteHttpsHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request) override; + + future> + InsertHttpsHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request) override; + + future> + PatchHttpsHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request) override; + + future> + UpdateHttpsHealthCheck( + google::cloud::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..771a270fe8f51 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + DeleteHttpsHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHttpsHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + InsertHttpsHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHttpsHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + PatchHttpsHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHttpsHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::https_health_checks::v1:: + UpdateHttpsHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHttpsHealthCheck, + (google::cloud::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_client.h b/google/cloud/compute/image_family_views/v1/image_family_views_client.h index 37a49c63e0d37..baf426f7e3f9c 100644 --- a/google/cloud/compute/image_family_views/v1/image_family_views_client.h +++ b/google/cloud/compute/image_family_views/v1/image_family_views_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_IMAGE_FAMILY_VIEWS_V1_IMAGE_FAMILY_VIEWS_CLIENT_H #include "google/cloud/compute/image_family_views/v1/image_family_views_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/compute/images/v1/images_client.cc index 874d8c9c7c0c0..f8f2ab79f79f7 100644 --- a/google/cloud/compute/images/v1/images_client.cc +++ b/google/cloud/compute/images/v1/images_client.cc @@ -42,6 +42,17 @@ ImagesClient::DeleteImage(std::string const& project, std::string const& image, return connection_->DeleteImage(request); } +StatusOr ImagesClient::DeleteImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& image, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::images::v1::DeleteImageRequest request; + request.set_project(project); + request.set_image(image); + return connection_->DeleteImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ImagesClient::DeleteImage( google::cloud::cpp::compute::images::v1::DeleteImageRequest const& request, @@ -50,6 +61,23 @@ ImagesClient::DeleteImage( return connection_->DeleteImage(request); } +StatusOr ImagesClient::DeleteImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ImagesClient::DeleteImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteImage(google::cloud::ExperimentalTag{}, operation); +} + future> ImagesClient::Deprecate( std::string const& project, std::string const& image, @@ -64,6 +92,21 @@ ImagesClient::Deprecate( return connection_->Deprecate(request); } +StatusOr ImagesClient::Deprecate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& image, + google::cloud::cpp::compute::v1::DeprecationStatus const& + deprecation_status_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::images::v1::DeprecateRequest request; + request.set_project(project); + request.set_image(image); + *request.mutable_deprecation_status_resource() = deprecation_status_resource; + return connection_->Deprecate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ImagesClient::Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const& request, @@ -72,6 +115,23 @@ ImagesClient::Deprecate( return connection_->Deprecate(request); } +StatusOr ImagesClient::Deprecate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Deprecate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ImagesClient::Deprecate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Deprecate(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ImagesClient::GetImage( std::string const& project, std::string const& image, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -133,6 +193,19 @@ ImagesClient::InsertImage( return connection_->InsertImage(request); } +StatusOr ImagesClient::InsertImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Image const& image_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::images::v1::InsertImageRequest request; + request.set_project(project); + *request.mutable_image_resource() = image_resource; + return connection_->InsertImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ImagesClient::InsertImage( google::cloud::cpp::compute::images::v1::InsertImageRequest const& request, @@ -141,6 +214,23 @@ ImagesClient::InsertImage( return connection_->InsertImage(request); } +StatusOr ImagesClient::InsertImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ImagesClient::InsertImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertImage(google::cloud::ExperimentalTag{}, operation); +} + StreamRange ImagesClient::ListImages( std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -169,6 +259,20 @@ ImagesClient::PatchImage( return connection_->PatchImage(request); } +StatusOr ImagesClient::PatchImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& image, + google::cloud::cpp::compute::v1::Image const& image_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::images::v1::PatchImageRequest request; + request.set_project(project); + request.set_image(image); + *request.mutable_image_resource() = image_resource; + return connection_->PatchImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ImagesClient::PatchImage( google::cloud::cpp::compute::images::v1::PatchImageRequest const& request, @@ -177,6 +281,23 @@ ImagesClient::PatchImage( return connection_->PatchImage(request); } +StatusOr ImagesClient::PatchImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ImagesClient::PatchImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchImage(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ImagesClient::SetIamPolicy( std::string const& project, std::string const& resource, google::cloud::cpp::compute::v1::GlobalSetPolicyRequest const& @@ -213,6 +334,22 @@ ImagesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr ImagesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::images::v1::SetLabelsRequest request; + request.set_project(project); + request.set_resource(resource); + *request.mutable_global_set_labels_request_resource() = + global_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ImagesClient::SetLabels( google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request, @@ -221,6 +358,23 @@ ImagesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr ImagesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ImagesClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ImagesClient::TestIamPermissions( std::string const& project, std::string const& resource, diff --git a/google/cloud/compute/images/v1/images_client.h b/google/cloud/compute/images/v1/images_client.h index adaf10de101d6..683831a5d4740 100644 --- a/google/cloud/compute/images/v1/images_client.h +++ b/google/cloud/compute/images/v1/images_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_IMAGES_V1_IMAGES_CLIENT_H #include "google/cloud/compute/images/v1/images_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -118,6 +120,10 @@ class ImagesClient { future> DeleteImage( std::string const& project, std::string const& image, Options opts = {}); + StatusOr DeleteImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& image, Options opts = {}); + // clang-format off /// /// Deletes the specified image. @@ -157,6 +163,17 @@ class ImagesClient { request, Options opts = {}); + StatusOr DeleteImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request, + Options opts = {}); + + future> DeleteImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the deprecation status of an image. If an empty request body is given, @@ -195,6 +212,13 @@ class ImagesClient { deprecation_status_resource, Options opts = {}); + StatusOr Deprecate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& image, + google::cloud::cpp::compute::v1::DeprecationStatus const& + deprecation_status_resource, + Options opts = {}); + // clang-format off /// /// Sets the deprecation status of an image. If an empty request body is given, @@ -234,6 +258,16 @@ class ImagesClient { google::cloud::cpp::compute::images::v1::DeprecateRequest const& request, Options opts = {}); + StatusOr Deprecate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& request, + Options opts = {}); + + future> Deprecate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified image. @@ -457,6 +491,12 @@ class ImagesClient { google::cloud::cpp::compute::v1::Image const& image_resource, Options opts = {}); + StatusOr InsertImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Image const& image_resource, + Options opts = {}); + // clang-format off /// /// Creates an image in the specified project using the data included in the @@ -497,6 +537,17 @@ class ImagesClient { request, Options opts = {}); + StatusOr InsertImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request, + Options opts = {}); + + future> InsertImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of custom images available to the specified project. @@ -620,6 +671,12 @@ class ImagesClient { google::cloud::cpp::compute::v1::Image const& image_resource, Options opts = {}); + StatusOr PatchImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& image, + google::cloud::cpp::compute::v1::Image const& image_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified image with the data included in the request. Only the @@ -659,6 +716,16 @@ class ImagesClient { google::cloud::cpp::compute::images::v1::PatchImageRequest const& request, Options opts = {}); + StatusOr PatchImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& request, + Options opts = {}); + + future> PatchImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -763,6 +830,13 @@ class ImagesClient { global_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on an image. To learn more about labels, read the Labeling @@ -802,6 +876,16 @@ class ImagesClient { google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. 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..0d649f70cf3eb 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,31 @@ ImagesTracingConnection::DeleteImage( return internal::EndSpan(std::move(span), child_->DeleteImage(request)); } +StatusOr +ImagesTracingConnection::DeleteImage( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::DeleteImage( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ImagesTracingConnection::Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) { @@ -52,6 +77,30 @@ ImagesTracingConnection::Deprecate( return internal::EndSpan(std::move(span), child_->Deprecate(request)); } +StatusOr +ImagesTracingConnection::Deprecate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::Deprecate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ImagesTracingConnection::GetImage( google::cloud::cpp::compute::images::v1::GetImageRequest const& request) { @@ -91,6 +140,31 @@ ImagesTracingConnection::InsertImage( return internal::EndSpan(std::move(span), child_->InsertImage(request)); } +StatusOr +ImagesTracingConnection::InsertImage( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::InsertImage( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ImagesTracingConnection::ListImages( google::cloud::cpp::compute::images::v1::ListImagesRequest request) { @@ -111,6 +185,30 @@ ImagesTracingConnection::PatchImage( return internal::EndSpan(std::move(span), child_->PatchImage(request)); } +StatusOr +ImagesTracingConnection::PatchImage( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::PatchImage( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ImagesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::images::v1::SetIamPolicyRequest const& @@ -130,6 +228,30 @@ ImagesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +ImagesTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ImagesTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..1a4d039b88cbc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request) override; + + future> DeleteImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Deprecate( google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) override; + StatusOr Deprecate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& request) + override; + + future> Deprecate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request) override; + + future> InsertImage( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& request) + override; + + future> PatchImage( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& request) + override; + + future> SetLabels( + google::cloud::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..9f61ebd4455f1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeleteImageRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteImage, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::DeprecateRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Deprecate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::InsertImageRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertImage, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::PatchImageRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchImage, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::images::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.cc b/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_client.cc index a867ccf83d530..c5910b33c7753 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_client.cc +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_client.cc @@ -52,6 +52,23 @@ InstanceGroupManagerResizeRequestsClient::Cancel( return connection_->Cancel(request); } +StatusOr +InstanceGroupManagerResizeRequestsClient::Cancel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + std::string const& resize_request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + request.set_resize_request(resize_request); + return connection_->Cancel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagerResizeRequestsClient::Cancel( google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: @@ -61,6 +78,25 @@ InstanceGroupManagerResizeRequestsClient::Cancel( return connection_->Cancel(request); } +StatusOr +InstanceGroupManagerResizeRequestsClient::Cancel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Cancel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagerResizeRequestsClient::Cancel( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Cancel(google::cloud::ExperimentalTag{}, operation); +} + future> InstanceGroupManagerResizeRequestsClient:: DeleteInstanceGroupManagerResizeRequest( @@ -77,6 +113,24 @@ InstanceGroupManagerResizeRequestsClient:: return connection_->DeleteInstanceGroupManagerResizeRequest(request); } +StatusOr +InstanceGroupManagerResizeRequestsClient:: + DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + std::string const& resize_request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + DeleteInstanceGroupManagerResizeRequestRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + request.set_resize_request(resize_request); + return connection_->DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagerResizeRequestsClient:: DeleteInstanceGroupManagerResizeRequest( @@ -87,6 +141,29 @@ InstanceGroupManagerResizeRequestsClient:: return connection_->DeleteInstanceGroupManagerResizeRequest(request); } +StatusOr +InstanceGroupManagerResizeRequestsClient:: + DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::DeleteInstanceGroupManagerResizeRequestRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagerResizeRequestsClient:: + DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr InstanceGroupManagerResizeRequestsClient::GetInstanceGroupManagerResizeRequest( std::string const& project, std::string const& zone, @@ -131,6 +208,28 @@ InstanceGroupManagerResizeRequestsClient:: return connection_->InsertInstanceGroupManagerResizeRequest(request); } +StatusOr +InstanceGroupManagerResizeRequestsClient:: + InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagerResizeRequest const& + instance_group_manager_resize_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + InsertInstanceGroupManagerResizeRequestRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request.mutable_instance_group_manager_resize_request_resource() = + instance_group_manager_resize_request_resource; + return connection_->InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagerResizeRequestsClient:: InsertInstanceGroupManagerResizeRequest( @@ -141,6 +240,29 @@ InstanceGroupManagerResizeRequestsClient:: return connection_->InsertInstanceGroupManagerResizeRequest(request); } +StatusOr +InstanceGroupManagerResizeRequestsClient:: + InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests:: + v1::InsertInstanceGroupManagerResizeRequestRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagerResizeRequestsClient:: + InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange InstanceGroupManagerResizeRequestsClient:: ListInstanceGroupManagerResizeRequests( diff --git a/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_client.h b/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_client.h index 04441d64947af..c3176281a2b98 100644 --- a/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_client.h +++ b/google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANCE_GROUP_MANAGER_RESIZE_REQUESTS_V1_INSTANCE_GROUP_MANAGER_RESIZE_REQUESTS_CLIENT_H #include "google/cloud/compute/instance_group_manager_resize_requests/v1/instance_group_manager_resize_requests_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -135,6 +137,12 @@ class InstanceGroupManagerResizeRequestsClient { std::string const& instance_group_manager, std::string const& resize_request, Options opts = {}); + StatusOr Cancel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + std::string const& resize_request, Options opts = {}); + // clang-format off /// /// Cancels the specified resize request and removes it from the queue. @@ -177,6 +185,17 @@ class InstanceGroupManagerResizeRequestsClient { CancelRequest const& request, Options opts = {}); + StatusOr Cancel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request, + Options opts = {}); + + future> Cancel( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified, inactive resize request. Requests that are still @@ -220,6 +239,13 @@ class InstanceGroupManagerResizeRequestsClient { std::string const& instance_group_manager, std::string const& resize_request, Options opts = {}); + StatusOr + DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + std::string const& resize_request, Options opts = {}); + // clang-format off /// /// Deletes the specified, inactive resize request. Requests that are still @@ -262,6 +288,19 @@ class InstanceGroupManagerResizeRequestsClient { DeleteInstanceGroupManagerResizeRequestRequest const& request, Options opts = {}); + StatusOr + DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + DeleteInstanceGroupManagerResizeRequestRequest const& request, + Options opts = {}); + + future> + DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns all of the details about the specified resize request. @@ -374,6 +413,15 @@ class InstanceGroupManagerResizeRequestsClient { instance_group_manager_resize_request_resource, Options opts = {}); + StatusOr + InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1::InstanceGroupManagerResizeRequest const& + instance_group_manager_resize_request_resource, + Options opts = {}); + // clang-format off /// /// Creates a new resize request that starts provisioning VMs immediately or @@ -415,6 +463,19 @@ class InstanceGroupManagerResizeRequestsClient { InsertInstanceGroupManagerResizeRequestRequest const& request, Options opts = {}); + StatusOr + InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + InsertInstanceGroupManagerResizeRequestRequest const& request, + Options opts = {}); + + future> + InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of resize requests that are contained in the managed 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..3732a250788ab 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,33 @@ InstanceGroupManagerResizeRequestsTracingConnection::Cancel( return internal::EndSpan(std::move(span), child_->Cancel(request)); } +StatusOr +InstanceGroupManagerResizeRequestsTracingConnection::Cancel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagerResizeRequestsTracingConnection::Cancel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagerResizeRequestsTracingConnection:: DeleteInstanceGroupManagerResizeRequest( @@ -63,6 +90,38 @@ InstanceGroupManagerResizeRequestsTracingConnection:: child_->DeleteInstanceGroupManagerResizeRequest(request)); } +StatusOr +InstanceGroupManagerResizeRequestsTracingConnection:: + DeleteInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagerResizeRequestsTracingConnection:: + DeleteInstanceGroupManagerResizeRequest( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InstanceGroupManagerResizeRequestsTracingConnection:: GetInstanceGroupManagerResizeRequest( @@ -92,6 +151,38 @@ InstanceGroupManagerResizeRequestsTracingConnection:: child_->InsertInstanceGroupManagerResizeRequest(request)); } +StatusOr +InstanceGroupManagerResizeRequestsTracingConnection:: + InsertInstanceGroupManagerResizeRequest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, + request)); +} + +future> +InstanceGroupManagerResizeRequestsTracingConnection:: + InsertInstanceGroupManagerResizeRequest( + google::cloud::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( + google::cloud::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..5be18e2705390 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request) override; + + future> Cancel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + DeleteInstanceGroupManagerResizeRequestRequest const& request) + override; + + future> + DeleteInstanceGroupManagerResizeRequest( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + InsertInstanceGroupManagerResizeRequestRequest const& request) + override; + + future> + InsertInstanceGroupManagerResizeRequest( + google::cloud::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..92ae02b91ebb8 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + CancelRequest const& request), + (override)); + + MOCK_METHOD(future>, + Cancel, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + DeleteInstanceGroupManagerResizeRequestRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceGroupManagerResizeRequest, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_manager_resize_requests::v1:: + InsertInstanceGroupManagerResizeRequestRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceGroupManagerResizeRequest, + (google::cloud::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_client.cc b/google/cloud/compute/instance_group_managers/v1/instance_group_managers_client.cc index 4e195ad58be74..06d4acfa4cd64 100644 --- a/google/cloud/compute/instance_group_managers/v1/instance_group_managers_client.cc +++ b/google/cloud/compute/instance_group_managers/v1/instance_group_managers_client.cc @@ -53,6 +53,28 @@ InstanceGroupManagersClient::AbandonInstances( return connection_->AbandonInstances(request); } +StatusOr +InstanceGroupManagersClient::AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersAbandonInstancesRequest const& + instance_group_managers_abandon_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_instance_group_managers_abandon_instances_request_resource() = + instance_group_managers_abandon_instances_request_resource; + return connection_->AbandonInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::AbandonInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -62,6 +84,26 @@ InstanceGroupManagersClient::AbandonInstances( return connection_->AbandonInstances(request); } +StatusOr +InstanceGroupManagersClient::AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AbandonInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::AbandonInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AbandonInstances(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange< std::pair> @@ -104,6 +146,27 @@ InstanceGroupManagersClient::ApplyUpdatesToInstances( return connection_->ApplyUpdatesToInstances(request); } +StatusOr +InstanceGroupManagersClient::ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersApplyUpdatesRequest const& + instance_group_managers_apply_updates_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request.mutable_instance_group_managers_apply_updates_request_resource() = + instance_group_managers_apply_updates_request_resource; + return connection_->ApplyUpdatesToInstances( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::ApplyUpdatesToInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -113,6 +176,26 @@ InstanceGroupManagersClient::ApplyUpdatesToInstances( return connection_->ApplyUpdatesToInstances(request); } +StatusOr +InstanceGroupManagersClient::ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApplyUpdatesToInstances( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApplyUpdatesToInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceGroupManagersClient::CreateInstances( std::string const& project, std::string const& zone, @@ -132,6 +215,27 @@ InstanceGroupManagersClient::CreateInstances( return connection_->CreateInstances(request); } +StatusOr +InstanceGroupManagersClient::CreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersCreateInstancesRequest const& + instance_group_managers_create_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request.mutable_instance_group_managers_create_instances_request_resource() = + instance_group_managers_create_instances_request_resource; + return connection_->CreateInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::CreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -141,6 +245,26 @@ InstanceGroupManagersClient::CreateInstances( return connection_->CreateInstances(request); } +StatusOr +InstanceGroupManagersClient::CreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::CreateInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceGroupManagersClient::DeleteInstanceGroupManager( std::string const& project, std::string const& zone, @@ -154,6 +278,21 @@ InstanceGroupManagersClient::DeleteInstanceGroupManager( return connection_->DeleteInstanceGroupManager(request); } +StatusOr +InstanceGroupManagersClient::DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + return connection_->DeleteInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::DeleteInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -163,6 +302,26 @@ InstanceGroupManagersClient::DeleteInstanceGroupManager( return connection_->DeleteInstanceGroupManager(request); } +StatusOr +InstanceGroupManagersClient::DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceGroupManager( + google::cloud::ExperimentalTag{}, operation); +} + future> InstanceGroupManagersClient::DeleteInstances( std::string const& project, std::string const& zone, @@ -182,6 +341,27 @@ InstanceGroupManagersClient::DeleteInstances( return connection_->DeleteInstances(request); } +StatusOr +InstanceGroupManagersClient::DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersDeleteInstancesRequest const& + instance_group_managers_delete_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request.mutable_instance_group_managers_delete_instances_request_resource() = + instance_group_managers_delete_instances_request_resource; + return connection_->DeleteInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::DeleteInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -191,6 +371,26 @@ InstanceGroupManagersClient::DeleteInstances( return connection_->DeleteInstances(request); } +StatusOr +InstanceGroupManagersClient::DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::DeleteInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceGroupManagersClient::DeletePerInstanceConfigs( std::string const& project, std::string const& zone, @@ -211,6 +411,28 @@ InstanceGroupManagersClient::DeletePerInstanceConfigs( return connection_->DeletePerInstanceConfigs(request); } +StatusOr +InstanceGroupManagersClient::DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersDeletePerInstanceConfigsReq const& + instance_group_managers_delete_per_instance_configs_req_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_instance_group_managers_delete_per_instance_configs_req_resource() = + instance_group_managers_delete_per_instance_configs_req_resource; + return connection_->DeletePerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::DeletePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -220,6 +442,26 @@ InstanceGroupManagersClient::DeletePerInstanceConfigs( return connection_->DeletePerInstanceConfigs(request); } +StatusOr +InstanceGroupManagersClient::DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePerInstanceConfigs(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr InstanceGroupManagersClient::GetInstanceGroupManager( std::string const& project, std::string const& zone, @@ -258,6 +500,24 @@ InstanceGroupManagersClient::InsertInstanceGroupManager( return connection_->InsertInstanceGroupManager(request); } +StatusOr +InstanceGroupManagersClient::InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::InstanceGroupManager const& + instance_group_manager_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_instance_group_manager_resource() = + instance_group_manager_resource; + return connection_->InsertInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::InsertInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -267,6 +527,26 @@ InstanceGroupManagersClient::InsertInstanceGroupManager( return connection_->InsertInstanceGroupManager(request); } +StatusOr +InstanceGroupManagersClient::InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::InsertInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceGroupManager( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange InstanceGroupManagersClient::ListInstanceGroupManagers( std::string const& project, std::string const& zone, Options opts) { @@ -373,6 +653,26 @@ InstanceGroupManagersClient::PatchInstanceGroupManager( return connection_->PatchInstanceGroupManager(request); } +StatusOr +InstanceGroupManagersClient::PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1::InstanceGroupManager const& + instance_group_manager_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request.mutable_instance_group_manager_resource() = + instance_group_manager_resource; + return connection_->PatchInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::PatchInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -382,6 +682,26 @@ InstanceGroupManagersClient::PatchInstanceGroupManager( return connection_->PatchInstanceGroupManager(request); } +StatusOr +InstanceGroupManagersClient::PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::PatchInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInstanceGroupManager( + google::cloud::ExperimentalTag{}, operation); +} + future> InstanceGroupManagersClient::PatchPerInstanceConfigs( std::string const& project, std::string const& zone, @@ -402,6 +722,28 @@ InstanceGroupManagersClient::PatchPerInstanceConfigs( return connection_->PatchPerInstanceConfigs(request); } +StatusOr +InstanceGroupManagersClient::PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersPatchPerInstanceConfigsReq const& + instance_group_managers_patch_per_instance_configs_req_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_instance_group_managers_patch_per_instance_configs_req_resource() = + instance_group_managers_patch_per_instance_configs_req_resource; + return connection_->PatchPerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::PatchPerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -411,6 +753,26 @@ InstanceGroupManagersClient::PatchPerInstanceConfigs( return connection_->PatchPerInstanceConfigs(request); } +StatusOr +InstanceGroupManagersClient::PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPerInstanceConfigs(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceGroupManagersClient::RecreateInstances( std::string const& project, std::string const& zone, @@ -431,6 +793,28 @@ InstanceGroupManagersClient::RecreateInstances( return connection_->RecreateInstances(request); } +StatusOr +InstanceGroupManagersClient::RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersRecreateInstancesRequest const& + instance_group_managers_recreate_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_instance_group_managers_recreate_instances_request_resource() = + instance_group_managers_recreate_instances_request_resource; + return connection_->RecreateInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::RecreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -440,6 +824,26 @@ InstanceGroupManagersClient::RecreateInstances( return connection_->RecreateInstances(request); } +StatusOr +InstanceGroupManagersClient::RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RecreateInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::RecreateInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RecreateInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceGroupManagersClient::Resize(std::string const& project, std::string const& zone, @@ -455,6 +859,24 @@ InstanceGroupManagersClient::Resize(std::string const& project, return connection_->Resize(request); } +StatusOr +InstanceGroupManagersClient::Resize(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& instance_group_manager, + std::int32_t size, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1::ResizeRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + request.set_size(size); + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::Resize( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -464,6 +886,25 @@ InstanceGroupManagersClient::Resize( return connection_->Resize(request); } +StatusOr +InstanceGroupManagersClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, operation); +} + future> InstanceGroupManagersClient::SetInstanceTemplate( std::string const& project, std::string const& zone, @@ -484,6 +925,28 @@ InstanceGroupManagersClient::SetInstanceTemplate( return connection_->SetInstanceTemplate(request); } +StatusOr +InstanceGroupManagersClient::SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersSetInstanceTemplateRequest const& + instance_group_managers_set_instance_template_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_instance_group_managers_set_instance_template_request_resource() = + instance_group_managers_set_instance_template_request_resource; + return connection_->SetInstanceTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::SetInstanceTemplate( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -493,6 +956,26 @@ InstanceGroupManagersClient::SetInstanceTemplate( return connection_->SetInstanceTemplate(request); } +StatusOr +InstanceGroupManagersClient::SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::SetInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceTemplate(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceGroupManagersClient::SetTargetPools( std::string const& project, std::string const& zone, @@ -512,6 +995,27 @@ InstanceGroupManagersClient::SetTargetPools( return connection_->SetTargetPools(request); } +StatusOr +InstanceGroupManagersClient::SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersSetTargetPoolsRequest const& + instance_group_managers_set_target_pools_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request.mutable_instance_group_managers_set_target_pools_request_resource() = + instance_group_managers_set_target_pools_request_resource; + return connection_->SetTargetPools(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::SetTargetPools( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -521,6 +1025,26 @@ InstanceGroupManagersClient::SetTargetPools( return connection_->SetTargetPools(request); } +StatusOr +InstanceGroupManagersClient::SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTargetPools(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::SetTargetPools( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTargetPools(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceGroupManagersClient::UpdatePerInstanceConfigs( std::string const& project, std::string const& zone, @@ -541,6 +1065,28 @@ InstanceGroupManagersClient::UpdatePerInstanceConfigs( return connection_->UpdatePerInstanceConfigs(request); } +StatusOr +InstanceGroupManagersClient::UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersUpdatePerInstanceConfigsReq const& + instance_group_managers_update_per_instance_configs_req_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_instance_group_managers_update_per_instance_configs_req_resource() = + instance_group_managers_update_per_instance_configs_req_resource; + return connection_->UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupManagersClient::UpdatePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -550,6 +1096,26 @@ InstanceGroupManagersClient::UpdatePerInstanceConfigs( return connection_->UpdatePerInstanceConfigs(request); } +StatusOr +InstanceGroupManagersClient::UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupManagersClient::UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePerInstanceConfigs(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instance_group_managers_v1 } // namespace cloud diff --git a/google/cloud/compute/instance_group_managers/v1/instance_group_managers_client.h b/google/cloud/compute/instance_group_managers/v1/instance_group_managers_client.h index b10b14af7fadb..9c3d32feb11f1 100644 --- a/google/cloud/compute/instance_group_managers/v1/instance_group_managers_client.h +++ b/google/cloud/compute/instance_group_managers/v1/instance_group_managers_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANCE_GROUP_MANAGERS_V1_INSTANCE_GROUP_MANAGERS_CLIENT_H #include "google/cloud/compute/instance_group_managers/v1/instance_group_managers_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -142,6 +144,15 @@ class InstanceGroupManagersClient { instance_group_managers_abandon_instances_request_resource, Options opts = {}); + StatusOr AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersAbandonInstancesRequest const& + instance_group_managers_abandon_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Flags the specified instances to be removed from the managed instance @@ -192,6 +203,17 @@ class InstanceGroupManagersClient { AbandonInstancesRequest const& request, Options opts = {}); + StatusOr AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request, + Options opts = {}); + + future> AbandonInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of managed instance groups and groups them by zone. To @@ -320,6 +342,15 @@ class InstanceGroupManagersClient { instance_group_managers_apply_updates_request_resource, Options opts = {}); + StatusOr ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersApplyUpdatesRequest const& + instance_group_managers_apply_updates_request_resource, + Options opts = {}); + // clang-format off /// /// Applies changes to selected instances on the managed instance group. This @@ -360,6 +391,18 @@ class InstanceGroupManagersClient { v1::ApplyUpdatesToInstancesRequest const& request, Options opts = {}); + StatusOr ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request, + Options opts = {}); + + future> + ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates instances with per-instance configurations in this managed instance @@ -406,6 +449,15 @@ class InstanceGroupManagersClient { instance_group_managers_create_instances_request_resource, Options opts = {}); + StatusOr CreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersCreateInstancesRequest const& + instance_group_managers_create_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Creates instances with per-instance configurations in this managed instance @@ -450,6 +502,17 @@ class InstanceGroupManagersClient { CreateInstancesRequest const& request, Options opts = {}); + StatusOr CreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request, + Options opts = {}); + + future> CreateInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified managed instance group and all of the instances in @@ -489,6 +552,14 @@ class InstanceGroupManagersClient { std::string const& instance_group_manager, Options opts = {}); + StatusOr + DeleteInstanceGroupManager(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& instance_group_manager, + Options opts = {}); + // clang-format off /// /// Deletes the specified managed instance group and all of the instances in @@ -531,6 +602,19 @@ class InstanceGroupManagersClient { DeleteInstanceGroupManagerRequest const& request, Options opts = {}); + StatusOr + DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request, + Options opts = {}); + + future> + DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Flags the specified instances in the managed instance group for immediate @@ -581,6 +665,15 @@ class InstanceGroupManagersClient { instance_group_managers_delete_instances_request_resource, Options opts = {}); + StatusOr DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersDeleteInstancesRequest const& + instance_group_managers_delete_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Flags the specified instances in the managed instance group for immediate @@ -630,6 +723,17 @@ class InstanceGroupManagersClient { DeleteInstancesRequest const& request, Options opts = {}); + StatusOr DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request, + Options opts = {}); + + future> DeleteInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes selected per-instance configurations for the managed instance @@ -673,6 +777,15 @@ class InstanceGroupManagersClient { instance_group_managers_delete_per_instance_configs_req_resource, Options opts = {}); + StatusOr DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersDeletePerInstanceConfigsReq const& + instance_group_managers_delete_per_instance_configs_req_resource, + Options opts = {}); + // clang-format off /// /// Deletes selected per-instance configurations for the managed instance @@ -714,6 +827,18 @@ class InstanceGroupManagersClient { DeletePerInstanceConfigsRequest const& request, Options opts = {}); + StatusOr DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request, + Options opts = {}); + + future> + DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns all of the details about the specified managed instance group. @@ -822,6 +947,14 @@ class InstanceGroupManagersClient { instance_group_manager_resource, Options opts = {}); + StatusOr + InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::InstanceGroupManager const& + instance_group_manager_resource, + Options opts = {}); + // clang-format off /// /// Creates a managed instance group using the information that you specify in @@ -869,6 +1002,19 @@ class InstanceGroupManagersClient { InsertInstanceGroupManagerRequest const& request, Options opts = {}); + StatusOr + InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request, + Options opts = {}); + + future> + InsertInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of managed instance groups that are contained within the @@ -1248,6 +1394,15 @@ class InstanceGroupManagersClient { instance_group_manager_resource, Options opts = {}); + StatusOr + PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1::InstanceGroupManager const& + instance_group_manager_resource, + Options opts = {}); + // clang-format off /// /// Updates a managed instance group using the information that you specify in @@ -1297,6 +1452,19 @@ class InstanceGroupManagersClient { PatchInstanceGroupManagerRequest const& request, Options opts = {}); + StatusOr + PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request, + Options opts = {}); + + future> + PatchInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Inserts or patches per-instance configurations for the managed instance @@ -1341,6 +1509,15 @@ class InstanceGroupManagersClient { instance_group_managers_patch_per_instance_configs_req_resource, Options opts = {}); + StatusOr PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersPatchPerInstanceConfigsReq const& + instance_group_managers_patch_per_instance_configs_req_resource, + Options opts = {}); + // clang-format off /// /// Inserts or patches per-instance configurations for the managed instance @@ -1382,6 +1559,18 @@ class InstanceGroupManagersClient { v1::PatchPerInstanceConfigsRequest const& request, Options opts = {}); + StatusOr PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request, + Options opts = {}); + + future> + PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Flags the specified VM instances in the managed instance group to be @@ -1432,6 +1621,15 @@ class InstanceGroupManagersClient { instance_group_managers_recreate_instances_request_resource, Options opts = {}); + StatusOr RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersRecreateInstancesRequest const& + instance_group_managers_recreate_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Flags the specified VM instances in the managed instance group to be @@ -1480,6 +1678,17 @@ class InstanceGroupManagersClient { RecreateInstancesRequest const& request, Options opts = {}); + StatusOr RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request, + Options opts = {}); + + future> + RecreateInstances(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resizes the managed instance group. If you increase the size, the group @@ -1533,6 +1742,12 @@ class InstanceGroupManagersClient { std::string const& instance_group_manager, std::int32_t size, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, std::int32_t size, + Options opts = {}); + // clang-format off /// /// Resizes the managed instance group. If you increase the size, the group @@ -1586,6 +1801,17 @@ class InstanceGroupManagersClient { ResizeRequest const& request, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request, + Options opts = {}); + + future> Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Specifies the instance template to use when creating new instances in this @@ -1630,6 +1856,15 @@ class InstanceGroupManagersClient { instance_group_managers_set_instance_template_request_resource, Options opts = {}); + StatusOr SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersSetInstanceTemplateRequest const& + instance_group_managers_set_instance_template_request_resource, + Options opts = {}); + // clang-format off /// /// Specifies the instance template to use when creating new instances in this @@ -1672,6 +1907,18 @@ class InstanceGroupManagersClient { SetInstanceTemplateRequest const& request, Options opts = {}); + StatusOr SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request, + Options opts = {}); + + future> + SetInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Modifies the target pools to which all instances in this managed instance @@ -1717,6 +1964,15 @@ class InstanceGroupManagersClient { instance_group_managers_set_target_pools_request_resource, Options opts = {}); + StatusOr SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersSetTargetPoolsRequest const& + instance_group_managers_set_target_pools_request_resource, + Options opts = {}); + // clang-format off /// /// Modifies the target pools to which all instances in this managed instance @@ -1761,6 +2017,17 @@ class InstanceGroupManagersClient { SetTargetPoolsRequest const& request, Options opts = {}); + StatusOr SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request, + Options opts = {}); + + future> SetTargetPools( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Inserts or updates per-instance configurations for the managed instance @@ -1805,6 +2072,15 @@ class InstanceGroupManagersClient { instance_group_managers_update_per_instance_configs_req_resource, Options opts = {}); + StatusOr UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + InstanceGroupManagersUpdatePerInstanceConfigsReq const& + instance_group_managers_update_per_instance_configs_req_resource, + Options opts = {}); + // clang-format off /// /// Inserts or updates per-instance configurations for the managed instance @@ -1847,6 +2123,18 @@ class InstanceGroupManagersClient { UpdatePerInstanceConfigsRequest const& request, Options opts = {}); + StatusOr UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request, + Options opts = {}); + + future> + UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..a0f22297696f5 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,33 @@ InstanceGroupManagersTracingConnection::AbandonInstances( return internal::EndSpan(std::move(span), child_->AbandonInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::AbandonInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange< std::pair> @@ -76,6 +103,33 @@ InstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( child_->ApplyUpdatesToInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::CreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -87,6 +141,33 @@ InstanceGroupManagersTracingConnection::CreateInstances( return internal::EndSpan(std::move(span), child_->CreateInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::CreateInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::CreateInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -99,6 +180,33 @@ InstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( child_->DeleteInstanceGroupManager(request)); } +StatusOr +InstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::DeleteInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -110,6 +218,33 @@ InstanceGroupManagersTracingConnection::DeleteInstances( return internal::EndSpan(std::move(span), child_->DeleteInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::DeleteInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -122,6 +257,33 @@ InstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( child_->DeletePerInstanceConfigs(request)); } +StatusOr +InstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InstanceGroupManagersTracingConnection::GetInstanceGroupManager( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -145,6 +307,33 @@ InstanceGroupManagersTracingConnection::InsertInstanceGroupManager( child_->InsertInstanceGroupManager(request)); } +StatusOr +InstanceGroupManagersTracingConnection::InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::InsertInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange InstanceGroupManagersTracingConnection::ListInstanceGroupManagers( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -211,6 +400,33 @@ InstanceGroupManagersTracingConnection::PatchInstanceGroupManager( child_->PatchInstanceGroupManager(request)); } +StatusOr +InstanceGroupManagersTracingConnection::PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::PatchInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -223,6 +439,33 @@ InstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( child_->PatchPerInstanceConfigs(request)); } +StatusOr +InstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::RecreateInstances( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -234,6 +477,33 @@ InstanceGroupManagersTracingConnection::RecreateInstances( return internal::EndSpan(std::move(span), child_->RecreateInstances(request)); } +StatusOr +InstanceGroupManagersTracingConnection::RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::RecreateInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::Resize( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -245,6 +515,33 @@ InstanceGroupManagersTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +InstanceGroupManagersTracingConnection::Resize( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::Resize( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::SetInstanceTemplate( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -257,6 +554,33 @@ InstanceGroupManagersTracingConnection::SetInstanceTemplate( child_->SetInstanceTemplate(request)); } +StatusOr +InstanceGroupManagersTracingConnection::SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::SetInstanceTemplate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::SetTargetPools( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -268,6 +592,33 @@ InstanceGroupManagersTracingConnection::SetTargetPools( return internal::EndSpan(std::move(span), child_->SetTargetPools(request)); } +StatusOr +InstanceGroupManagersTracingConnection::SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::SetTargetPools( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( google::cloud::cpp::compute::instance_group_managers::v1:: @@ -280,6 +631,33 @@ InstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( child_->UpdatePerInstanceConfigs(request)); } +StatusOr +InstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( + google::cloud::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( + google::cloud::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..5159eed1c18cc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request) override; + + future> AbandonInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) override; + + future> + ApplyUpdatesToInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request) override; + + future> CreateInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) override; + + future> + DeleteInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request) override; + + future> DeleteInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) override; + + future> + DeletePerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) override; + + future> + InsertInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) override; + + future> + PatchInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) override; + + future> + PatchPerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request) override; + + future> + RecreateInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request) override; + + future> Resize( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) override; + + future> + SetInstanceTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request) override; + + future> SetTargetPools( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) override; + + future> + UpdatePerInstanceConfigs( + google::cloud::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..feb18eff550b4 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + AbandonInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AbandonInstances, + (google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange, + ApplyUpdatesToInstances, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + ApplyUpdatesToInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + CreateInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceGroupManager, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeleteInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePerInstanceConfigs, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceGroupManager, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInstanceGroupManager, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPerInstanceConfigs, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + RecreateInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RecreateInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + ResizeRequest const& request), + (override)); + + MOCK_METHOD(future>, + Resize, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetInstanceTemplate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + SetTargetPoolsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetTargetPools, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdatePerInstanceConfigs, + (google::cloud::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_client.cc b/google/cloud/compute/instance_groups/v1/instance_groups_client.cc index c77e37f5e9af0..5dd794feae9c4 100644 --- a/google/cloud/compute/instance_groups/v1/instance_groups_client.cc +++ b/google/cloud/compute/instance_groups/v1/instance_groups_client.cc @@ -49,6 +49,25 @@ InstanceGroupsClient::AddInstances( return connection_->AddInstances(request); } +StatusOr +InstanceGroupsClient::AddInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group, + google::cloud::cpp::compute::v1::InstanceGroupsAddInstancesRequest const& + instance_groups_add_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_groups::v1::AddInstancesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group(instance_group); + *request.mutable_instance_groups_add_instances_request_resource() = + instance_groups_add_instances_request_resource; + return connection_->AddInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupsClient::AddInstances( google::cloud::cpp::compute::instance_groups::v1::AddInstancesRequest const& @@ -58,6 +77,25 @@ InstanceGroupsClient::AddInstances( return connection_->AddInstances(request); } +StatusOr +InstanceGroupsClient::AddInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1::AddInstancesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupsClient::AddInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddInstances(google::cloud::ExperimentalTag{}, operation); +} + StreamRange> InstanceGroupsClient::AggregatedListInstanceGroups(std::string const& project, @@ -93,6 +131,23 @@ InstanceGroupsClient::DeleteInstanceGroup(std::string const& project, return connection_->DeleteInstanceGroup(request); } +StatusOr +InstanceGroupsClient::DeleteInstanceGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& instance_group, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_groups::v1::DeleteInstanceGroupRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group(instance_group); + return connection_->DeleteInstanceGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupsClient::DeleteInstanceGroup( google::cloud::cpp::compute::instance_groups::v1:: @@ -102,6 +157,26 @@ InstanceGroupsClient::DeleteInstanceGroup( return connection_->DeleteInstanceGroup(request); } +StatusOr +InstanceGroupsClient::DeleteInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupsClient::DeleteInstanceGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceGroup(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr InstanceGroupsClient::GetInstanceGroup(std::string const& project, std::string const& zone, @@ -140,6 +215,23 @@ InstanceGroupsClient::InsertInstanceGroup( return connection_->InsertInstanceGroup(request); } +StatusOr +InstanceGroupsClient::InsertInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::InstanceGroup const& + instance_group_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_groups::v1::InsertInstanceGroupRequest + request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_instance_group_resource() = instance_group_resource; + return connection_->InsertInstanceGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupsClient::InsertInstanceGroup( google::cloud::cpp::compute::instance_groups::v1:: @@ -149,6 +241,26 @@ InstanceGroupsClient::InsertInstanceGroup( return connection_->InsertInstanceGroup(request); } +StatusOr +InstanceGroupsClient::InsertInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupsClient::InsertInstanceGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceGroup(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange InstanceGroupsClient::ListInstanceGroups(std::string const& project, std::string const& zone, @@ -215,6 +327,26 @@ InstanceGroupsClient::RemoveInstances( return connection_->RemoveInstances(request); } +StatusOr +InstanceGroupsClient::RemoveInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group, + google::cloud::cpp::compute::v1::InstanceGroupsRemoveInstancesRequest const& + instance_groups_remove_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_groups::v1::RemoveInstancesRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group(instance_group); + *request.mutable_instance_groups_remove_instances_request_resource() = + instance_groups_remove_instances_request_resource; + return connection_->RemoveInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupsClient::RemoveInstances( google::cloud::cpp::compute::instance_groups::v1:: @@ -224,6 +356,26 @@ InstanceGroupsClient::RemoveInstances( return connection_->RemoveInstances(request); } +StatusOr +InstanceGroupsClient::RemoveInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupsClient::RemoveInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceGroupsClient::SetNamedPorts( std::string const& project, std::string const& zone, @@ -242,6 +394,26 @@ InstanceGroupsClient::SetNamedPorts( return connection_->SetNamedPorts(request); } +StatusOr +InstanceGroupsClient::SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group, + google::cloud::cpp::compute::v1::InstanceGroupsSetNamedPortsRequest const& + instance_groups_set_named_ports_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_groups::v1::SetNamedPortsRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance_group(instance_group); + *request.mutable_instance_groups_set_named_ports_request_resource() = + instance_groups_set_named_ports_request_resource; + return connection_->SetNamedPorts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceGroupsClient::SetNamedPorts( google::cloud::cpp::compute::instance_groups::v1:: @@ -251,6 +423,26 @@ InstanceGroupsClient::SetNamedPorts( return connection_->SetNamedPorts(request); } +StatusOr +InstanceGroupsClient::SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetNamedPorts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceGroupsClient::SetNamedPorts( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetNamedPorts(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instance_groups_v1 } // namespace cloud diff --git a/google/cloud/compute/instance_groups/v1/instance_groups_client.h b/google/cloud/compute/instance_groups/v1/instance_groups_client.h index b10142b0e2578..922aa0521e5d6 100644 --- a/google/cloud/compute/instance_groups/v1/instance_groups_client.h +++ b/google/cloud/compute/instance_groups/v1/instance_groups_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANCE_GROUPS_V1_INSTANCE_GROUPS_CLIENT_H #include "google/cloud/compute/instance_groups/v1/instance_groups_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -128,6 +130,14 @@ class InstanceGroupsClient { instance_groups_add_instances_request_resource, Options opts = {}); + StatusOr AddInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group, + google::cloud::cpp::compute::v1::InstanceGroupsAddInstancesRequest const& + instance_groups_add_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Adds a list of instances to the specified instance group. All of the @@ -169,6 +179,17 @@ class InstanceGroupsClient { AddInstancesRequest const& request, Options opts = {}); + StatusOr AddInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const& request, + Options opts = {}); + + future> AddInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of instance groups and sorts them by zone. To prevent @@ -290,6 +311,11 @@ class InstanceGroupsClient { DeleteInstanceGroup(std::string const& project, std::string const& zone, std::string const& instance_group, Options opts = {}); + StatusOr DeleteInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group, Options opts = {}); + // clang-format off /// /// Deletes the specified instance group. The instances in the group are not @@ -331,6 +357,18 @@ class InstanceGroupsClient { DeleteInstanceGroupRequest const& request, Options opts = {}); + StatusOr DeleteInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request, + Options opts = {}); + + future> + DeleteInstanceGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified zonal instance group. Get a list of available zonal @@ -437,6 +475,13 @@ class InstanceGroupsClient { instance_group_resource, Options opts = {}); + StatusOr InsertInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::InstanceGroup const& + instance_group_resource, + Options opts = {}); + // clang-format off /// /// Creates an instance group in the specified project using the parameters @@ -477,6 +522,18 @@ class InstanceGroupsClient { InsertInstanceGroupRequest const& request, Options opts = {}); + StatusOr InsertInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request, + Options opts = {}); + + future> + InsertInstanceGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of zonal instance group resources contained within the @@ -695,6 +752,15 @@ class InstanceGroupsClient { instance_groups_remove_instances_request_resource, Options opts = {}); + StatusOr RemoveInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group, + google::cloud::cpp::compute::v1:: + InstanceGroupsRemoveInstancesRequest const& + instance_groups_remove_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Removes one or more instances from the specified instance group, but does @@ -737,6 +803,17 @@ class InstanceGroupsClient { RemoveInstancesRequest const& request, Options opts = {}); + StatusOr RemoveInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request, + Options opts = {}); + + future> RemoveInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the named ports for the specified instance group. @@ -776,6 +853,14 @@ class InstanceGroupsClient { instance_groups_set_named_ports_request_resource, Options opts = {}); + StatusOr SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance_group, + google::cloud::cpp::compute::v1::InstanceGroupsSetNamedPortsRequest const& + instance_groups_set_named_ports_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the named ports for the specified instance group. @@ -815,6 +900,17 @@ class InstanceGroupsClient { SetNamedPortsRequest const& request, Options opts = {}); + StatusOr SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request, + Options opts = {}); + + future> SetNamedPorts( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..bb32658866520 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,31 @@ InstanceGroupsTracingConnection::AddInstances( return internal::EndSpan(std::move(span), child_->AddInstances(request)); } +StatusOr +InstanceGroupsTracingConnection::AddInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::AddInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange> InstanceGroupsTracingConnection::AggregatedListInstanceGroups( @@ -70,6 +95,33 @@ InstanceGroupsTracingConnection::DeleteInstanceGroup( child_->DeleteInstanceGroup(request)); } +StatusOr +InstanceGroupsTracingConnection::DeleteInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::DeleteInstanceGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InstanceGroupsTracingConnection::GetInstanceGroup( google::cloud::cpp::compute::instance_groups::v1:: @@ -92,6 +144,33 @@ InstanceGroupsTracingConnection::InsertInstanceGroup( child_->InsertInstanceGroup(request)); } +StatusOr +InstanceGroupsTracingConnection::InsertInstanceGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::InsertInstanceGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange InstanceGroupsTracingConnection::ListInstanceGroups( google::cloud::cpp::compute::instance_groups::v1::ListInstanceGroupsRequest @@ -129,6 +208,31 @@ InstanceGroupsTracingConnection::RemoveInstances( return internal::EndSpan(std::move(span), child_->RemoveInstances(request)); } +StatusOr +InstanceGroupsTracingConnection::RemoveInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::RemoveInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceGroupsTracingConnection::SetNamedPorts( google::cloud::cpp::compute::instance_groups::v1:: @@ -139,6 +243,31 @@ InstanceGroupsTracingConnection::SetNamedPorts( return internal::EndSpan(std::move(span), child_->SetNamedPorts(request)); } +StatusOr +InstanceGroupsTracingConnection::SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceGroupsTracingConnection::SetNamedPorts( + google::cloud::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(google::cloud::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..223c74ce85b7a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const& request) override; + + future> AddInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request) override; + + future> + DeleteInstanceGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request) override; + + future> + InsertInstanceGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request) override; + + future> RemoveInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request) override; + + future> SetNamedPorts( + google::cloud::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..e151e66f2f674 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + AddInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + DeleteInstanceGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceGroup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + InsertInstanceGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceGroup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + RemoveInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_groups::v1:: + SetNamedPortsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetNamedPorts, + (google::cloud::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_client.cc b/google/cloud/compute/instance_settings/v1/instance_settings_client.cc index 2335e83017a3a..89ee5cc75e715 100644 --- a/google/cloud/compute/instance_settings/v1/instance_settings_client.cc +++ b/google/cloud/compute/instance_settings/v1/instance_settings_client.cc @@ -70,6 +70,25 @@ InstanceSettingsClient::PatchInstanceSettings( return connection_->PatchInstanceSettings(request); } +StatusOr +InstanceSettingsClient::PatchInstanceSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& update_mask, + google::cloud::cpp::compute::v1::InstanceSettings const& + instance_settings_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_update_mask(update_mask); + *request.mutable_instance_settings_resource() = instance_settings_resource; + return connection_->PatchInstanceSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceSettingsClient::PatchInstanceSettings( google::cloud::cpp::compute::instance_settings::v1:: @@ -79,6 +98,26 @@ InstanceSettingsClient::PatchInstanceSettings( return connection_->PatchInstanceSettings(request); } +StatusOr +InstanceSettingsClient::PatchInstanceSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInstanceSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceSettingsClient::PatchInstanceSettings( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInstanceSettings(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instance_settings_v1 } // namespace cloud diff --git a/google/cloud/compute/instance_settings/v1/instance_settings_client.h b/google/cloud/compute/instance_settings/v1/instance_settings_client.h index ba88fec4e16e4..84030d552d2bb 100644 --- a/google/cloud/compute/instance_settings/v1/instance_settings_client.h +++ b/google/cloud/compute/instance_settings/v1/instance_settings_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANCE_SETTINGS_V1_INSTANCE_SETTINGS_CLIENT_H #include "google/cloud/compute/instance_settings/v1/instance_settings_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,14 @@ class InstanceSettingsClient { instance_settings_resource, Options opts = {}); + StatusOr PatchInstanceSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& update_mask, + google::cloud::cpp::compute::v1::InstanceSettings const& + instance_settings_resource, + Options opts = {}); + // clang-format off /// /// Patch Instance settings @@ -226,6 +236,18 @@ class InstanceSettingsClient { PatchInstanceSettingsRequest const& request, Options opts = {}); + StatusOr PatchInstanceSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request, + Options opts = {}); + + future> + PatchInstanceSettings( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..50918f063160e 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,33 @@ InstanceSettingsTracingConnection::PatchInstanceSettings( child_->PatchInstanceSettings(request)); } +StatusOr +InstanceSettingsTracingConnection::PatchInstanceSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceSettingsTracingConnection::PatchInstanceSettings( + google::cloud::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( + google::cloud::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..4a0e7074d12c4 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request) override; + + future> + PatchInstanceSettings( + google::cloud::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..05c1247e93aa8 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_settings::v1:: + PatchInstanceSettingsRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInstanceSettings, + (google::cloud::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_client.cc b/google/cloud/compute/instance_templates/v1/instance_templates_client.cc index e6d6abf9dc542..ad7c33b29d813 100644 --- a/google/cloud/compute/instance_templates/v1/instance_templates_client.cc +++ b/google/cloud/compute/instance_templates/v1/instance_templates_client.cc @@ -65,6 +65,20 @@ InstanceTemplatesClient::DeleteInstanceTemplate( return connection_->DeleteInstanceTemplate(request); } +StatusOr +InstanceTemplatesClient::DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& instance_template, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest request; + request.set_project(project); + request.set_instance_template(instance_template); + return connection_->DeleteInstanceTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceTemplatesClient::DeleteInstanceTemplate( google::cloud::cpp::compute::instance_templates::v1:: @@ -74,6 +88,26 @@ InstanceTemplatesClient::DeleteInstanceTemplate( return connection_->DeleteInstanceTemplate(request); } +StatusOr +InstanceTemplatesClient::DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceTemplatesClient::DeleteInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceTemplate(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr InstanceTemplatesClient::GetInstanceTemplate( std::string const& project, std::string const& instance_template, @@ -130,6 +164,22 @@ InstanceTemplatesClient::InsertInstanceTemplate( return connection_->InsertInstanceTemplate(request); } +StatusOr +InstanceTemplatesClient::InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::InstanceTemplate const& + instance_template_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest request; + request.set_project(project); + *request.mutable_instance_template_resource() = instance_template_resource; + return connection_->InsertInstanceTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceTemplatesClient::InsertInstanceTemplate( google::cloud::cpp::compute::instance_templates::v1:: @@ -139,6 +189,26 @@ InstanceTemplatesClient::InsertInstanceTemplate( return connection_->InsertInstanceTemplate(request); } +StatusOr +InstanceTemplatesClient::InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceTemplatesClient::InsertInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceTemplate(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange InstanceTemplatesClient::ListInstanceTemplates(std::string const& project, Options opts) { diff --git a/google/cloud/compute/instance_templates/v1/instance_templates_client.h b/google/cloud/compute/instance_templates/v1/instance_templates_client.h index f4d3f36b84242..d256226823113 100644 --- a/google/cloud/compute/instance_templates/v1/instance_templates_client.h +++ b/google/cloud/compute/instance_templates/v1/instance_templates_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANCE_TEMPLATES_V1_INSTANCE_TEMPLATES_CLIENT_H #include "google/cloud/compute/instance_templates/v1/instance_templates_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class InstanceTemplatesClient { std::string const& instance_template, Options opts = {}); + StatusOr DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& instance_template, + Options opts = {}); + // clang-format off /// /// Deletes the specified instance template. Deleting an instance template is @@ -253,6 +260,18 @@ class InstanceTemplatesClient { DeleteInstanceTemplateRequest const& request, Options opts = {}); + StatusOr DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request, + Options opts = {}); + + future> + DeleteInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified instance template. @@ -417,6 +436,13 @@ class InstanceTemplatesClient { instance_template_resource, Options opts = {}); + StatusOr InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::InstanceTemplate const& + instance_template_resource, + Options opts = {}); + // clang-format off /// /// Creates an instance template in the specified project using the data that @@ -459,6 +485,18 @@ class InstanceTemplatesClient { InsertInstanceTemplateRequest const& request, Options opts = {}); + StatusOr InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request, + Options opts = {}); + + future> + InsertInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of instance templates that are contained within the 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..b90a083e92ede 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,33 @@ InstanceTemplatesTracingConnection::DeleteInstanceTemplate( child_->DeleteInstanceTemplate(request)); } +StatusOr +InstanceTemplatesTracingConnection::DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceTemplatesTracingConnection::DeleteInstanceTemplate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InstanceTemplatesTracingConnection::GetInstanceTemplate( google::cloud::cpp::compute::instance_templates::v1:: @@ -96,6 +123,33 @@ InstanceTemplatesTracingConnection::InsertInstanceTemplate( child_->InsertInstanceTemplate(request)); } +StatusOr +InstanceTemplatesTracingConnection::InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceTemplatesTracingConnection::InsertInstanceTemplate( + google::cloud::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( + google::cloud::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..b1f50f262299a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) override; + + future> + DeleteInstanceTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request) override; + + future> + InsertInstanceTemplate( + google::cloud::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..a4bdec791fd3e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + DeleteInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceTemplate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instance_templates::v1:: + InsertInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceTemplate, + (google::cloud::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_client.cc b/google/cloud/compute/instances/v1/instances_client.cc index d1e2d53b0f089..8f919d499f171 100644 --- a/google/cloud/compute/instances/v1/instances_client.cc +++ b/google/cloud/compute/instances/v1/instances_client.cc @@ -48,6 +48,24 @@ InstancesClient::AddAccessConfig( return connection_->AddAccessConfig(request); } +StatusOr +InstancesClient::AddAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& network_interface, + google::cloud::cpp::compute::v1::AccessConfig const& access_config_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + request.set_network_interface(network_interface); + *request.mutable_access_config_resource() = access_config_resource; + return connection_->AddAccessConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::AddAccessConfig( google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& @@ -57,6 +75,26 @@ InstancesClient::AddAccessConfig( return connection_->AddAccessConfig(request); } +StatusOr +InstancesClient::AddAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAccessConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::AddAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAccessConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::AddResourcePolicies( std::string const& project, std::string const& zone, @@ -75,6 +113,26 @@ InstancesClient::AddResourcePolicies( return connection_->AddResourcePolicies(request); } +StatusOr +InstancesClient::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesAddResourcePoliciesRequest const& + instances_add_resource_policies_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::AddResourcePoliciesRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_add_resource_policies_request_resource() = + instances_add_resource_policies_request_resource; + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::AddResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -84,6 +142,26 @@ InstancesClient::AddResourcePolicies( return connection_->AddResourcePolicies(request); } +StatusOr +InstancesClient::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::AddResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange> InstancesClient::AggregatedListInstances(std::string const& project, @@ -120,6 +198,23 @@ InstancesClient::AttachDisk( return connection_->AttachDisk(request); } +StatusOr +InstancesClient::AttachDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::AttachedDisk const& attached_disk_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::AttachDiskRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_attached_disk_resource() = attached_disk_resource; + return connection_->AttachDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::AttachDisk( google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& @@ -129,6 +224,25 @@ InstancesClient::AttachDisk( return connection_->AttachDisk(request); } +StatusOr +InstancesClient::AttachDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::AttachDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachDisk(google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::BulkInsert( std::string const& project, std::string const& zone, @@ -144,6 +258,23 @@ InstancesClient::BulkInsert( return connection_->BulkInsert(request); } +StatusOr +InstancesClient::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::BulkInsertInstanceResource const& + bulk_insert_instance_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::BulkInsertRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_bulk_insert_instance_resource() = + bulk_insert_instance_resource; + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& @@ -153,6 +284,25 @@ InstancesClient::BulkInsert( return connection_->BulkInsert(request); } +StatusOr +InstancesClient::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::DeleteInstance(std::string const& project, std::string const& zone, @@ -165,6 +315,21 @@ InstancesClient::DeleteInstance(std::string const& project, return connection_->DeleteInstance(request); } +StatusOr +InstancesClient::DeleteInstance(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::DeleteInstance( google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& @@ -174,6 +339,26 @@ InstancesClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr +InstancesClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::DeleteAccessConfig(std::string const& project, std::string const& zone, @@ -191,6 +376,23 @@ InstancesClient::DeleteAccessConfig(std::string const& project, return connection_->DeleteAccessConfig(request); } +StatusOr +InstancesClient::DeleteAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& access_config, + std::string const& network_interface, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + request.set_access_config(access_config); + request.set_network_interface(network_interface); + return connection_->DeleteAccessConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::DeleteAccessConfig( google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest const& @@ -200,6 +402,26 @@ InstancesClient::DeleteAccessConfig( return connection_->DeleteAccessConfig(request); } +StatusOr +InstancesClient::DeleteAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAccessConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::DeleteAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAccessConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::DetachDisk(std::string const& project, std::string const& zone, std::string const& instance, @@ -213,6 +435,22 @@ InstancesClient::DetachDisk(std::string const& project, std::string const& zone, return connection_->DetachDisk(request); } +StatusOr +InstancesClient::DetachDisk(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + std::string const& device_name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::DetachDiskRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + request.set_device_name(device_name); + return connection_->DetachDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::DetachDisk( google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& @@ -222,6 +460,25 @@ InstancesClient::DetachDisk( return connection_->DetachDisk(request); } +StatusOr +InstancesClient::DetachDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::DetachDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachDisk(google::cloud::ExperimentalTag{}, operation); +} + StatusOr InstancesClient::GetInstance(std::string const& project, std::string const& zone, @@ -390,6 +647,21 @@ InstancesClient::InsertInstance( return connection_->InsertInstance(request); } +StatusOr +InstancesClient::InsertInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Instance const& instance_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_instance_resource() = instance_resource; + return connection_->InsertInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::InsertInstance( google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& @@ -399,6 +671,26 @@ InstancesClient::InsertInstance( return connection_->InsertInstance(request); } +StatusOr +InstancesClient::InsertInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::InsertInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstance(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange InstancesClient::ListInstances(std::string const& project, std::string const& zone, Options opts) { @@ -449,6 +741,21 @@ InstancesClient::PerformMaintenance(std::string const& project, return connection_->PerformMaintenance(request); } +StatusOr +InstancesClient::PerformMaintenance(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::PerformMaintenanceRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + return connection_->PerformMaintenance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::PerformMaintenance( google::cloud::cpp::compute::instances::v1::PerformMaintenanceRequest const& @@ -458,6 +765,26 @@ InstancesClient::PerformMaintenance( return connection_->PerformMaintenance(request); } +StatusOr +InstancesClient::PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::PerformMaintenanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PerformMaintenance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::PerformMaintenance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PerformMaintenance(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::RemoveResourcePolicies( std::string const& project, std::string const& zone, @@ -477,6 +804,27 @@ InstancesClient::RemoveResourcePolicies( return connection_->RemoveResourcePolicies(request); } +StatusOr +InstancesClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1:: + InstancesRemoveResourcePoliciesRequest const& + instances_remove_resource_policies_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::RemoveResourcePoliciesRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_remove_resource_policies_request_resource() = + instances_remove_resource_policies_request_resource; + return connection_->RemoveResourcePolicies( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::RemoveResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -486,6 +834,26 @@ InstancesClient::RemoveResourcePolicies( return connection_->RemoveResourcePolicies(request); } +StatusOr +InstancesClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveResourcePolicies( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveResourcePolicies(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::Reset(std::string const& project, std::string const& zone, std::string const& instance, Options opts) { @@ -497,6 +865,19 @@ InstancesClient::Reset(std::string const& project, std::string const& zone, return connection_->Reset(request); } +StatusOr InstancesClient::Reset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::ResetRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + return connection_->Reset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::Reset( google::cloud::cpp::compute::instances::v1::ResetRequest const& request, @@ -505,9 +886,26 @@ InstancesClient::Reset( return connection_->Reset(request); } -future> -InstancesClient::Resume(std::string const& project, std::string const& zone, - std::string const& instance, Options opts) { +StatusOr InstancesClient::Reset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Reset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::Reset( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Reset(google::cloud::ExperimentalTag{}, operation); +} + +future> +InstancesClient::Resume(std::string const& project, std::string const& zone, + std::string const& instance, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); google::cloud::cpp::compute::instances::v1::ResumeRequest request; request.set_project(project); @@ -516,6 +914,19 @@ InstancesClient::Resume(std::string const& project, std::string const& zone, return connection_->Resume(request); } +StatusOr InstancesClient::Resume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::ResumeRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + return connection_->Resume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::Resume( google::cloud::cpp::compute::instances::v1::ResumeRequest const& request, @@ -524,6 +935,23 @@ InstancesClient::Resume( return connection_->Resume(request); } +StatusOr InstancesClient::Resume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::Resume( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resume(google::cloud::ExperimentalTag{}, operation); +} + Status InstancesClient::SendDiagnosticInterrupt(std::string const& project, std::string const& zone, std::string const& instance, @@ -559,6 +987,23 @@ InstancesClient::SetDeletionProtection(std::string const& project, return connection_->SetDeletionProtection(request); } +StatusOr +InstancesClient::SetDeletionProtection(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetDeletionProtectionRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_resource(resource); + return connection_->SetDeletionProtection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetDeletionProtection( google::cloud::cpp::compute::instances::v1:: @@ -568,6 +1013,26 @@ InstancesClient::SetDeletionProtection( return connection_->SetDeletionProtection(request); } +StatusOr +InstancesClient::SetDeletionProtection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetDeletionProtection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetDeletionProtection( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetDeletionProtection(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::SetDiskAutoDelete(std::string const& project, std::string const& zone, @@ -585,6 +1050,23 @@ InstancesClient::SetDiskAutoDelete(std::string const& project, return connection_->SetDiskAutoDelete(request); } +StatusOr +InstancesClient::SetDiskAutoDelete( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, bool auto_delete, + std::string const& device_name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + request.set_auto_delete(auto_delete); + request.set_device_name(device_name); + return connection_->SetDiskAutoDelete(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetDiskAutoDelete( google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest const& @@ -594,6 +1076,26 @@ InstancesClient::SetDiskAutoDelete( return connection_->SetDiskAutoDelete(request); } +StatusOr +InstancesClient::SetDiskAutoDelete( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetDiskAutoDelete(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetDiskAutoDelete( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetDiskAutoDelete(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr InstancesClient::SetIamPolicy( std::string const& project, std::string const& zone, std::string const& resource, @@ -635,6 +1137,24 @@ InstancesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr InstancesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetLabelsRequest const& + instances_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetLabelsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_set_labels_request_resource() = + instances_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetLabels( google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& request, @@ -643,6 +1163,23 @@ InstancesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr InstancesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::SetMachineResources( std::string const& project, std::string const& zone, @@ -661,6 +1198,26 @@ InstancesClient::SetMachineResources( return connection_->SetMachineResources(request); } +StatusOr +InstancesClient::SetMachineResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetMachineResourcesRequest const& + instances_set_machine_resources_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetMachineResourcesRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_set_machine_resources_request_resource() = + instances_set_machine_resources_request_resource; + return connection_->SetMachineResources(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetMachineResources( google::cloud::cpp::compute::instances::v1:: @@ -670,6 +1227,26 @@ InstancesClient::SetMachineResources( return connection_->SetMachineResources(request); } +StatusOr +InstancesClient::SetMachineResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetMachineResources(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetMachineResources( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetMachineResources(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::SetMachineType( std::string const& project, std::string const& zone, @@ -687,6 +1264,25 @@ InstancesClient::SetMachineType( return connection_->SetMachineType(request); } +StatusOr +InstancesClient::SetMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetMachineTypeRequest const& + instances_set_machine_type_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_set_machine_type_request_resource() = + instances_set_machine_type_request_resource; + return connection_->SetMachineType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetMachineType( google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& @@ -696,6 +1292,26 @@ InstancesClient::SetMachineType( return connection_->SetMachineType(request); } +StatusOr +InstancesClient::SetMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetMachineType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetMachineType( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetMachineType(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::SetMetadata( std::string const& project, std::string const& zone, @@ -711,6 +1327,23 @@ InstancesClient::SetMetadata( return connection_->SetMetadata(request); } +StatusOr +InstancesClient::SetMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::Metadata const& metadata_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetMetadataRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_metadata_resource() = metadata_resource; + return connection_->SetMetadata(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetMetadata( google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& @@ -720,6 +1353,25 @@ InstancesClient::SetMetadata( return connection_->SetMetadata(request); } +StatusOr +InstancesClient::SetMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetMetadata(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetMetadata( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetMetadata(google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::SetMinCpuPlatform( std::string const& project, std::string const& zone, @@ -737,6 +1389,25 @@ InstancesClient::SetMinCpuPlatform( return connection_->SetMinCpuPlatform(request); } +StatusOr +InstancesClient::SetMinCpuPlatform( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetMinCpuPlatformRequest const& + instances_set_min_cpu_platform_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_set_min_cpu_platform_request_resource() = + instances_set_min_cpu_platform_request_resource; + return connection_->SetMinCpuPlatform(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetMinCpuPlatform( google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest const& @@ -746,6 +1417,26 @@ InstancesClient::SetMinCpuPlatform( return connection_->SetMinCpuPlatform(request); } +StatusOr +InstancesClient::SetMinCpuPlatform( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetMinCpuPlatform(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetMinCpuPlatform( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetMinCpuPlatform(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::SetName( std::string const& project, std::string const& zone, @@ -763,6 +1454,24 @@ InstancesClient::SetName( return connection_->SetName(request); } +StatusOr InstancesClient::SetName( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetNameRequest const& + instances_set_name_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetNameRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_set_name_request_resource() = + instances_set_name_request_resource; + return connection_->SetName(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetName( google::cloud::cpp::compute::instances::v1::SetNameRequest const& request, @@ -771,6 +1480,23 @@ InstancesClient::SetName( return connection_->SetName(request); } +StatusOr InstancesClient::SetName( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetName(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetName( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetName(google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::SetScheduling( std::string const& project, std::string const& zone, @@ -786,6 +1512,23 @@ InstancesClient::SetScheduling( return connection_->SetScheduling(request); } +StatusOr +InstancesClient::SetScheduling( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::Scheduling const& scheduling_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_scheduling_resource() = scheduling_resource; + return connection_->SetScheduling(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetScheduling( google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& @@ -795,6 +1538,26 @@ InstancesClient::SetScheduling( return connection_->SetScheduling(request); } +StatusOr +InstancesClient::SetScheduling( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetScheduling(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetScheduling( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetScheduling(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::SetSecurityPolicy( std::string const& project, std::string const& zone, @@ -812,7 +1575,26 @@ InstancesClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } -future> +StatusOr +InstancesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetSecurityPolicyRequest const& + instances_set_security_policy_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_set_security_policy_request_resource() = + instances_set_security_policy_request_resource; + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> InstancesClient::SetSecurityPolicy( google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest const& request, @@ -821,6 +1603,26 @@ InstancesClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +InstancesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::SetServiceAccount( std::string const& project, std::string const& zone, @@ -838,6 +1640,25 @@ InstancesClient::SetServiceAccount( return connection_->SetServiceAccount(request); } +StatusOr +InstancesClient::SetServiceAccount( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetServiceAccountRequest const& + instances_set_service_account_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_set_service_account_request_resource() = + instances_set_service_account_request_resource; + return connection_->SetServiceAccount(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetServiceAccount( google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest const& @@ -847,6 +1668,26 @@ InstancesClient::SetServiceAccount( return connection_->SetServiceAccount(request); } +StatusOr +InstancesClient::SetServiceAccount( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetServiceAccount(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetServiceAccount( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetServiceAccount(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::SetShieldedInstanceIntegrityPolicy( std::string const& project, std::string const& zone, @@ -865,6 +1706,26 @@ InstancesClient::SetShieldedInstanceIntegrityPolicy( return connection_->SetShieldedInstanceIntegrityPolicy(request); } +StatusOr +InstancesClient::SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::ShieldedInstanceIntegrityPolicy const& + shielded_instance_integrity_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_shielded_instance_integrity_policy_resource() = + shielded_instance_integrity_policy_resource; + return connection_->SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetShieldedInstanceIntegrityPolicy( google::cloud::cpp::compute::instances::v1:: @@ -874,6 +1735,26 @@ InstancesClient::SetShieldedInstanceIntegrityPolicy( return connection_->SetShieldedInstanceIntegrityPolicy(request); } +StatusOr +InstancesClient::SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::SetTags( std::string const& project, std::string const& zone, @@ -888,6 +1769,21 @@ InstancesClient::SetTags( return connection_->SetTags(request); } +StatusOr InstancesClient::SetTags( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::Tags const& tags_resource, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SetTagsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_tags_resource() = tags_resource; + return connection_->SetTags(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SetTags( google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request, @@ -896,6 +1792,23 @@ InstancesClient::SetTags( return connection_->SetTags(request); } +StatusOr InstancesClient::SetTags( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTags(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SetTags( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTags(google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::SimulateMaintenanceEvent(std::string const& project, std::string const& zone, @@ -910,6 +1823,23 @@ InstancesClient::SimulateMaintenanceEvent(std::string const& project, return connection_->SimulateMaintenanceEvent(request); } +StatusOr +InstancesClient::SimulateMaintenanceEvent(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& instance, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SimulateMaintenanceEventRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + return connection_->SimulateMaintenanceEvent( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::SimulateMaintenanceEvent( google::cloud::cpp::compute::instances::v1:: @@ -919,6 +1849,26 @@ InstancesClient::SimulateMaintenanceEvent( return connection_->SimulateMaintenanceEvent(request); } +StatusOr +InstancesClient::SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SimulateMaintenanceEvent( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SimulateMaintenanceEvent(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::Start(std::string const& project, std::string const& zone, std::string const& instance, Options opts) { @@ -930,6 +1880,19 @@ InstancesClient::Start(std::string const& project, std::string const& zone, return connection_->Start(request); } +StatusOr InstancesClient::Start( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::StartRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + return connection_->Start(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::Start( google::cloud::cpp::compute::instances::v1::StartRequest const& request, @@ -938,6 +1901,23 @@ InstancesClient::Start( return connection_->Start(request); } +StatusOr InstancesClient::Start( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Start(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::Start( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Start(google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::StartWithEncryptionKey( std::string const& project, std::string const& zone, @@ -957,6 +1937,27 @@ InstancesClient::StartWithEncryptionKey( return connection_->StartWithEncryptionKey(request); } +StatusOr +InstancesClient::StartWithEncryptionKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1:: + InstancesStartWithEncryptionKeyRequest const& + instances_start_with_encryption_key_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::StartWithEncryptionKeyRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instances_start_with_encryption_key_request_resource() = + instances_start_with_encryption_key_request_resource; + return connection_->StartWithEncryptionKey( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::StartWithEncryptionKey( google::cloud::cpp::compute::instances::v1:: @@ -966,6 +1967,26 @@ InstancesClient::StartWithEncryptionKey( return connection_->StartWithEncryptionKey(request); } +StatusOr +InstancesClient::StartWithEncryptionKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartWithEncryptionKey( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::StartWithEncryptionKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartWithEncryptionKey(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::Stop(std::string const& project, std::string const& zone, std::string const& instance, Options opts) { @@ -977,6 +1998,19 @@ InstancesClient::Stop(std::string const& project, std::string const& zone, return connection_->Stop(request); } +StatusOr InstancesClient::Stop( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::StopRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + return connection_->Stop(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::Stop( google::cloud::cpp::compute::instances::v1::StopRequest const& request, @@ -985,6 +2019,23 @@ InstancesClient::Stop( return connection_->Stop(request); } +StatusOr InstancesClient::Stop( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Stop(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::Stop( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Stop(google::cloud::ExperimentalTag{}, operation); +} + future> InstancesClient::Suspend(std::string const& project, std::string const& zone, std::string const& instance, Options opts) { @@ -996,6 +2047,19 @@ InstancesClient::Suspend(std::string const& project, std::string const& zone, return connection_->Suspend(request); } +StatusOr InstancesClient::Suspend( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::SuspendRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + return connection_->Suspend(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::Suspend( google::cloud::cpp::compute::instances::v1::SuspendRequest const& request, @@ -1004,6 +2068,23 @@ InstancesClient::Suspend( return connection_->Suspend(request); } +StatusOr InstancesClient::Suspend( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Suspend(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::Suspend( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Suspend(google::cloud::ExperimentalTag{}, operation); +} + StatusOr InstancesClient::TestIamPermissions( std::string const& project, std::string const& zone, @@ -1045,6 +2126,23 @@ InstancesClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr +InstancesClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::Instance const& instance_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_instance_resource() = instance_resource; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::UpdateInstance( google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& @@ -1054,6 +2152,26 @@ InstancesClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr +InstancesClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::UpdateAccessConfig( std::string const& project, std::string const& zone, @@ -1070,6 +2188,24 @@ InstancesClient::UpdateAccessConfig( return connection_->UpdateAccessConfig(request); } +StatusOr +InstancesClient::UpdateAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& network_interface, + google::cloud::cpp::compute::v1::AccessConfig const& access_config_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + request.set_network_interface(network_interface); + *request.mutable_access_config_resource() = access_config_resource; + return connection_->UpdateAccessConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::UpdateAccessConfig( google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest const& @@ -1079,6 +2215,26 @@ InstancesClient::UpdateAccessConfig( return connection_->UpdateAccessConfig(request); } +StatusOr +InstancesClient::UpdateAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAccessConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::UpdateAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAccessConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::UpdateDisplayDevice( std::string const& project, std::string const& zone, @@ -1096,6 +2252,25 @@ InstancesClient::UpdateDisplayDevice( return connection_->UpdateDisplayDevice(request); } +StatusOr +InstancesClient::UpdateDisplayDevice( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::DisplayDevice const& + display_device_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::UpdateDisplayDeviceRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_display_device_resource() = display_device_resource; + return connection_->UpdateDisplayDevice(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::UpdateDisplayDevice( google::cloud::cpp::compute::instances::v1:: @@ -1105,6 +2280,26 @@ InstancesClient::UpdateDisplayDevice( return connection_->UpdateDisplayDevice(request); } +StatusOr +InstancesClient::UpdateDisplayDevice( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDisplayDevice(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::UpdateDisplayDevice( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDisplayDevice(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::UpdateNetworkInterface( std::string const& project, std::string const& zone, @@ -1123,6 +2318,26 @@ InstancesClient::UpdateNetworkInterface( return connection_->UpdateNetworkInterface(request); } +StatusOr +InstancesClient::UpdateNetworkInterface( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& network_interface, + google::cloud::cpp::compute::v1::NetworkInterface const& + network_interface_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1::UpdateNetworkInterfaceRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + request.set_network_interface(network_interface); + *request.mutable_network_interface_resource() = network_interface_resource; + return connection_->UpdateNetworkInterface( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::UpdateNetworkInterface( google::cloud::cpp::compute::instances::v1:: @@ -1132,6 +2347,26 @@ InstancesClient::UpdateNetworkInterface( return connection_->UpdateNetworkInterface(request); } +StatusOr +InstancesClient::UpdateNetworkInterface( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNetworkInterface( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::UpdateNetworkInterface( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNetworkInterface(google::cloud::ExperimentalTag{}, + operation); +} + future> InstancesClient::UpdateShieldedInstanceConfig( std::string const& project, std::string const& zone, @@ -1150,6 +2385,26 @@ InstancesClient::UpdateShieldedInstanceConfig( return connection_->UpdateShieldedInstanceConfig(request); } +StatusOr +InstancesClient::UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::ShieldedInstanceConfig const& + shielded_instance_config_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_instance(instance); + *request.mutable_shielded_instance_config_resource() = + shielded_instance_config_resource; + return connection_->UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstancesClient::UpdateShieldedInstanceConfig( google::cloud::cpp::compute::instances::v1:: @@ -1159,6 +2414,26 @@ InstancesClient::UpdateShieldedInstanceConfig( return connection_->UpdateShieldedInstanceConfig(request); } +StatusOr +InstancesClient::UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstancesClient::UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_instances_v1 } // namespace cloud diff --git a/google/cloud/compute/instances/v1/instances_client.h b/google/cloud/compute/instances/v1/instances_client.h index 240b34bff0733..75562fce962b7 100644 --- a/google/cloud/compute/instances/v1/instances_client.h +++ b/google/cloud/compute/instances/v1/instances_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INSTANCES_V1_INSTANCES_CLIENT_H #include "google/cloud/compute/instances/v1/instances_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,14 @@ class InstancesClient { access_config_resource, Options opts = {}); + StatusOr AddAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& network_interface, + google::cloud::cpp::compute::v1::AccessConfig const& + access_config_resource, + Options opts = {}); + // clang-format off /// /// Adds an access config to an instance's network interface. @@ -164,6 +174,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr AddAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request, + Options opts = {}); + + future> AddAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds existing resource policies to an instance. You can only add one policy @@ -206,6 +227,15 @@ class InstancesClient { instances_add_resource_policies_request_resource, Options opts = {}); + StatusOr AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1:: + InstancesAddResourcePoliciesRequest const& + instances_add_resource_policies_request_resource, + Options opts = {}); + // clang-format off /// /// Adds existing resource policies to an instance. You can only add one policy @@ -247,6 +277,18 @@ class InstancesClient { AddResourcePoliciesRequest const& request, Options opts = {}); + StatusOr AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request, + Options opts = {}); + + future> + AddResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves an aggregated list of all of the instances in your project across @@ -377,6 +419,14 @@ class InstancesClient { attached_disk_resource, Options opts = {}); + StatusOr AttachDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::AttachedDisk const& + attached_disk_resource, + Options opts = {}); + // clang-format off /// /// Attaches an existing Disk resource to an instance. You must first create @@ -419,6 +469,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr AttachDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request, + Options opts = {}); + + future> AttachDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates multiple instances. Count specifies the number of instances to @@ -457,6 +518,13 @@ class InstancesClient { bulk_insert_instance_resource, Options opts = {}); + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::BulkInsertInstanceResource const& + bulk_insert_instance_resource, + Options opts = {}); + // clang-format off /// /// Creates multiple instances. Count specifies the number of instances to @@ -497,6 +565,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request, + Options opts = {}); + + future> BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified Instance resource. For more information, see Deleting @@ -533,6 +612,11 @@ class InstancesClient { std::string const& project, std::string const& zone, std::string const& instance, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts = {}); + // clang-format off /// /// Deletes the specified Instance resource. For more information, see Deleting @@ -573,6 +657,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request, + Options opts = {}); + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes an access config from an instance's network interface. @@ -612,6 +707,12 @@ class InstancesClient { std::string const& access_config, std::string const& network_interface, Options opts = {}); + StatusOr DeleteAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& access_config, + std::string const& network_interface, Options opts = {}); + // clang-format off /// /// Deletes an access config from an instance's network interface. @@ -651,6 +752,18 @@ class InstancesClient { DeleteAccessConfigRequest const& request, Options opts = {}); + StatusOr DeleteAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request, + Options opts = {}); + + future> + DeleteAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Detaches a disk from an instance. @@ -689,6 +802,12 @@ class InstancesClient { std::string const& instance, std::string const& device_name, Options opts = {}); + StatusOr DetachDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& device_name, + Options opts = {}); + // clang-format off /// /// Detaches a disk from an instance. @@ -728,6 +847,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr DetachDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request, + Options opts = {}); + + future> DetachDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified Instance resource. @@ -1208,6 +1338,12 @@ class InstancesClient { google::cloud::cpp::compute::v1::Instance const& instance_resource, Options opts = {}); + StatusOr InsertInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Instance const& instance_resource, + Options opts = {}); + // clang-format off /// /// Creates an instance resource in the specified project using the data @@ -1248,6 +1384,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr InsertInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request, + Options opts = {}); + + future> InsertInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of instances contained within the specified zone. @@ -1446,6 +1593,11 @@ class InstancesClient { PerformMaintenance(std::string const& project, std::string const& zone, std::string const& instance, Options opts = {}); + StatusOr PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts = {}); + // clang-format off /// /// Perform a manual maintenance on the instance. @@ -1485,6 +1637,18 @@ class InstancesClient { PerformMaintenanceRequest const& request, Options opts = {}); + StatusOr PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request, + Options opts = {}); + + future> + PerformMaintenance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes resource policies from an instance. @@ -1526,6 +1690,15 @@ class InstancesClient { instances_remove_resource_policies_request_resource, Options opts = {}); + StatusOr RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1:: + InstancesRemoveResourcePoliciesRequest const& + instances_remove_resource_policies_request_resource, + Options opts = {}); + // clang-format off /// /// Removes resource policies from an instance. @@ -1565,6 +1738,18 @@ class InstancesClient { RemoveResourcePoliciesRequest const& request, Options opts = {}); + StatusOr RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request, + Options opts = {}); + + future> + RemoveResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Performs a reset on the instance. This is a hard reset. The VM does not do @@ -1601,6 +1786,11 @@ class InstancesClient { std::string const& project, std::string const& zone, std::string const& instance, Options opts = {}); + StatusOr Reset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts = {}); + // clang-format off /// /// Performs a reset on the instance. This is a hard reset. The VM does not do @@ -1640,6 +1830,16 @@ class InstancesClient { google::cloud::cpp::compute::instances::v1::ResetRequest const& request, Options opts = {}); + StatusOr Reset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request, + Options opts = {}); + + future> Reset( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resumes an instance that was suspended using the instances().suspend @@ -1676,6 +1876,11 @@ class InstancesClient { std::string const& project, std::string const& zone, std::string const& instance, Options opts = {}); + StatusOr Resume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts = {}); + // clang-format off /// /// Resumes an instance that was suspended using the instances().suspend @@ -1715,6 +1920,16 @@ class InstancesClient { google::cloud::cpp::compute::instances::v1::ResumeRequest const& request, Options opts = {}); + StatusOr Resume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request, + Options opts = {}); + + future> Resume( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sends diagnostic interrupt to the instance. @@ -1807,6 +2022,11 @@ class InstancesClient { SetDeletionProtection(std::string const& project, std::string const& zone, std::string const& resource, Options opts = {}); + StatusOr SetDeletionProtection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& resource, Options opts = {}); + // clang-format off /// /// Sets deletion protection on the instance. @@ -1846,6 +2066,18 @@ class InstancesClient { SetDeletionProtectionRequest const& request, Options opts = {}); + StatusOr SetDeletionProtection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request, + Options opts = {}); + + future> + SetDeletionProtection( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the auto-delete flag for a disk attached to an instance. @@ -1885,6 +2117,12 @@ class InstancesClient { std::string const& instance, bool auto_delete, std::string const& device_name, Options opts = {}); + StatusOr SetDiskAutoDelete( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, bool auto_delete, + std::string const& device_name, Options opts = {}); + // clang-format off /// /// Sets the auto-delete flag for a disk attached to an instance. @@ -1924,6 +2162,17 @@ class InstancesClient { SetDiskAutoDeleteRequest const& request, Options opts = {}); + StatusOr SetDiskAutoDelete( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request, + Options opts = {}); + + future> + SetDiskAutoDelete(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -2032,6 +2281,14 @@ class InstancesClient { instances_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetLabelsRequest const& + instances_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets labels on an instance. To learn more about labels, read the Labeling @@ -2072,6 +2329,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the number and/or type of accelerator for a stopped instance to the @@ -2113,6 +2381,15 @@ class InstancesClient { instances_set_machine_resources_request_resource, Options opts = {}); + StatusOr SetMachineResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1:: + InstancesSetMachineResourcesRequest const& + instances_set_machine_resources_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the number and/or type of accelerator for a stopped instance to the @@ -2153,6 +2430,18 @@ class InstancesClient { SetMachineResourcesRequest const& request, Options opts = {}); + StatusOr SetMachineResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request, + Options opts = {}); + + future> + SetMachineResources( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the machine type for a stopped instance to the machine type @@ -2193,6 +2482,14 @@ class InstancesClient { instances_set_machine_type_request_resource, Options opts = {}); + StatusOr SetMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetMachineTypeRequest const& + instances_set_machine_type_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the machine type for a stopped instance to the machine type @@ -2233,6 +2530,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr SetMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request, + Options opts = {}); + + future> SetMachineType( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets metadata for the specified instance to the data included in the @@ -2272,6 +2580,13 @@ class InstancesClient { google::cloud::cpp::compute::v1::Metadata const& metadata_resource, Options opts = {}); + StatusOr SetMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::Metadata const& metadata_resource, + Options opts = {}); + // clang-format off /// /// Sets metadata for the specified instance to the data included in the @@ -2312,6 +2627,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr SetMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request, + Options opts = {}); + + future> SetMetadata( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the minimum CPU platform that this instance should use. This method @@ -2354,6 +2680,14 @@ class InstancesClient { instances_set_min_cpu_platform_request_resource, Options opts = {}); + StatusOr SetMinCpuPlatform( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetMinCpuPlatformRequest const& + instances_set_min_cpu_platform_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the minimum CPU platform that this instance should use. This method @@ -2395,6 +2729,17 @@ class InstancesClient { SetMinCpuPlatformRequest const& request, Options opts = {}); + StatusOr SetMinCpuPlatform( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request, + Options opts = {}); + + future> + SetMinCpuPlatform(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets name of an instance. @@ -2434,6 +2779,14 @@ class InstancesClient { instances_set_name_request_resource, Options opts = {}); + StatusOr SetName( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetNameRequest const& + instances_set_name_request_resource, + Options opts = {}); + // clang-format off /// /// Sets name of an instance. @@ -2472,6 +2825,16 @@ class InstancesClient { google::cloud::cpp::compute::instances::v1::SetNameRequest const& request, Options opts = {}); + StatusOr SetName( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& request, + Options opts = {}); + + future> SetName( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets an instance's scheduling options. You can only call this method on a @@ -2514,6 +2877,13 @@ class InstancesClient { google::cloud::cpp::compute::v1::Scheduling const& scheduling_resource, Options opts = {}); + StatusOr SetScheduling( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::Scheduling const& scheduling_resource, + Options opts = {}); + // clang-format off /// /// Sets an instance's scheduling options. You can only call this method on a @@ -2557,6 +2927,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr SetScheduling( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request, + Options opts = {}); + + future> SetScheduling( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the Google Cloud Armor security policy for the specified instance. For @@ -2599,6 +2980,14 @@ class InstancesClient { instances_set_security_policy_request_resource, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetSecurityPolicyRequest const& + instances_set_security_policy_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the Google Cloud Armor security policy for the specified instance. For @@ -2639,6 +3028,17 @@ class InstancesClient { SetSecurityPolicyRequest const& request, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const& request, + Options opts = {}); + + future> + SetSecurityPolicy(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the service account on the instance. For more information, read @@ -2680,6 +3080,14 @@ class InstancesClient { instances_set_service_account_request_resource, Options opts = {}); + StatusOr SetServiceAccount( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::InstancesSetServiceAccountRequest const& + instances_set_service_account_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the service account on the instance. For more information, read @@ -2720,6 +3128,17 @@ class InstancesClient { SetServiceAccountRequest const& request, Options opts = {}); + StatusOr SetServiceAccount( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const& request, + Options opts = {}); + + future> + SetServiceAccount(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the Shielded Instance integrity policy for an instance. You can only @@ -2762,6 +3181,15 @@ class InstancesClient { shielded_instance_integrity_policy_resource, Options opts = {}); + StatusOr + SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::ShieldedInstanceIntegrityPolicy const& + shielded_instance_integrity_policy_resource, + Options opts = {}); + // clang-format off /// /// Sets the Shielded Instance integrity policy for an instance. You can only @@ -2804,6 +3232,19 @@ class InstancesClient { SetShieldedInstanceIntegrityPolicyRequest const& request, Options opts = {}); + StatusOr + SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request, + Options opts = {}); + + future> + SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets network tags for the specified instance to the data included in the @@ -2843,6 +3284,13 @@ class InstancesClient { google::cloud::cpp::compute::v1::Tags const& tags_resource, Options opts = {}); + StatusOr SetTags( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::Tags const& tags_resource, + Options opts = {}); + // clang-format off /// /// Sets network tags for the specified instance to the data included in the @@ -2882,6 +3330,16 @@ class InstancesClient { google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request, Options opts = {}); + StatusOr SetTags( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request, + Options opts = {}); + + future> SetTags( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Simulates a host maintenance event on a VM. For more information, see @@ -2918,6 +3376,11 @@ class InstancesClient { SimulateMaintenanceEvent(std::string const& project, std::string const& zone, std::string const& instance, Options opts = {}); + StatusOr SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts = {}); + // clang-format off /// /// Simulates a host maintenance event on a VM. For more information, see @@ -2958,6 +3421,18 @@ class InstancesClient { SimulateMaintenanceEventRequest const& request, Options opts = {}); + StatusOr SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request, + Options opts = {}); + + future> + SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts an instance that was stopped using the instances().stop method. For @@ -2994,6 +3469,11 @@ class InstancesClient { std::string const& project, std::string const& zone, std::string const& instance, Options opts = {}); + StatusOr Start( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts = {}); + // clang-format off /// /// Starts an instance that was stopped using the instances().stop method. For @@ -3033,6 +3513,16 @@ class InstancesClient { google::cloud::cpp::compute::instances::v1::StartRequest const& request, Options opts = {}); + StatusOr Start( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request, + Options opts = {}); + + future> Start( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts an instance that was stopped using the instances().stop method. For @@ -3075,6 +3565,15 @@ class InstancesClient { instances_start_with_encryption_key_request_resource, Options opts = {}); + StatusOr StartWithEncryptionKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1:: + InstancesStartWithEncryptionKeyRequest const& + instances_start_with_encryption_key_request_resource, + Options opts = {}); + // clang-format off /// /// Starts an instance that was stopped using the instances().stop method. For @@ -3115,6 +3614,18 @@ class InstancesClient { StartWithEncryptionKeyRequest const& request, Options opts = {}); + StatusOr StartWithEncryptionKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request, + Options opts = {}); + + future> + StartWithEncryptionKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stops a running instance, shutting it down cleanly, and allows you to @@ -3155,6 +3666,11 @@ class InstancesClient { std::string const& project, std::string const& zone, std::string const& instance, Options opts = {}); + StatusOr Stop( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts = {}); + // clang-format off /// /// Stops a running instance, shutting it down cleanly, and allows you to @@ -3198,6 +3714,16 @@ class InstancesClient { google::cloud::cpp::compute::instances::v1::StopRequest const& request, Options opts = {}); + StatusOr Stop( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request, + Options opts = {}); + + future> Stop( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// This method suspends a running instance, saving its state to persistent @@ -3239,6 +3765,11 @@ class InstancesClient { std::string const& project, std::string const& zone, std::string const& instance, Options opts = {}); + StatusOr Suspend( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, Options opts = {}); + // clang-format off /// /// This method suspends a running instance, saving its state to persistent @@ -3283,6 +3814,16 @@ class InstancesClient { google::cloud::cpp::compute::instances::v1::SuspendRequest const& request, Options opts = {}); + StatusOr Suspend( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& request, + Options opts = {}); + + future> Suspend( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. @@ -3390,6 +3931,13 @@ class InstancesClient { google::cloud::cpp::compute::v1::Instance const& instance_resource, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::Instance const& instance_resource, + Options opts = {}); + // clang-format off /// /// Updates an instance only if the necessary resources are available. This @@ -3431,6 +3979,17 @@ class InstancesClient { request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request, + Options opts = {}); + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified access config from an instance's network interface @@ -3474,6 +4033,14 @@ class InstancesClient { access_config_resource, Options opts = {}); + StatusOr UpdateAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& network_interface, + google::cloud::cpp::compute::v1::AccessConfig const& + access_config_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified access config from an instance's network interface @@ -3515,6 +4082,18 @@ class InstancesClient { UpdateAccessConfigRequest const& request, Options opts = {}); + StatusOr UpdateAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const& request, + Options opts = {}); + + future> + UpdateAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the Display config for a VM instance. You can only use this method @@ -3556,6 +4135,14 @@ class InstancesClient { display_device_resource, Options opts = {}); + StatusOr UpdateDisplayDevice( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::DisplayDevice const& + display_device_resource, + Options opts = {}); + // clang-format off /// /// Updates the Display config for a VM instance. You can only use this method @@ -3597,6 +4184,18 @@ class InstancesClient { UpdateDisplayDeviceRequest const& request, Options opts = {}); + StatusOr UpdateDisplayDevice( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request, + Options opts = {}); + + future> + UpdateDisplayDevice( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an instance's network interface. This method can only update an @@ -3642,6 +4241,14 @@ class InstancesClient { network_interface_resource, Options opts = {}); + StatusOr UpdateNetworkInterface( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, std::string const& network_interface, + google::cloud::cpp::compute::v1::NetworkInterface const& + network_interface_resource, + Options opts = {}); + // clang-format off /// /// Updates an instance's network interface. This method can only update an @@ -3685,6 +4292,18 @@ class InstancesClient { UpdateNetworkInterfaceRequest const& request, Options opts = {}); + StatusOr UpdateNetworkInterface( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request, + Options opts = {}); + + future> + UpdateNetworkInterface( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the Shielded Instance config for an instance. You can only use this @@ -3727,6 +4346,15 @@ class InstancesClient { shielded_instance_config_resource, Options opts = {}); + StatusOr + UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& instance, + google::cloud::cpp::compute::v1::ShieldedInstanceConfig const& + shielded_instance_config_resource, + Options opts = {}); + // clang-format off /// /// Updates the Shielded Instance config for an instance. You can only use this @@ -3769,6 +4397,19 @@ class InstancesClient { UpdateShieldedInstanceConfigRequest const& request, Options opts = {}); + StatusOr + UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request, + Options opts = {}); + + future> + UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..a72a82d4100ae 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,31 @@ InstancesTracingConnection::AddAccessConfig( return internal::EndSpan(std::move(span), child_->AddAccessConfig(request)); } +StatusOr +InstancesTracingConnection::AddAccessConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::AddAccessConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::AddResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -54,6 +79,31 @@ InstancesTracingConnection::AddResourcePolicies( child_->AddResourcePolicies(request)); } +StatusOr +InstancesTracingConnection::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::AddResourcePolicies( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange> InstancesTracingConnection::AggregatedListInstances( @@ -78,6 +128,31 @@ InstancesTracingConnection::AttachDisk( return internal::EndSpan(std::move(span), child_->AttachDisk(request)); } +StatusOr +InstancesTracingConnection::AttachDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::AttachDisk( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& @@ -88,6 +163,31 @@ InstancesTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(request)); } +StatusOr +InstancesTracingConnection::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::BulkInsert( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::DeleteInstance( google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& @@ -98,6 +198,31 @@ InstancesTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +InstancesTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::DeleteAccessConfig( google::cloud::cpp::compute::instances::v1::DeleteAccessConfigRequest const& @@ -109,6 +234,31 @@ InstancesTracingConnection::DeleteAccessConfig( child_->DeleteAccessConfig(request)); } +StatusOr +InstancesTracingConnection::DeleteAccessConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DeleteAccessConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::DetachDisk( google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& @@ -119,6 +269,31 @@ InstancesTracingConnection::DetachDisk( return internal::EndSpan(std::move(span), child_->DetachDisk(request)); } +StatusOr +InstancesTracingConnection::DetachDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::DetachDisk( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InstancesTracingConnection::GetInstance( google::cloud::cpp::compute::instances::v1::GetInstanceRequest const& @@ -200,6 +375,31 @@ InstancesTracingConnection::InsertInstance( return internal::EndSpan(std::move(span), child_->InsertInstance(request)); } +StatusOr +InstancesTracingConnection::InsertInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::InsertInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange InstancesTracingConnection::ListInstances( google::cloud::cpp::compute::instances::v1::ListInstancesRequest request) { @@ -235,6 +435,31 @@ InstancesTracingConnection::PerformMaintenance( child_->PerformMaintenance(request)); } +StatusOr +InstancesTracingConnection::PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::PerformMaintenance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::RemoveResourcePolicies( google::cloud::cpp::compute::instances::v1:: @@ -246,6 +471,31 @@ InstancesTracingConnection::RemoveResourcePolicies( child_->RemoveResourcePolicies(request)); } +StatusOr +InstancesTracingConnection::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::RemoveResourcePolicies( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Reset( google::cloud::cpp::compute::instances::v1::ResetRequest const& request) { @@ -255,6 +505,30 @@ InstancesTracingConnection::Reset( return internal::EndSpan(std::move(span), child_->Reset(request)); } +StatusOr +InstancesTracingConnection::Reset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Reset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Resume( google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) { @@ -264,6 +538,30 @@ InstancesTracingConnection::Resume( return internal::EndSpan(std::move(span), child_->Resume(request)); } +StatusOr +InstancesTracingConnection::Resume( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Resume( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + Status InstancesTracingConnection::SendDiagnosticInterrupt( google::cloud::cpp::compute::instances::v1:: SendDiagnosticInterruptRequest const& request) { @@ -284,6 +582,31 @@ InstancesTracingConnection::SetDeletionProtection( child_->SetDeletionProtection(request)); } +StatusOr +InstancesTracingConnection::SetDeletionProtection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetDeletionProtection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetDiskAutoDelete( google::cloud::cpp::compute::instances::v1::SetDiskAutoDeleteRequest const& @@ -294,6 +617,31 @@ InstancesTracingConnection::SetDiskAutoDelete( return internal::EndSpan(std::move(span), child_->SetDiskAutoDelete(request)); } +StatusOr +InstancesTracingConnection::SetDiskAutoDelete( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetDiskAutoDelete( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InstancesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::instances::v1::SetIamPolicyRequest const& @@ -314,6 +662,31 @@ InstancesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +InstancesTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetLabels( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetMachineResources( google::cloud::cpp::compute::instances::v1:: @@ -325,6 +698,31 @@ InstancesTracingConnection::SetMachineResources( child_->SetMachineResources(request)); } +StatusOr +InstancesTracingConnection::SetMachineResources( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetMachineResources( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetMachineType( google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& @@ -335,6 +733,31 @@ InstancesTracingConnection::SetMachineType( return internal::EndSpan(std::move(span), child_->SetMachineType(request)); } +StatusOr +InstancesTracingConnection::SetMachineType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetMachineType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetMetadata( google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& @@ -345,6 +768,31 @@ InstancesTracingConnection::SetMetadata( return internal::EndSpan(std::move(span), child_->SetMetadata(request)); } +StatusOr +InstancesTracingConnection::SetMetadata( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetMetadata( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetMinCpuPlatform( google::cloud::cpp::compute::instances::v1::SetMinCpuPlatformRequest const& @@ -355,6 +803,31 @@ InstancesTracingConnection::SetMinCpuPlatform( return internal::EndSpan(std::move(span), child_->SetMinCpuPlatform(request)); } +StatusOr +InstancesTracingConnection::SetMinCpuPlatform( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetMinCpuPlatform( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetName( google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) { @@ -364,6 +837,30 @@ InstancesTracingConnection::SetName( return internal::EndSpan(std::move(span), child_->SetName(request)); } +StatusOr +InstancesTracingConnection::SetName( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetName( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetScheduling( google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& @@ -374,6 +871,31 @@ InstancesTracingConnection::SetScheduling( return internal::EndSpan(std::move(span), child_->SetScheduling(request)); } +StatusOr +InstancesTracingConnection::SetScheduling( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetScheduling( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetSecurityPolicy( google::cloud::cpp::compute::instances::v1::SetSecurityPolicyRequest const& @@ -384,6 +906,31 @@ InstancesTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +InstancesTracingConnection::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetSecurityPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetServiceAccount( google::cloud::cpp::compute::instances::v1::SetServiceAccountRequest const& @@ -394,6 +941,31 @@ InstancesTracingConnection::SetServiceAccount( return internal::EndSpan(std::move(span), child_->SetServiceAccount(request)); } +StatusOr +InstancesTracingConnection::SetServiceAccount( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetServiceAccount( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetShieldedInstanceIntegrityPolicy( google::cloud::cpp::compute::instances::v1:: @@ -406,6 +978,33 @@ InstancesTracingConnection::SetShieldedInstanceIntegrityPolicy( child_->SetShieldedInstanceIntegrityPolicy(request)); } +StatusOr +InstancesTracingConnection::SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetShieldedInstanceIntegrityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SetTags( google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) { @@ -415,6 +1014,30 @@ InstancesTracingConnection::SetTags( return internal::EndSpan(std::move(span), child_->SetTags(request)); } +StatusOr +InstancesTracingConnection::SetTags( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SetTags( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::SimulateMaintenanceEvent( google::cloud::cpp::compute::instances::v1:: @@ -426,6 +1049,31 @@ InstancesTracingConnection::SimulateMaintenanceEvent( child_->SimulateMaintenanceEvent(request)); } +StatusOr +InstancesTracingConnection::SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::SimulateMaintenanceEvent( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Start( google::cloud::cpp::compute::instances::v1::StartRequest const& request) { @@ -435,6 +1083,30 @@ InstancesTracingConnection::Start( return internal::EndSpan(std::move(span), child_->Start(request)); } +StatusOr +InstancesTracingConnection::Start( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Start( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::StartWithEncryptionKey( google::cloud::cpp::compute::instances::v1:: @@ -446,6 +1118,31 @@ InstancesTracingConnection::StartWithEncryptionKey( child_->StartWithEncryptionKey(request)); } +StatusOr +InstancesTracingConnection::StartWithEncryptionKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::StartWithEncryptionKey( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Stop( google::cloud::cpp::compute::instances::v1::StopRequest const& request) { @@ -455,6 +1152,30 @@ InstancesTracingConnection::Stop( return internal::EndSpan(std::move(span), child_->Stop(request)); } +StatusOr +InstancesTracingConnection::Stop( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Stop( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::Suspend( google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) { @@ -464,6 +1185,30 @@ InstancesTracingConnection::Suspend( return internal::EndSpan(std::move(span), child_->Suspend(request)); } +StatusOr +InstancesTracingConnection::Suspend( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::Suspend( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InstancesTracingConnection::TestIamPermissions( google::cloud::cpp::compute::instances::v1::TestIamPermissionsRequest const& @@ -484,6 +1229,31 @@ InstancesTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +InstancesTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::UpdateAccessConfig( google::cloud::cpp::compute::instances::v1::UpdateAccessConfigRequest const& @@ -495,6 +1265,31 @@ InstancesTracingConnection::UpdateAccessConfig( child_->UpdateAccessConfig(request)); } +StatusOr +InstancesTracingConnection::UpdateAccessConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateAccessConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::UpdateDisplayDevice( google::cloud::cpp::compute::instances::v1:: @@ -506,6 +1301,31 @@ InstancesTracingConnection::UpdateDisplayDevice( child_->UpdateDisplayDevice(request)); } +StatusOr +InstancesTracingConnection::UpdateDisplayDevice( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateDisplayDevice( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::UpdateNetworkInterface( google::cloud::cpp::compute::instances::v1:: @@ -517,6 +1337,31 @@ InstancesTracingConnection::UpdateNetworkInterface( child_->UpdateNetworkInterface(request)); } +StatusOr +InstancesTracingConnection::UpdateNetworkInterface( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateNetworkInterface( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstancesTracingConnection::UpdateShieldedInstanceConfig( google::cloud::cpp::compute::instances::v1:: @@ -529,6 +1374,33 @@ InstancesTracingConnection::UpdateShieldedInstanceConfig( child_->UpdateShieldedInstanceConfig(request)); } +StatusOr +InstancesTracingConnection::UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstancesTracingConnection::UpdateShieldedInstanceConfig( + google::cloud::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( + google::cloud::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..d427194c5734a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request) override; + + future> AddAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> AddResourcePolicies(google::cloud::cpp::compute::instances::v1:: AddResourcePoliciesRequest const& request) override; + StatusOr AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request) override; + + future> + AddResourcePolicies( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request) override; + + future> AttachDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> BulkInsert( google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& request) override; + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request) override; + + future> BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteInstance( google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request) override; + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteAccessConfig(google::cloud::cpp::compute::instances::v1:: DeleteAccessConfigRequest const& request) override; + StatusOr DeleteAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request) override; + + future> + DeleteAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DetachDisk( google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& request) override; + StatusOr DetachDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request) override; + + future> DetachDisk( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request) override; + + future> InsertInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request) override; + + future> + PerformMaintenance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemoveResourcePolicies( google::cloud::cpp::compute::instances::v1:: RemoveResourcePoliciesRequest const& request) override; + StatusOr RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Reset( google::cloud::cpp::compute::instances::v1::ResetRequest const& request) override; + StatusOr Reset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request) + override; + + future> Reset( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Resume( google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) override; + StatusOr Resume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& request) + override; + + future> Resume( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request) override; + + future> + SetDeletionProtection( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetDiskAutoDelete(google::cloud::cpp::compute::instances::v1:: SetDiskAutoDeleteRequest const& request) override; + StatusOr SetDiskAutoDelete( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request) override; + + future> + SetDiskAutoDelete( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMachineResources(google::cloud::cpp::compute::instances::v1:: SetMachineResourcesRequest const& request) override; + StatusOr SetMachineResources( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request) override; + + future> + SetMachineResources( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMachineType( google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& request) override; + StatusOr SetMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request) override; + + future> SetMachineType( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMetadata( google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& request) override; + StatusOr SetMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request) override; + + future> SetMetadata( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetMinCpuPlatform(google::cloud::cpp::compute::instances::v1:: SetMinCpuPlatformRequest const& request) override; + StatusOr SetMinCpuPlatform( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request) override; + + future> + SetMinCpuPlatform( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetName( google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) override; + StatusOr SetName( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& request) + override; + + future> SetName( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetScheduling( google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& request) override; + StatusOr SetScheduling( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request) override; + + future> SetScheduling( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetSecurityPolicy(google::cloud::cpp::compute::instances::v1:: SetSecurityPolicyRequest const& request) override; + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetServiceAccount(google::cloud::cpp::compute::instances::v1:: SetServiceAccountRequest const& request) override; + StatusOr SetServiceAccount( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const& request) override; + + future> + SetServiceAccount( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetShieldedInstanceIntegrityPolicy( google::cloud::cpp::compute::instances::v1:: SetShieldedInstanceIntegrityPolicyRequest const& request) override; + StatusOr + SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request) override; + + future> + SetShieldedInstanceIntegrityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetTags( google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) override; + StatusOr SetTags( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& request) + override; + + future> SetTags( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SimulateMaintenanceEvent( google::cloud::cpp::compute::instances::v1:: SimulateMaintenanceEventRequest const& request) override; + StatusOr SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request) override; + + future> + SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Start( google::cloud::cpp::compute::instances::v1::StartRequest const& request) override; + StatusOr Start( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request) + override; + + future> Start( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> StartWithEncryptionKey( google::cloud::cpp::compute::instances::v1:: StartWithEncryptionKeyRequest const& request) override; + StatusOr StartWithEncryptionKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request) override; + + future> + StartWithEncryptionKey( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Stop( google::cloud::cpp::compute::instances::v1::StopRequest const& request) override; + StatusOr Stop( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request) + override; + + future> Stop( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> Suspend( google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) override; + StatusOr Suspend( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& request) + override; + + future> Suspend( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request) override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateAccessConfig(google::cloud::cpp::compute::instances::v1:: UpdateAccessConfigRequest const& request) override; + StatusOr UpdateAccessConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const& request) override; + + future> + UpdateAccessConfig( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateDisplayDevice(google::cloud::cpp::compute::instances::v1:: UpdateDisplayDeviceRequest const& request) override; + StatusOr UpdateDisplayDevice( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request) override; + + future> + UpdateDisplayDevice( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdateNetworkInterface( google::cloud::cpp::compute::instances::v1:: UpdateNetworkInterfaceRequest const& request) override; + StatusOr UpdateNetworkInterface( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request) override; + future> + UpdateNetworkInterface( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + + future> + UpdateShieldedInstanceConfig( + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request) override; + + StatusOr UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::cloud::cpp::compute::instances::v1:: UpdateShieldedInstanceConfigRequest const& request) override; + future> + UpdateShieldedInstanceConfig( + google::cloud::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..e8d805e9599da 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AddAccessConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddAccessConfig, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + AddResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddResourcePolicies, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::AttachDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AttachDisk, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::BulkInsertRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkInsert, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DeleteInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + DeleteAccessConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAccessConfig, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::DetachDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DetachDisk, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::InsertInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + PerformMaintenanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PerformMaintenance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + RemoveResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveResourcePolicies, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResetRequest const& request), + (override)); + + MOCK_METHOD(future>, + Reset, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::ResumeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Resume, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDeletionProtectionRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetDeletionProtection, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetDiskAutoDeleteRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetDiskAutoDelete, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMachineResourcesRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetMachineResources, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMachineTypeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetMachineType, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetMetadataRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetMetadata, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetMinCpuPlatformRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetMinCpuPlatform, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetNameRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetName, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetSchedulingRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetScheduling, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetServiceAccountRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetServiceAccount, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SetShieldedInstanceIntegrityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetShieldedInstanceIntegrityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SetTagsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetTags, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + SimulateMaintenanceEventRequest const& request), + (override)); + + MOCK_METHOD(future>, + SimulateMaintenanceEvent, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StartRequest const& request), + (override)); + + MOCK_METHOD(future>, + Start, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + StartWithEncryptionKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartWithEncryptionKey, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::StopRequest const& request), + (override)); + + MOCK_METHOD(future>, + Stop, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::SuspendRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Suspend, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1::UpdateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateAccessConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAccessConfig, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateDisplayDeviceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDisplayDevice, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateNetworkInterfaceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateNetworkInterface, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::instances::v1:: + UpdateShieldedInstanceConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateShieldedInstanceConfig, + (google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/compute/integration_tests/compute_integration_test.cc b/google/cloud/compute/integration_tests/compute_integration_test.cc index f64310f92c315..f49912006bd45 100644 --- a/google/cloud/compute/integration_tests/compute_integration_test.cc +++ b/google/cloud/compute/integration_tests/compute_integration_test.cc @@ -89,8 +89,24 @@ TEST_F(ComputeIntegrationTest, CreateDisks) { disk.set_name(CreateRandomName("int-test-disk-")); disk.set_size_gb("10"); (*disk.mutable_labels())["test"] = "test"; - auto result = client.InsertDisk(project_id_, zone_, disk).get(); - ASSERT_THAT(result, testing_util::IsOk()); + // auto result = client.InsertDisk(project_id_, zone_, disk).get(); + // ASSERT_THAT(result, testing_util::IsOk()); + + auto start_result = client.InsertDisk(ExperimentalTag{}, NoAwaitTag{}, + project_id_, zone_, disk); + ASSERT_THAT(start_result, testing_util::IsOk()); + std::cout << __func__ << ": start_result=" << start_result->DebugString() + << std::endl; + std::string operation_string; + EXPECT_TRUE(start_result->SerializeToString(&operation_string)); + + google::cloud::cpp::compute::v1::Operation operation; + EXPECT_TRUE(operation.ParseFromString(operation_string)); + + // auto await_result = client.InsertDisk(ExperimentalTag{}, + // *start_result).get(); + auto await_result = client.InsertDisk(ExperimentalTag{}, operation).get(); + ASSERT_THAT(await_result, testing_util::IsOk()); auto get_disk = client.GetDisk(project_id_, zone_, disk.name()); ASSERT_THAT(get_disk, IsOk()); diff --git a/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_client.cc b/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_client.cc index 788b35b0423d8..3365ccfddba92 100644 --- a/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_client.cc +++ b/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_client.cc @@ -67,6 +67,21 @@ InterconnectAttachmentsClient::DeleteInterconnectAttachment( return connection_->DeleteInterconnectAttachment(request); } +StatusOr +InterconnectAttachmentsClient::DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& interconnect_attachment, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest request; + request.set_project(project); + request.set_region(region); + request.set_interconnect_attachment(interconnect_attachment); + return connection_->DeleteInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InterconnectAttachmentsClient::DeleteInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -76,6 +91,26 @@ InterconnectAttachmentsClient::DeleteInterconnectAttachment( return connection_->DeleteInterconnectAttachment(request); } +StatusOr +InterconnectAttachmentsClient::DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InterconnectAttachmentsClient::DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInterconnectAttachment( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr InterconnectAttachmentsClient::GetInterconnectAttachment( std::string const& project, std::string const& region, @@ -114,6 +149,24 @@ InterconnectAttachmentsClient::InsertInterconnectAttachment( return connection_->InsertInterconnectAttachment(request); } +StatusOr +InterconnectAttachmentsClient::InsertInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::InterconnectAttachment const& + interconnect_attachment_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_interconnect_attachment_resource() = + interconnect_attachment_resource; + return connection_->InsertInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InterconnectAttachmentsClient::InsertInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -123,6 +176,26 @@ InterconnectAttachmentsClient::InsertInterconnectAttachment( return connection_->InsertInterconnectAttachment(request); } +StatusOr +InterconnectAttachmentsClient::InsertInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InterconnectAttachmentsClient::InsertInterconnectAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInterconnectAttachment( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange InterconnectAttachmentsClient::ListInterconnectAttachments( std::string const& project, std::string const& region, Options opts) { @@ -161,6 +234,26 @@ InterconnectAttachmentsClient::PatchInterconnectAttachment( return connection_->PatchInterconnectAttachment(request); } +StatusOr +InterconnectAttachmentsClient::PatchInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& interconnect_attachment, + google::cloud::cpp::compute::v1::InterconnectAttachment const& + interconnect_attachment_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest request; + request.set_project(project); + request.set_region(region); + request.set_interconnect_attachment(interconnect_attachment); + *request.mutable_interconnect_attachment_resource() = + interconnect_attachment_resource; + return connection_->PatchInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InterconnectAttachmentsClient::PatchInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -170,6 +263,26 @@ InterconnectAttachmentsClient::PatchInterconnectAttachment( return connection_->PatchInterconnectAttachment(request); } +StatusOr +InterconnectAttachmentsClient::PatchInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InterconnectAttachmentsClient::PatchInterconnectAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInterconnectAttachment( + google::cloud::ExperimentalTag{}, operation); +} + future> InterconnectAttachmentsClient::SetLabels( std::string const& project, std::string const& region, @@ -188,6 +301,26 @@ InterconnectAttachmentsClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +InterconnectAttachmentsClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::interconnect_attachments::v1::SetLabelsRequest + request; + request.set_project(project); + request.set_region(region); + request.set_resource(resource); + *request.mutable_region_set_labels_request_resource() = + region_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InterconnectAttachmentsClient::SetLabels( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -197,6 +330,25 @@ InterconnectAttachmentsClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +InterconnectAttachmentsClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InterconnectAttachmentsClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_interconnect_attachments_v1 } // namespace cloud diff --git a/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_client.h b/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_client.h index 550275f4033cd..7a124713606f3 100644 --- a/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_client.h +++ b/google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INTERCONNECT_ATTACHMENTS_V1_INTERCONNECT_ATTACHMENTS_CLIENT_H #include "google/cloud/compute/interconnect_attachments/v1/interconnect_attachments_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -213,6 +215,14 @@ class InterconnectAttachmentsClient { std::string const& interconnect_attachment, Options opts = {}); + StatusOr + DeleteInterconnectAttachment(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& interconnect_attachment, + Options opts = {}); + // clang-format off /// /// Deletes the specified interconnect attachment. @@ -253,6 +263,19 @@ class InterconnectAttachmentsClient { DeleteInterconnectAttachmentRequest const& request, Options opts = {}); + StatusOr + DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request, + Options opts = {}); + + future> + DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified interconnect attachment. @@ -357,6 +380,14 @@ class InterconnectAttachmentsClient { interconnect_attachment_resource, Options opts = {}); + StatusOr + InsertInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::InterconnectAttachment const& + interconnect_attachment_resource, + Options opts = {}); + // clang-format off /// /// Creates an InterconnectAttachment in the specified project using the data @@ -398,6 +429,19 @@ class InterconnectAttachmentsClient { InsertInterconnectAttachmentRequest const& request, Options opts = {}); + StatusOr + InsertInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request, + Options opts = {}); + + future> + InsertInterconnectAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of interconnect attachments contained within the @@ -522,6 +566,15 @@ class InterconnectAttachmentsClient { interconnect_attachment_resource, Options opts = {}); + StatusOr + PatchInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& interconnect_attachment, + google::cloud::cpp::compute::v1::InterconnectAttachment const& + interconnect_attachment_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified interconnect attachment with the data included in the @@ -564,6 +617,19 @@ class InterconnectAttachmentsClient { PatchInterconnectAttachmentRequest const& request, Options opts = {}); + StatusOr + PatchInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request, + Options opts = {}); + + future> + PatchInterconnectAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the labels on an InterconnectAttachment. To learn more about labels, @@ -604,6 +670,14 @@ class InterconnectAttachmentsClient { region_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on an InterconnectAttachment. To learn more about labels, @@ -644,6 +718,17 @@ class InterconnectAttachmentsClient { SetLabelsRequest const& request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..ed4f58cb0720c 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InterconnectAttachmentsTracingConnection::DeleteInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InterconnectAttachmentsTracingConnection::GetInterconnectAttachment( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -88,6 +115,33 @@ InterconnectAttachmentsTracingConnection::InsertInterconnectAttachment( child_->InsertInterconnectAttachment(request)); } +StatusOr +InterconnectAttachmentsTracingConnection::InsertInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InterconnectAttachmentsTracingConnection::InsertInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange InterconnectAttachmentsTracingConnection::ListInterconnectAttachments( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -114,6 +168,33 @@ InterconnectAttachmentsTracingConnection::PatchInterconnectAttachment( child_->PatchInterconnectAttachment(request)); } +StatusOr +InterconnectAttachmentsTracingConnection::PatchInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InterconnectAttachmentsTracingConnection::PatchInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InterconnectAttachmentsTracingConnection::SetLabels( google::cloud::cpp::compute::interconnect_attachments::v1:: @@ -125,6 +206,33 @@ InterconnectAttachmentsTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +InterconnectAttachmentsTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InterconnectAttachmentsTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..da91e01372170 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request) override; + + future> + DeleteInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request) override; + + future> + InsertInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request) override; + + future> + PatchInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + google::cloud::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..4cd3f9d515393 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + DeleteInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInterconnectAttachment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + InsertInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInterconnectAttachment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + PatchInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInterconnectAttachment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnect_attachments::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.h b/google/cloud/compute/interconnect_locations/v1/interconnect_locations_client.h index 7e4de2ebc6170..d350c01828cc9 100644 --- a/google/cloud/compute/interconnect_locations/v1/interconnect_locations_client.h +++ b/google/cloud/compute/interconnect_locations/v1/interconnect_locations_client.h @@ -21,6 +21,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INTERCONNECT_LOCATIONS_V1_INTERCONNECT_LOCATIONS_CLIENT_H #include "google/cloud/compute/interconnect_locations/v1/interconnect_locations_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_client.h index 13216d361cf81..23ba490ff1bf6 100644 --- a/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_client.h +++ b/google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_client.h @@ -21,6 +21,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INTERCONNECT_REMOTE_LOCATIONS_V1_INTERCONNECT_REMOTE_LOCATIONS_CLIENT_H #include "google/cloud/compute/interconnect_remote_locations/v1/interconnect_remote_locations_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/compute/interconnects/v1/interconnects_client.cc index 62b7caa34976d..8eab0c5fad068 100644 --- a/google/cloud/compute/interconnects/v1/interconnects_client.cc +++ b/google/cloud/compute/interconnects/v1/interconnects_client.cc @@ -44,6 +44,21 @@ InterconnectsClient::DeleteInterconnect(std::string const& project, return connection_->DeleteInterconnect(request); } +StatusOr +InterconnectsClient::DeleteInterconnect(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& interconnect, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::interconnects::v1::DeleteInterconnectRequest + request; + request.set_project(project); + request.set_interconnect(interconnect); + return connection_->DeleteInterconnect(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InterconnectsClient::DeleteInterconnect( google::cloud::cpp::compute::interconnects::v1:: @@ -53,6 +68,26 @@ InterconnectsClient::DeleteInterconnect( return connection_->DeleteInterconnect(request); } +StatusOr +InterconnectsClient::DeleteInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInterconnect(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InterconnectsClient::DeleteInterconnect( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInterconnect(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr InterconnectsClient::GetInterconnect(std::string const& project, std::string const& interconnect, @@ -128,6 +163,21 @@ InterconnectsClient::InsertInterconnect( return connection_->InsertInterconnect(request); } +StatusOr +InterconnectsClient::InsertInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Interconnect const& interconnect_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::interconnects::v1::InsertInterconnectRequest + request; + request.set_project(project); + *request.mutable_interconnect_resource() = interconnect_resource; + return connection_->InsertInterconnect(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InterconnectsClient::InsertInterconnect( google::cloud::cpp::compute::interconnects::v1:: @@ -137,6 +187,26 @@ InterconnectsClient::InsertInterconnect( return connection_->InsertInterconnect(request); } +StatusOr +InterconnectsClient::InsertInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInterconnect(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InterconnectsClient::InsertInterconnect( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInterconnect(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange InterconnectsClient::ListInterconnects(std::string const& project, Options opts) { @@ -170,6 +240,22 @@ InterconnectsClient::PatchInterconnect( return connection_->PatchInterconnect(request); } +StatusOr +InterconnectsClient::PatchInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& interconnect, + google::cloud::cpp::compute::v1::Interconnect const& interconnect_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::interconnects::v1::PatchInterconnectRequest + request; + request.set_project(project); + request.set_interconnect(interconnect); + *request.mutable_interconnect_resource() = interconnect_resource; + return connection_->PatchInterconnect(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InterconnectsClient::PatchInterconnect( google::cloud::cpp::compute::interconnects::v1:: @@ -179,6 +265,26 @@ InterconnectsClient::PatchInterconnect( return connection_->PatchInterconnect(request); } +StatusOr +InterconnectsClient::PatchInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInterconnect(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InterconnectsClient::PatchInterconnect( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInterconnect(google::cloud::ExperimentalTag{}, + operation); +} + future> InterconnectsClient::SetLabels( std::string const& project, std::string const& resource, @@ -194,6 +300,23 @@ InterconnectsClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +InterconnectsClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest request; + request.set_project(project); + request.set_resource(resource); + *request.mutable_global_set_labels_request_resource() = + global_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InterconnectsClient::SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& @@ -203,6 +326,25 @@ InterconnectsClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +InterconnectsClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InterconnectsClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_interconnects_v1 } // namespace cloud diff --git a/google/cloud/compute/interconnects/v1/interconnects_client.h b/google/cloud/compute/interconnects/v1/interconnects_client.h index ae3ab3519d817..6e70c691995d1 100644 --- a/google/cloud/compute/interconnects/v1/interconnects_client.h +++ b/google/cloud/compute/interconnects/v1/interconnects_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_INTERCONNECTS_V1_INTERCONNECTS_CLIENT_H #include "google/cloud/compute/interconnects/v1/interconnects_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -121,6 +123,11 @@ class InterconnectsClient { DeleteInterconnect(std::string const& project, std::string const& interconnect, Options opts = {}); + StatusOr DeleteInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& interconnect, + Options opts = {}); + // clang-format off /// /// Deletes the specified Interconnect. @@ -160,6 +167,18 @@ class InterconnectsClient { DeleteInterconnectRequest const& request, Options opts = {}); + StatusOr DeleteInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request, + Options opts = {}); + + future> + DeleteInterconnect( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified Interconnect. Get a list of available Interconnects @@ -392,6 +411,13 @@ class InterconnectsClient { interconnect_resource, Options opts = {}); + StatusOr InsertInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Interconnect const& + interconnect_resource, + Options opts = {}); + // clang-format off /// /// Creates an Interconnect in the specified project using the data included in @@ -432,6 +458,18 @@ class InterconnectsClient { InsertInterconnectRequest const& request, Options opts = {}); + StatusOr InsertInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request, + Options opts = {}); + + future> + InsertInterconnect( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of Interconnects available to the specified project. @@ -548,6 +586,13 @@ class InterconnectsClient { interconnect_resource, Options opts = {}); + StatusOr PatchInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& interconnect, + google::cloud::cpp::compute::v1::Interconnect const& + interconnect_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified Interconnect with the data included in the request. @@ -589,6 +634,17 @@ class InterconnectsClient { PatchInterconnectRequest const& request, Options opts = {}); + StatusOr PatchInterconnect( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request, + Options opts = {}); + + future> + PatchInterconnect(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the labels on an Interconnect. To learn more about labels, read the @@ -627,6 +683,13 @@ class InterconnectsClient { global_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on an Interconnect. To learn more about labels, read the @@ -667,6 +730,17 @@ class InterconnectsClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..bab3da06d545c 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,31 @@ InterconnectsTracingConnection::DeleteInterconnect( child_->DeleteInterconnect(request)); } +StatusOr +InterconnectsTracingConnection::DeleteInterconnect( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InterconnectsTracingConnection::DeleteInterconnect( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr InterconnectsTracingConnection::GetInterconnect( google::cloud::cpp::compute::interconnects::v1:: @@ -85,6 +110,31 @@ InterconnectsTracingConnection::InsertInterconnect( child_->InsertInterconnect(request)); } +StatusOr +InterconnectsTracingConnection::InsertInterconnect( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InterconnectsTracingConnection::InsertInterconnect( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange InterconnectsTracingConnection::ListInterconnects( google::cloud::cpp::compute::interconnects::v1::ListInterconnectsRequest @@ -108,6 +158,31 @@ InterconnectsTracingConnection::PatchInterconnect( return internal::EndSpan(std::move(span), child_->PatchInterconnect(request)); } +StatusOr +InterconnectsTracingConnection::PatchInterconnect( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InterconnectsTracingConnection::PatchInterconnect( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InterconnectsTracingConnection::SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& @@ -118,6 +193,31 @@ InterconnectsTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +InterconnectsTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InterconnectsTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..4a614ee21b041 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request) override; + + future> + DeleteInterconnect( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request) override; + + future> + InsertInterconnect( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request) override; + + future> + PatchInterconnect( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetLabels( google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& request) override; + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::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..be42f95efeeb9 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + DeleteInterconnectRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInterconnect, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + InsertInterconnectRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInterconnect, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1:: + PatchInterconnectRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInterconnect, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::interconnects::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.h b/google/cloud/compute/license_codes/v1/license_codes_client.h index 93c0a2fe063ad..b154297fdbb6d 100644 --- a/google/cloud/compute/license_codes/v1/license_codes_client.h +++ b/google/cloud/compute/license_codes/v1/license_codes_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_LICENSE_CODES_V1_LICENSE_CODES_CLIENT_H #include "google/cloud/compute/license_codes/v1/license_codes_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..1cefd2994129a 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,31 @@ LicensesTracingConnection::DeleteLicense( return internal::EndSpan(std::move(span), child_->DeleteLicense(request)); } +StatusOr +LicensesTracingConnection::DeleteLicense( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LicensesTracingConnection::DeleteLicense( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr LicensesTracingConnection::GetLicense( google::cloud::cpp::compute::licenses::v1::GetLicenseRequest const& @@ -73,6 +98,31 @@ LicensesTracingConnection::InsertLicense( return internal::EndSpan(std::move(span), child_->InsertLicense(request)); } +StatusOr +LicensesTracingConnection::InsertLicense( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LicensesTracingConnection::InsertLicense( + google::cloud::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(google::cloud::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..3c600a759e46d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request) override; + + future> DeleteLicense( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request) override; + + future> InsertLicense( + google::cloud::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_client.cc b/google/cloud/compute/licenses/v1/licenses_client.cc index c8dc29ea5133a..c68537e2688c9 100644 --- a/google/cloud/compute/licenses/v1/licenses_client.cc +++ b/google/cloud/compute/licenses/v1/licenses_client.cc @@ -42,6 +42,19 @@ LicensesClient::DeleteLicense(std::string const& project, return connection_->DeleteLicense(request); } +StatusOr +LicensesClient::DeleteLicense(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& license, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest request; + request.set_project(project); + request.set_license(license); + return connection_->DeleteLicense(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LicensesClient::DeleteLicense( google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& @@ -51,6 +64,26 @@ LicensesClient::DeleteLicense( return connection_->DeleteLicense(request); } +StatusOr +LicensesClient::DeleteLicense( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLicense(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LicensesClient::DeleteLicense( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLicense(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr LicensesClient::GetLicense( std::string const& project, std::string const& license, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -96,6 +129,20 @@ LicensesClient::InsertLicense( return connection_->InsertLicense(request); } +StatusOr +LicensesClient::InsertLicense( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::License const& license_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest request; + request.set_project(project); + *request.mutable_license_resource() = license_resource; + return connection_->InsertLicense(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LicensesClient::InsertLicense( google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& @@ -105,6 +152,26 @@ LicensesClient::InsertLicense( return connection_->InsertLicense(request); } +StatusOr +LicensesClient::InsertLicense( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertLicense(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LicensesClient::InsertLicense( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertLicense(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange LicensesClient::ListLicenses(std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/compute/licenses/v1/licenses_client.h b/google/cloud/compute/licenses/v1/licenses_client.h index b7190b9c6bfec..ade98e234edca 100644 --- a/google/cloud/compute/licenses/v1/licenses_client.h +++ b/google/cloud/compute/licenses/v1/licenses_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_LICENSES_V1_LICENSES_CLIENT_H #include "google/cloud/compute/licenses/v1/licenses_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -119,6 +121,11 @@ class LicensesClient { std::string const& project, std::string const& license, Options opts = {}); + StatusOr DeleteLicense( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& license, + Options opts = {}); + // clang-format off /// /// Deletes the specified license. *Caution* This resource is intended for use @@ -159,6 +166,17 @@ class LicensesClient { request, Options opts = {}); + StatusOr DeleteLicense( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request, + Options opts = {}); + + future> DeleteLicense( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified License resource. *Caution* This resource is intended @@ -326,6 +344,12 @@ class LicensesClient { google::cloud::cpp::compute::v1::License const& license_resource, Options opts = {}); + StatusOr InsertLicense( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::License const& license_resource, + Options opts = {}); + // clang-format off /// /// Create a License resource in the specified project. *Caution* This resource @@ -367,6 +391,17 @@ class LicensesClient { request, Options opts = {}); + StatusOr InsertLicense( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request, + Options opts = {}); + + future> InsertLicense( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of licenses available in the specified project. This 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..9fb4403e9e5de 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::DeleteLicenseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteLicense, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::licenses::v1::InsertLicenseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertLicense, + (google::cloud::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..6b916864b88fe 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,31 @@ MachineImagesTracingConnection::DeleteMachineImage( child_->DeleteMachineImage(request)); } +StatusOr +MachineImagesTracingConnection::DeleteMachineImage( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MachineImagesTracingConnection::DeleteMachineImage( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr MachineImagesTracingConnection::GetMachineImage( google::cloud::cpp::compute::machine_images::v1:: @@ -75,6 +100,31 @@ MachineImagesTracingConnection::InsertMachineImage( child_->InsertMachineImage(request)); } +StatusOr +MachineImagesTracingConnection::InsertMachineImage( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MachineImagesTracingConnection::InsertMachineImage( + google::cloud::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(google::cloud::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..ebf957a9da701 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request) override; + + future> + DeleteMachineImage( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request) override; + + future> + InsertMachineImage( + google::cloud::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_client.cc b/google/cloud/compute/machine_images/v1/machine_images_client.cc index 470b4fe05c138..aff7969c62803 100644 --- a/google/cloud/compute/machine_images/v1/machine_images_client.cc +++ b/google/cloud/compute/machine_images/v1/machine_images_client.cc @@ -44,6 +44,21 @@ MachineImagesClient::DeleteMachineImage(std::string const& project, return connection_->DeleteMachineImage(request); } +StatusOr +MachineImagesClient::DeleteMachineImage(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& machine_image, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::machine_images::v1::DeleteMachineImageRequest + request; + request.set_project(project); + request.set_machine_image(machine_image); + return connection_->DeleteMachineImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MachineImagesClient::DeleteMachineImage( google::cloud::cpp::compute::machine_images::v1:: @@ -53,6 +68,26 @@ MachineImagesClient::DeleteMachineImage( return connection_->DeleteMachineImage(request); } +StatusOr +MachineImagesClient::DeleteMachineImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMachineImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MachineImagesClient::DeleteMachineImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMachineImage(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr MachineImagesClient::GetMachineImage(std::string const& project, std::string const& machine_image, @@ -106,6 +141,21 @@ MachineImagesClient::InsertMachineImage( return connection_->InsertMachineImage(request); } +StatusOr +MachineImagesClient::InsertMachineImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::MachineImage const& machine_image_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::machine_images::v1::InsertMachineImageRequest + request; + request.set_project(project); + *request.mutable_machine_image_resource() = machine_image_resource; + return connection_->InsertMachineImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MachineImagesClient::InsertMachineImage( google::cloud::cpp::compute::machine_images::v1:: @@ -115,6 +165,26 @@ MachineImagesClient::InsertMachineImage( return connection_->InsertMachineImage(request); } +StatusOr +MachineImagesClient::InsertMachineImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertMachineImage(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MachineImagesClient::InsertMachineImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertMachineImage(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange MachineImagesClient::ListMachineImages(std::string const& project, Options opts) { diff --git a/google/cloud/compute/machine_images/v1/machine_images_client.h b/google/cloud/compute/machine_images/v1/machine_images_client.h index d508f196fb98d..c6ece61e22d93 100644 --- a/google/cloud/compute/machine_images/v1/machine_images_client.h +++ b/google/cloud/compute/machine_images/v1/machine_images_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_MACHINE_IMAGES_V1_MACHINE_IMAGES_CLIENT_H #include "google/cloud/compute/machine_images/v1/machine_images_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -121,6 +123,11 @@ class MachineImagesClient { DeleteMachineImage(std::string const& project, std::string const& machine_image, Options opts = {}); + StatusOr DeleteMachineImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& machine_image, + Options opts = {}); + // clang-format off /// /// Deletes the specified machine image. Deleting a machine image is permanent @@ -161,6 +168,18 @@ class MachineImagesClient { DeleteMachineImageRequest const& request, Options opts = {}); + StatusOr DeleteMachineImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request, + Options opts = {}); + + future> + DeleteMachineImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified machine image. @@ -324,6 +343,13 @@ class MachineImagesClient { machine_image_resource, Options opts = {}); + StatusOr InsertMachineImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::MachineImage const& + machine_image_resource, + Options opts = {}); + // clang-format off /// /// Creates a machine image in the specified project using the data that is @@ -366,6 +392,18 @@ class MachineImagesClient { InsertMachineImageRequest const& request, Options opts = {}); + StatusOr InsertMachineImage( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request, + Options opts = {}); + + future> + InsertMachineImage( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of machine images that are contained within the specified 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..6921398d0d101 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + DeleteMachineImageRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteMachineImage, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::machine_images::v1:: + InsertMachineImageRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertMachineImage, + (google::cloud::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_client.h b/google/cloud/compute/machine_types/v1/machine_types_client.h index c750eab1b66e0..c513a69f9df71 100644 --- a/google/cloud/compute/machine_types/v1/machine_types_client.h +++ b/google/cloud/compute/machine_types/v1/machine_types_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_MACHINE_TYPES_V1_MACHINE_TYPES_CLIENT_H #include "google/cloud/compute/machine_types/v1/machine_types_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..579320c7be11c 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,33 @@ NetworkAttachmentsTracingConnection::DeleteNetworkAttachment( child_->DeleteNetworkAttachment(request)); } +StatusOr +NetworkAttachmentsTracingConnection::DeleteNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkAttachmentsTracingConnection::DeleteNetworkAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetworkAttachmentsTracingConnection::GetNetworkAttachment( google::cloud::cpp::compute::network_attachments::v1:: @@ -97,6 +124,33 @@ NetworkAttachmentsTracingConnection::InsertNetworkAttachment( child_->InsertNetworkAttachment(request)); } +StatusOr +NetworkAttachmentsTracingConnection::InsertNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkAttachmentsTracingConnection::InsertNetworkAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkAttachmentsTracingConnection::ListNetworkAttachments( google::cloud::cpp::compute::network_attachments::v1:: @@ -123,6 +177,33 @@ NetworkAttachmentsTracingConnection::PatchNetworkAttachment( child_->PatchNetworkAttachment(request)); } +StatusOr +NetworkAttachmentsTracingConnection::PatchNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkAttachmentsTracingConnection::PatchNetworkAttachment( + google::cloud::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( + google::cloud::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..f5983691814ff 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request) override; + + future> + DeleteNetworkAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request) override; + + future> + InsertNetworkAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request) override; + + future> + PatchNetworkAttachment( + google::cloud::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..6676f35bdb083 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkAttachment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkAttachment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchNetworkAttachment, + (google::cloud::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_client.cc b/google/cloud/compute/network_attachments/v1/network_attachments_client.cc index 552b7261bd86c..abb0221c7cce2 100644 --- a/google/cloud/compute/network_attachments/v1/network_attachments_client.cc +++ b/google/cloud/compute/network_attachments/v1/network_attachments_client.cc @@ -66,6 +66,21 @@ NetworkAttachmentsClient::DeleteNetworkAttachment( return connection_->DeleteNetworkAttachment(request); } +StatusOr +NetworkAttachmentsClient::DeleteNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_attachment, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest request; + request.set_project(project); + request.set_region(region); + request.set_network_attachment(network_attachment); + return connection_->DeleteNetworkAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkAttachmentsClient::DeleteNetworkAttachment( google::cloud::cpp::compute::network_attachments::v1:: @@ -75,6 +90,26 @@ NetworkAttachmentsClient::DeleteNetworkAttachment( return connection_->DeleteNetworkAttachment(request); } +StatusOr +NetworkAttachmentsClient::DeleteNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkAttachmentsClient::DeleteNetworkAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkAttachment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetworkAttachmentsClient::GetNetworkAttachment( std::string const& project, std::string const& region, @@ -135,6 +170,23 @@ NetworkAttachmentsClient::InsertNetworkAttachment( return connection_->InsertNetworkAttachment(request); } +StatusOr +NetworkAttachmentsClient::InsertNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NetworkAttachment const& + network_attachment_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_network_attachment_resource() = network_attachment_resource; + return connection_->InsertNetworkAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkAttachmentsClient::InsertNetworkAttachment( google::cloud::cpp::compute::network_attachments::v1:: @@ -144,6 +196,26 @@ NetworkAttachmentsClient::InsertNetworkAttachment( return connection_->InsertNetworkAttachment(request); } +StatusOr +NetworkAttachmentsClient::InsertNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkAttachmentsClient::InsertNetworkAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkAttachment(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkAttachmentsClient::ListNetworkAttachments(std::string const& project, std::string const& region, @@ -182,6 +254,25 @@ NetworkAttachmentsClient::PatchNetworkAttachment( return connection_->PatchNetworkAttachment(request); } +StatusOr +NetworkAttachmentsClient::PatchNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_attachment, + google::cloud::cpp::compute::v1::NetworkAttachment const& + network_attachment_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest request; + request.set_project(project); + request.set_region(region); + request.set_network_attachment(network_attachment); + *request.mutable_network_attachment_resource() = network_attachment_resource; + return connection_->PatchNetworkAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkAttachmentsClient::PatchNetworkAttachment( google::cloud::cpp::compute::network_attachments::v1:: @@ -191,6 +282,26 @@ NetworkAttachmentsClient::PatchNetworkAttachment( return connection_->PatchNetworkAttachment(request); } +StatusOr +NetworkAttachmentsClient::PatchNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchNetworkAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkAttachmentsClient::PatchNetworkAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchNetworkAttachment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetworkAttachmentsClient::SetIamPolicy( std::string const& project, std::string const& region, diff --git a/google/cloud/compute/network_attachments/v1/network_attachments_client.h b/google/cloud/compute/network_attachments/v1/network_attachments_client.h index 116ac3d145e08..be30ae989cdf7 100644 --- a/google/cloud/compute/network_attachments/v1/network_attachments_client.h +++ b/google/cloud/compute/network_attachments/v1/network_attachments_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORK_ATTACHMENTS_V1_NETWORK_ATTACHMENTS_CLIENT_H #include "google/cloud/compute/network_attachments/v1/network_attachments_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class NetworkAttachmentsClient { std::string const& network_attachment, Options opts = {}); + StatusOr DeleteNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_attachment, Options opts = {}); + // clang-format off /// /// Deletes the specified NetworkAttachment in the given scope @@ -251,6 +258,18 @@ class NetworkAttachmentsClient { DeleteNetworkAttachmentRequest const& request, Options opts = {}); + StatusOr DeleteNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + DeleteNetworkAttachmentRequest const& request, + Options opts = {}); + + future> + DeleteNetworkAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified NetworkAttachment resource in the given scope. @@ -417,6 +436,13 @@ class NetworkAttachmentsClient { network_attachment_resource, Options opts = {}); + StatusOr InsertNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NetworkAttachment const& + network_attachment_resource, + Options opts = {}); + // clang-format off /// /// Creates a NetworkAttachment in the specified project in the given scope @@ -457,6 +483,18 @@ class NetworkAttachmentsClient { InsertNetworkAttachmentRequest const& request, Options opts = {}); + StatusOr InsertNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + InsertNetworkAttachmentRequest const& request, + Options opts = {}); + + future> + InsertNetworkAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the NetworkAttachments for a project in the given scope. @@ -578,6 +616,14 @@ class NetworkAttachmentsClient { network_attachment_resource, Options opts = {}); + StatusOr PatchNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_attachment, + google::cloud::cpp::compute::v1::NetworkAttachment const& + network_attachment_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified NetworkAttachment resource with the data included in @@ -619,6 +665,18 @@ class NetworkAttachmentsClient { PatchNetworkAttachmentRequest const& request, Options opts = {}); + StatusOr PatchNetworkAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_attachments::v1:: + PatchNetworkAttachmentRequest const& request, + Options opts = {}); + + future> + PatchNetworkAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any 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..55684abed2f0b 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkEdgeSecurityServicesTracingConnection::DeleteNetworkEdgeSecurityService( + google::cloud::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( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkEdgeSecurityServicesTracingConnection::InsertNetworkEdgeSecurityService( + google::cloud::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( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkEdgeSecurityServicesTracingConnection::PatchNetworkEdgeSecurityService( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr + DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request) override; + + future> + DeleteNetworkEdgeSecurityService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request) override; + future> + InsertNetworkEdgeSecurityService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::cloud::cpp::compute::network_edge_security_services::v1:: PatchNetworkEdgeSecurityServiceRequest const& request) override; + future> + PatchNetworkEdgeSecurityService( + google::cloud::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..4c24929fafdb7 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkEdgeSecurityService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkEdgeSecurityService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchNetworkEdgeSecurityService, + (google::cloud::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_client.cc b/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_client.cc index 9b45caba9fb91..55db88aa81d22 100644 --- a/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_client.cc +++ b/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_client.cc @@ -70,6 +70,21 @@ NetworkEdgeSecurityServicesClient::DeleteNetworkEdgeSecurityService( return connection_->DeleteNetworkEdgeSecurityService(request); } +StatusOr +NetworkEdgeSecurityServicesClient::DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_edge_security_service, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest request; + request.set_project(project); + request.set_region(region); + request.set_network_edge_security_service(network_edge_security_service); + return connection_->DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkEdgeSecurityServicesClient::DeleteNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -79,6 +94,26 @@ NetworkEdgeSecurityServicesClient::DeleteNetworkEdgeSecurityService( return connection_->DeleteNetworkEdgeSecurityService(request); } +StatusOr +NetworkEdgeSecurityServicesClient::DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkEdgeSecurityServicesClient::DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr NetworkEdgeSecurityServicesClient::GetNetworkEdgeSecurityService( std::string const& project, std::string const& region, @@ -117,6 +152,24 @@ NetworkEdgeSecurityServicesClient::InsertNetworkEdgeSecurityService( return connection_->InsertNetworkEdgeSecurityService(request); } +StatusOr +NetworkEdgeSecurityServicesClient::InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NetworkEdgeSecurityService const& + network_edge_security_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_network_edge_security_service_resource() = + network_edge_security_service_resource; + return connection_->InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkEdgeSecurityServicesClient::InsertNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -126,6 +179,26 @@ NetworkEdgeSecurityServicesClient::InsertNetworkEdgeSecurityService( return connection_->InsertNetworkEdgeSecurityService(request); } +StatusOr +NetworkEdgeSecurityServicesClient::InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkEdgeSecurityServicesClient::InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, operation); +} + future> NetworkEdgeSecurityServicesClient::PatchNetworkEdgeSecurityService( std::string const& project, std::string const& region, @@ -146,6 +219,28 @@ NetworkEdgeSecurityServicesClient::PatchNetworkEdgeSecurityService( return connection_->PatchNetworkEdgeSecurityService(request); } +StatusOr +NetworkEdgeSecurityServicesClient::PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_edge_security_service, + std::string const& update_mask, + google::cloud::cpp::compute::v1::NetworkEdgeSecurityService const& + network_edge_security_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest request; + request.set_project(project); + request.set_region(region); + request.set_network_edge_security_service(network_edge_security_service); + request.set_update_mask(update_mask); + *request.mutable_network_edge_security_service_resource() = + network_edge_security_service_resource; + return connection_->PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkEdgeSecurityServicesClient::PatchNetworkEdgeSecurityService( google::cloud::cpp::compute::network_edge_security_services::v1:: @@ -155,6 +250,26 @@ NetworkEdgeSecurityServicesClient::PatchNetworkEdgeSecurityService( return connection_->PatchNetworkEdgeSecurityService(request); } +StatusOr +NetworkEdgeSecurityServicesClient::PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkEdgeSecurityServicesClient::PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_client.h index 0e5ca05b3abe8..0beb8614dd0fe 100644 --- a/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_client.h +++ b/google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORK_EDGE_SECURITY_SERVICES_V1_NETWORK_EDGE_SECURITY_SERVICES_CLIENT_H #include "google/cloud/compute/network_edge_security_services/v1/network_edge_security_services_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -214,6 +216,12 @@ class NetworkEdgeSecurityServicesClient { std::string const& project, std::string const& region, std::string const& network_edge_security_service, Options opts = {}); + StatusOr + DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_edge_security_service, Options opts = {}); + // clang-format off /// /// Deletes the specified service. @@ -254,6 +262,19 @@ class NetworkEdgeSecurityServicesClient { DeleteNetworkEdgeSecurityServiceRequest const& request, Options opts = {}); + StatusOr + DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + DeleteNetworkEdgeSecurityServiceRequest const& request, + Options opts = {}); + + future> + DeleteNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a specified NetworkEdgeSecurityService. @@ -357,6 +378,14 @@ class NetworkEdgeSecurityServicesClient { network_edge_security_service_resource, Options opts = {}); + StatusOr + InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NetworkEdgeSecurityService const& + network_edge_security_service_resource, + Options opts = {}); + // clang-format off /// /// Creates a new service in the specified project using the data included in @@ -398,6 +427,19 @@ class NetworkEdgeSecurityServicesClient { InsertNetworkEdgeSecurityServiceRequest const& request, Options opts = {}); + StatusOr + InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + InsertNetworkEdgeSecurityServiceRequest const& request, + Options opts = {}); + + future> + InsertNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Patches the specified policy with the data included in the request. @@ -440,6 +482,16 @@ class NetworkEdgeSecurityServicesClient { network_edge_security_service_resource, Options opts = {}); + StatusOr + PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_edge_security_service, + std::string const& update_mask, + google::cloud::cpp::compute::v1::NetworkEdgeSecurityService const& + network_edge_security_service_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified policy with the data included in the request. @@ -480,6 +532,19 @@ class NetworkEdgeSecurityServicesClient { PatchNetworkEdgeSecurityServiceRequest const& request, Options opts = {}); + StatusOr + PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_edge_security_services::v1:: + PatchNetworkEdgeSecurityServiceRequest const& request, + Options opts = {}); + + future> + PatchNetworkEdgeSecurityService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..1ffcacaac129f 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,33 @@ NetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( child_->AttachNetworkEndpoints(request)); } +StatusOr +NetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -77,6 +104,33 @@ NetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( child_->DeleteNetworkEndpointGroup(request)); } +StatusOr +NetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -89,6 +143,33 @@ NetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( child_->DetachNetworkEndpoints(request)); } +StatusOr +NetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetworkEndpointGroupsTracingConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -112,6 +193,33 @@ NetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( child_->InsertNetworkEndpointGroup(request)); } +StatusOr +NetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + google::cloud::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( + google::cloud::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..24c3b0d3f1080 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + google::cloud::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..457e1fdfb61c7 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + AttachNetworkEndpoints, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkEndpointGroup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachNetworkEndpoints, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkEndpointGroup, + (google::cloud::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_client.cc b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.cc index 8f2a5d89c4ccb..2061f2f4edece 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.cc +++ b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.cc @@ -75,6 +75,27 @@ NetworkEndpointGroupsClient::AttachNetworkEndpoints( return connection_->AttachNetworkEndpoints(request); } +StatusOr +NetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + NetworkEndpointGroupsAttachEndpointsRequest const& + network_endpoint_groups_attach_endpoints_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_network_endpoint_group(network_endpoint_group); + *request.mutable_network_endpoint_groups_attach_endpoints_request_resource() = + network_endpoint_groups_attach_endpoints_request_resource; + return connection_->AttachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkEndpointGroupsClient::AttachNetworkEndpoints( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -84,6 +105,26 @@ NetworkEndpointGroupsClient::AttachNetworkEndpoints( return connection_->AttachNetworkEndpoints(request); } +StatusOr +NetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachNetworkEndpoints(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( std::string const& project, std::string const& zone, @@ -97,6 +138,21 @@ NetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( return connection_->DeleteNetworkEndpointGroup(request); } +StatusOr +NetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& network_endpoint_group, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_network_endpoint_group(network_endpoint_group); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -106,6 +162,26 @@ NetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( return connection_->DeleteNetworkEndpointGroup(request); } +StatusOr +NetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, operation); +} + future> NetworkEndpointGroupsClient::DetachNetworkEndpoints( std::string const& project, std::string const& zone, @@ -125,6 +201,27 @@ NetworkEndpointGroupsClient::DetachNetworkEndpoints( return connection_->DetachNetworkEndpoints(request); } +StatusOr +NetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + NetworkEndpointGroupsDetachEndpointsRequest const& + network_endpoint_groups_detach_endpoints_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_network_endpoint_group(network_endpoint_group); + *request.mutable_network_endpoint_groups_detach_endpoints_request_resource() = + network_endpoint_groups_detach_endpoints_request_resource; + return connection_->DetachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkEndpointGroupsClient::DetachNetworkEndpoints( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -134,6 +231,26 @@ NetworkEndpointGroupsClient::DetachNetworkEndpoints( return connection_->DetachNetworkEndpoints(request); } +StatusOr +NetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachNetworkEndpoints(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetworkEndpointGroupsClient::GetNetworkEndpointGroup( std::string const& project, std::string const& zone, @@ -172,6 +289,24 @@ NetworkEndpointGroupsClient::InsertNetworkEndpointGroup( return connection_->InsertNetworkEndpointGroup(request); } +StatusOr +NetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::NetworkEndpointGroup const& + network_endpoint_group_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_network_endpoint_group_resource() = + network_endpoint_group_resource; + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkEndpointGroupsClient::InsertNetworkEndpointGroup( google::cloud::cpp::compute::network_endpoint_groups::v1:: @@ -181,6 +316,26 @@ NetworkEndpointGroupsClient::InsertNetworkEndpointGroup( return connection_->InsertNetworkEndpointGroup(request); } +StatusOr +NetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange NetworkEndpointGroupsClient::ListNetworkEndpointGroups( std::string const& project, std::string const& zone, Options opts) { diff --git a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.h b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.h index 0de3475c837a4..8cccbe4ad4dec 100644 --- a/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.h +++ b/google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORK_ENDPOINT_GROUPS_V1_NETWORK_ENDPOINT_GROUPS_CLIENT_H #include "google/cloud/compute/network_endpoint_groups/v1/network_endpoint_groups_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -219,6 +221,15 @@ class NetworkEndpointGroupsClient { network_endpoint_groups_attach_endpoints_request_resource, Options opts = {}); + StatusOr AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + NetworkEndpointGroupsAttachEndpointsRequest const& + network_endpoint_groups_attach_endpoints_request_resource, + Options opts = {}); + // clang-format off /// /// Attach a list of network endpoints to the specified network endpoint group. @@ -258,6 +269,18 @@ class NetworkEndpointGroupsClient { v1::AttachNetworkEndpointsRequest const& request, Options opts = {}); + StatusOr AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request, + Options opts = {}); + + future> + AttachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified network endpoint group. The network endpoints in the @@ -300,6 +323,14 @@ class NetworkEndpointGroupsClient { std::string const& network_endpoint_group, Options opts = {}); + StatusOr + DeleteNetworkEndpointGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& network_endpoint_group, + Options opts = {}); + // clang-format off /// /// Deletes the specified network endpoint group. The network endpoints in the @@ -343,6 +374,19 @@ class NetworkEndpointGroupsClient { DeleteNetworkEndpointGroupRequest const& request, Options opts = {}); + StatusOr + DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request, + Options opts = {}); + + future> + DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Detach a list of network endpoints from the specified network endpoint @@ -387,6 +431,15 @@ class NetworkEndpointGroupsClient { network_endpoint_groups_detach_endpoints_request_resource, Options opts = {}); + StatusOr DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + NetworkEndpointGroupsDetachEndpointsRequest const& + network_endpoint_groups_detach_endpoints_request_resource, + Options opts = {}); + // clang-format off /// /// Detach a list of network endpoints from the specified network endpoint @@ -427,6 +480,18 @@ class NetworkEndpointGroupsClient { v1::DetachNetworkEndpointsRequest const& request, Options opts = {}); + StatusOr DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request, + Options opts = {}); + + future> + DetachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified network endpoint group. @@ -531,6 +596,14 @@ class NetworkEndpointGroupsClient { network_endpoint_group_resource, Options opts = {}); + StatusOr + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::NetworkEndpointGroup const& + network_endpoint_group_resource, + Options opts = {}); + // clang-format off /// /// Creates a network endpoint group in the specified project using the @@ -572,6 +645,19 @@ class NetworkEndpointGroupsClient { InsertNetworkEndpointGroupRequest const& request, Options opts = {}); + StatusOr + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request, + Options opts = {}); + + future> + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of network endpoint groups that are located in the 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..fc57d7c80e3a5 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,33 @@ NetworkFirewallPoliciesTracingConnection::AddAssociation( return internal::EndSpan(std::move(span), child_->AddAssociation(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::AddAssociation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::AddRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -59,6 +86,33 @@ NetworkFirewallPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::AddRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::AddRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::CloneRules( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -70,6 +124,33 @@ NetworkFirewallPoliciesTracingConnection::CloneRules( return internal::EndSpan(std::move(span), child_->CloneRules(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::CloneRules( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::CloneRules( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -82,6 +163,33 @@ NetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( child_->DeleteFirewallPolicy(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetworkFirewallPoliciesTracingConnection::GetFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -138,6 +246,33 @@ NetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( child_->InsertFirewallPolicy(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkFirewallPoliciesTracingConnection::ListNetworkFirewallPolicies( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -164,6 +299,33 @@ NetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( child_->PatchFirewallPolicy(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -175,6 +337,33 @@ NetworkFirewallPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::PatchRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::PatchRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::RemoveAssociation( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -186,6 +375,33 @@ NetworkFirewallPoliciesTracingConnection::RemoveAssociation( return internal::EndSpan(std::move(span), child_->RemoveAssociation(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::RemoveAssociation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkFirewallPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -197,6 +413,33 @@ NetworkFirewallPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +NetworkFirewallPoliciesTracingConnection::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkFirewallPoliciesTracingConnection::RemoveRule( + google::cloud::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(google::cloud::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..5e13dc97a5fa2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + google::cloud::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..cc1d30693c50b 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddAssociation, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CloneRules, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveAssociation, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (google::cloud::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_client.cc b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.cc index 0478c39708a67..4afa0ce43a8af 100644 --- a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.cc +++ b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.cc @@ -49,6 +49,24 @@ NetworkFirewallPoliciesClient::AddAssociation( return connection_->AddAssociation(request); } +StatusOr +NetworkFirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyAssociation const& + firewall_policy_association_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest request; + request.set_project(project); + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_association_resource() = + firewall_policy_association_resource; + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::AddAssociation( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -58,6 +76,26 @@ NetworkFirewallPoliciesClient::AddAssociation( return connection_->AddAssociation(request); } +StatusOr +NetworkFirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkFirewallPoliciesClient::AddRule( std::string const& project, std::string const& firewall_policy, @@ -74,6 +112,24 @@ NetworkFirewallPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +NetworkFirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1::AddRuleRequest + request; + request.set_project(project); + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_rule_resource() = + firewall_policy_rule_resource; + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::AddRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -83,6 +139,25 @@ NetworkFirewallPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +NetworkFirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, operation); +} + future> NetworkFirewallPoliciesClient::CloneRules(std::string const& project, std::string const& firewall_policy, @@ -95,6 +170,21 @@ NetworkFirewallPoliciesClient::CloneRules(std::string const& project, return connection_->CloneRules(request); } +StatusOr +NetworkFirewallPoliciesClient::CloneRules(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& firewall_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1::CloneRulesRequest + request; + request.set_project(project); + request.set_firewall_policy(firewall_policy); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::CloneRules( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -104,6 +194,25 @@ NetworkFirewallPoliciesClient::CloneRules( return connection_->CloneRules(request); } +StatusOr +NetworkFirewallPoliciesClient::CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::CloneRules( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, operation); +} + future> NetworkFirewallPoliciesClient::DeleteFirewallPolicy( std::string const& project, std::string const& firewall_policy, @@ -116,6 +225,20 @@ NetworkFirewallPoliciesClient::DeleteFirewallPolicy( return connection_->DeleteFirewallPolicy(request); } +StatusOr +NetworkFirewallPoliciesClient::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest request; + request.set_project(project); + request.set_firewall_policy(firewall_policy); + return connection_->DeleteFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::DeleteFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -125,6 +248,26 @@ NetworkFirewallPoliciesClient::DeleteFirewallPolicy( return connection_->DeleteFirewallPolicy(request); } +StatusOr +NetworkFirewallPoliciesClient::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetworkFirewallPoliciesClient::GetFirewallPolicy( std::string const& project, std::string const& firewall_policy, @@ -223,6 +366,22 @@ NetworkFirewallPoliciesClient::InsertFirewallPolicy( return connection_->InsertFirewallPolicy(request); } +StatusOr +NetworkFirewallPoliciesClient::InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest request; + request.set_project(project); + *request.mutable_firewall_policy_resource() = firewall_policy_resource; + return connection_->InsertFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::InsertFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -232,6 +391,26 @@ NetworkFirewallPoliciesClient::InsertFirewallPolicy( return connection_->InsertFirewallPolicy(request); } +StatusOr +NetworkFirewallPoliciesClient::InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::InsertFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkFirewallPoliciesClient::ListNetworkFirewallPolicies( std::string const& project, Options opts) { @@ -266,6 +445,23 @@ NetworkFirewallPoliciesClient::PatchFirewallPolicy( return connection_->PatchFirewallPolicy(request); } +StatusOr +NetworkFirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest request; + request.set_project(project); + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_resource() = firewall_policy_resource; + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::PatchFirewallPolicy( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -275,6 +471,26 @@ NetworkFirewallPoliciesClient::PatchFirewallPolicy( return connection_->PatchFirewallPolicy(request); } +StatusOr +NetworkFirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkFirewallPoliciesClient::PatchRule( std::string const& project, std::string const& firewall_policy, @@ -291,6 +507,24 @@ NetworkFirewallPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +NetworkFirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1::PatchRuleRequest + request; + request.set_project(project); + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_rule_resource() = + firewall_policy_rule_resource; + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::PatchRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -300,6 +534,25 @@ NetworkFirewallPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +NetworkFirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, operation); +} + future> NetworkFirewallPoliciesClient::RemoveAssociation( std::string const& project, std::string const& firewall_policy, @@ -312,6 +565,20 @@ NetworkFirewallPoliciesClient::RemoveAssociation( return connection_->RemoveAssociation(request); } +StatusOr +NetworkFirewallPoliciesClient::RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest request; + request.set_project(project); + request.set_firewall_policy(firewall_policy); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::RemoveAssociation( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -321,6 +588,26 @@ NetworkFirewallPoliciesClient::RemoveAssociation( return connection_->RemoveAssociation(request); } +StatusOr +NetworkFirewallPoliciesClient::RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::RemoveAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkFirewallPoliciesClient::RemoveRule(std::string const& project, std::string const& firewall_policy, @@ -333,6 +620,21 @@ NetworkFirewallPoliciesClient::RemoveRule(std::string const& project, return connection_->RemoveRule(request); } +StatusOr +NetworkFirewallPoliciesClient::RemoveRule(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& firewall_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::network_firewall_policies::v1::RemoveRuleRequest + request; + request.set_project(project); + request.set_firewall_policy(firewall_policy); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkFirewallPoliciesClient::RemoveRule( google::cloud::cpp::compute::network_firewall_policies::v1:: @@ -342,6 +644,25 @@ NetworkFirewallPoliciesClient::RemoveRule( return connection_->RemoveRule(request); } +StatusOr +NetworkFirewallPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkFirewallPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, operation); +} + StatusOr NetworkFirewallPoliciesClient::SetIamPolicy( std::string const& project, std::string const& resource, diff --git a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.h b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.h index 5287f05d4930a..8a0465c5edbdf 100644 --- a/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.h +++ b/google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORK_FIREWALL_POLICIES_V1_NETWORK_FIREWALL_POLICIES_CLIENT_H #include "google/cloud/compute/network_firewall_policies/v1/network_firewall_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -127,6 +129,13 @@ class NetworkFirewallPoliciesClient { firewall_policy_association_resource, Options opts = {}); + StatusOr AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyAssociation const& + firewall_policy_association_resource, + Options opts = {}); + // clang-format off /// /// Inserts an association for the specified firewall policy. @@ -166,6 +175,17 @@ class NetworkFirewallPoliciesClient { AddAssociationRequest const& request, Options opts = {}); + StatusOr AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddAssociationRequest const& request, + Options opts = {}); + + future> AddAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Inserts a rule into a firewall policy. @@ -203,6 +223,13 @@ class NetworkFirewallPoliciesClient { firewall_policy_rule_resource, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Inserts a rule into a firewall policy. @@ -242,6 +269,17 @@ class NetworkFirewallPoliciesClient { AddRuleRequest const& request, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + AddRuleRequest const& request, + Options opts = {}); + + future> AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Copies rules to the specified firewall policy. @@ -276,6 +314,11 @@ class NetworkFirewallPoliciesClient { std::string const& project, std::string const& firewall_policy, Options opts = {}); + StatusOr CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + Options opts = {}); + // clang-format off /// /// Copies rules to the specified firewall policy. @@ -315,6 +358,17 @@ class NetworkFirewallPoliciesClient { CloneRulesRequest const& request, Options opts = {}); + StatusOr CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + CloneRulesRequest const& request, + Options opts = {}); + + future> CloneRules( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified policy. @@ -349,6 +403,11 @@ class NetworkFirewallPoliciesClient { DeleteFirewallPolicy(std::string const& project, std::string const& firewall_policy, Options opts = {}); + StatusOr DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + Options opts = {}); + // clang-format off /// /// Deletes the specified policy. @@ -388,6 +447,18 @@ class NetworkFirewallPoliciesClient { v1::DeleteFirewallPolicyRequest const& request, Options opts = {}); + StatusOr DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request, + Options opts = {}); + + future> + DeleteFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified network firewall policy. @@ -671,6 +742,13 @@ class NetworkFirewallPoliciesClient { firewall_policy_resource, Options opts = {}); + StatusOr InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts = {}); + // clang-format off /// /// Creates a new policy in the specified project using the data included in @@ -711,6 +789,18 @@ class NetworkFirewallPoliciesClient { v1::InsertFirewallPolicyRequest const& request, Options opts = {}); + StatusOr InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request, + Options opts = {}); + + future> + InsertFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all the policies that have been configured for the specified project. @@ -827,6 +917,13 @@ class NetworkFirewallPoliciesClient { firewall_policy_resource, Options opts = {}); + StatusOr PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified policy with the data included in the request. @@ -866,6 +963,18 @@ class NetworkFirewallPoliciesClient { v1::PatchFirewallPolicyRequest const& request, Options opts = {}); + StatusOr PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request, + Options opts = {}); + + future> + PatchFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Patches a rule of the specified priority. @@ -903,6 +1012,13 @@ class NetworkFirewallPoliciesClient { firewall_policy_rule_resource, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Patches a rule of the specified priority. @@ -942,6 +1058,17 @@ class NetworkFirewallPoliciesClient { PatchRuleRequest const& request, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + PatchRuleRequest const& request, + Options opts = {}); + + future> PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes an association for the specified firewall policy. @@ -976,6 +1103,11 @@ class NetworkFirewallPoliciesClient { RemoveAssociation(std::string const& project, std::string const& firewall_policy, Options opts = {}); + StatusOr RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + Options opts = {}); + // clang-format off /// /// Removes an association for the specified firewall policy. @@ -1015,6 +1147,17 @@ class NetworkFirewallPoliciesClient { RemoveAssociationRequest const& request, Options opts = {}); + StatusOr RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveAssociationRequest const& request, + Options opts = {}); + + future> + RemoveAssociation(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a rule of the specified priority. @@ -1049,6 +1192,11 @@ class NetworkFirewallPoliciesClient { std::string const& project, std::string const& firewall_policy, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& firewall_policy, + Options opts = {}); + // clang-format off /// /// Deletes a rule of the specified priority. @@ -1088,6 +1236,17 @@ class NetworkFirewallPoliciesClient { RemoveRuleRequest const& request, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::network_firewall_policies::v1:: + RemoveRuleRequest const& request, + Options opts = {}); + + future> RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any 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..13dd2bb47a8d1 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,31 @@ NetworksTracingConnection::AddPeering( return internal::EndSpan(std::move(span), child_->AddPeering(request)); } +StatusOr +NetworksTracingConnection::AddPeering( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::AddPeering( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworksTracingConnection::DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& @@ -53,6 +78,31 @@ NetworksTracingConnection::DeleteNetwork( return internal::EndSpan(std::move(span), child_->DeleteNetwork(request)); } +StatusOr +NetworksTracingConnection::DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::DeleteNetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetworksTracingConnection::GetNetwork( google::cloud::cpp::compute::networks::v1::GetNetworkRequest const& @@ -83,6 +133,31 @@ NetworksTracingConnection::InsertNetwork( return internal::EndSpan(std::move(span), child_->InsertNetwork(request)); } +StatusOr +NetworksTracingConnection::InsertNetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::InsertNetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworksTracingConnection::ListNetworks( google::cloud::cpp::compute::networks::v1::ListNetworksRequest request) { @@ -117,6 +192,31 @@ NetworksTracingConnection::PatchNetwork( return internal::EndSpan(std::move(span), child_->PatchNetwork(request)); } +StatusOr +NetworksTracingConnection::PatchNetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::PatchNetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworksTracingConnection::RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& @@ -127,6 +227,31 @@ NetworksTracingConnection::RemovePeering( return internal::EndSpan(std::move(span), child_->RemovePeering(request)); } +StatusOr +NetworksTracingConnection::RemovePeering( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::RemovePeering( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworksTracingConnection::SwitchToCustomMode( google::cloud::cpp::compute::networks::v1::SwitchToCustomModeRequest const& @@ -138,6 +263,31 @@ NetworksTracingConnection::SwitchToCustomMode( child_->SwitchToCustomMode(request)); } +StatusOr +NetworksTracingConnection::SwitchToCustomMode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::SwitchToCustomMode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworksTracingConnection::UpdatePeering( google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& @@ -148,6 +298,31 @@ NetworksTracingConnection::UpdatePeering( return internal::EndSpan(std::move(span), child_->UpdatePeering(request)); } +StatusOr +NetworksTracingConnection::UpdatePeering( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworksTracingConnection::UpdatePeering( + google::cloud::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(google::cloud::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..8b2587e0cba78 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request) override; + + future> AddPeering( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& request) override; + StatusOr DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request) override; + + future> DeleteNetwork( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request) override; + + future> InsertNetwork( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request) override; + + future> PatchNetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& request) override; + StatusOr RemovePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request) override; + + future> RemovePeering( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SwitchToCustomMode(google::cloud::cpp::compute::networks::v1:: SwitchToCustomModeRequest const& request) override; + StatusOr SwitchToCustomMode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const& request) override; + + future> + SwitchToCustomMode( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> UpdatePeering( google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& request) override; + StatusOr UpdatePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request) override; + + future> UpdatePeering( + google::cloud::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..27eed3ba8271e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddPeering, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteNetwork, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertNetwork, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchNetwork, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RemovePeering, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const& request), + (override)); + + MOCK_METHOD(future>, + SwitchToCustomMode, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdatePeering, + (google::cloud::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_client.cc b/google/cloud/compute/networks/v1/networks_client.cc index 7d7a0a7e4a0cd..cd63aebbf5f93 100644 --- a/google/cloud/compute/networks/v1/networks_client.cc +++ b/google/cloud/compute/networks/v1/networks_client.cc @@ -47,6 +47,22 @@ NetworksClient::AddPeering( return connection_->AddPeering(request); } +StatusOr NetworksClient::AddPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + google::cloud::cpp::compute::v1::NetworksAddPeeringRequest const& + networks_add_peering_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::networks::v1::AddPeeringRequest request; + request.set_project(project); + request.set_network(network); + *request.mutable_networks_add_peering_request_resource() = + networks_add_peering_request_resource; + return connection_->AddPeering(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworksClient::AddPeering( google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& request, @@ -55,6 +71,23 @@ NetworksClient::AddPeering( return connection_->AddPeering(request); } +StatusOr NetworksClient::AddPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddPeering(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworksClient::AddPeering( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddPeering(google::cloud::ExperimentalTag{}, operation); +} + future> NetworksClient::DeleteNetwork(std::string const& project, std::string const& network, Options opts) { @@ -65,6 +98,19 @@ NetworksClient::DeleteNetwork(std::string const& project, return connection_->DeleteNetwork(request); } +StatusOr +NetworksClient::DeleteNetwork(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& network, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest request; + request.set_project(project); + request.set_network(network); + return connection_->DeleteNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworksClient::DeleteNetwork( google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& @@ -74,6 +120,26 @@ NetworksClient::DeleteNetwork( return connection_->DeleteNetwork(request); } +StatusOr +NetworksClient::DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworksClient::DeleteNetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetwork(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetworksClient::GetNetwork( std::string const& project, std::string const& network, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -123,6 +189,20 @@ NetworksClient::InsertNetwork( return connection_->InsertNetwork(request); } +StatusOr +NetworksClient::InsertNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Network const& network_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest request; + request.set_project(project); + *request.mutable_network_resource() = network_resource; + return connection_->InsertNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworksClient::InsertNetwork( google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& @@ -132,6 +212,26 @@ NetworksClient::InsertNetwork( return connection_->InsertNetwork(request); } +StatusOr +NetworksClient::InsertNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworksClient::InsertNetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetwork(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworksClient::ListNetworks(std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -179,6 +279,21 @@ NetworksClient::PatchNetwork( return connection_->PatchNetwork(request); } +StatusOr +NetworksClient::PatchNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + google::cloud::cpp::compute::v1::Network const& network_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest request; + request.set_project(project); + request.set_network(network); + *request.mutable_network_resource() = network_resource; + return connection_->PatchNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworksClient::PatchNetwork( google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& @@ -188,6 +303,25 @@ NetworksClient::PatchNetwork( return connection_->PatchNetwork(request); } +StatusOr +NetworksClient::PatchNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworksClient::PatchNetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchNetwork(google::cloud::ExperimentalTag{}, operation); +} + future> NetworksClient::RemovePeering( std::string const& project, std::string const& network, @@ -203,6 +337,23 @@ NetworksClient::RemovePeering( return connection_->RemovePeering(request); } +StatusOr +NetworksClient::RemovePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + google::cloud::cpp::compute::v1::NetworksRemovePeeringRequest const& + networks_remove_peering_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest request; + request.set_project(project); + request.set_network(network); + *request.mutable_networks_remove_peering_request_resource() = + networks_remove_peering_request_resource; + return connection_->RemovePeering(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworksClient::RemovePeering( google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& @@ -212,6 +363,26 @@ NetworksClient::RemovePeering( return connection_->RemovePeering(request); } +StatusOr +NetworksClient::RemovePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemovePeering(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworksClient::RemovePeering( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemovePeering(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworksClient::SwitchToCustomMode(std::string const& project, std::string const& network, Options opts) { @@ -222,6 +393,19 @@ NetworksClient::SwitchToCustomMode(std::string const& project, return connection_->SwitchToCustomMode(request); } +StatusOr +NetworksClient::SwitchToCustomMode(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& network, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::networks::v1::SwitchToCustomModeRequest request; + request.set_project(project); + request.set_network(network); + return connection_->SwitchToCustomMode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworksClient::SwitchToCustomMode( google::cloud::cpp::compute::networks::v1::SwitchToCustomModeRequest const& @@ -231,6 +415,26 @@ NetworksClient::SwitchToCustomMode( return connection_->SwitchToCustomMode(request); } +StatusOr +NetworksClient::SwitchToCustomMode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::SwitchToCustomModeRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SwitchToCustomMode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworksClient::SwitchToCustomMode( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SwitchToCustomMode(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworksClient::UpdatePeering( std::string const& project, std::string const& network, @@ -246,6 +450,23 @@ NetworksClient::UpdatePeering( return connection_->UpdatePeering(request); } +StatusOr +NetworksClient::UpdatePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + google::cloud::cpp::compute::v1::NetworksUpdatePeeringRequest const& + networks_update_peering_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest request; + request.set_project(project); + request.set_network(network); + *request.mutable_networks_update_peering_request_resource() = + networks_update_peering_request_resource; + return connection_->UpdatePeering(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworksClient::UpdatePeering( google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& @@ -255,6 +476,26 @@ NetworksClient::UpdatePeering( return connection_->UpdatePeering(request); } +StatusOr +NetworksClient::UpdatePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePeering(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworksClient::UpdatePeering( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePeering(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_networks_v1 } // namespace cloud diff --git a/google/cloud/compute/networks/v1/networks_client.h b/google/cloud/compute/networks/v1/networks_client.h index 06b3a85c3b463..57c82440a4b28 100644 --- a/google/cloud/compute/networks/v1/networks_client.h +++ b/google/cloud/compute/networks/v1/networks_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NETWORKS_V1_NETWORKS_CLIENT_H #include "google/cloud/compute/networks/v1/networks_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -121,6 +123,13 @@ class NetworksClient { networks_add_peering_request_resource, Options opts = {}); + StatusOr AddPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + google::cloud::cpp::compute::v1::NetworksAddPeeringRequest const& + networks_add_peering_request_resource, + Options opts = {}); + // clang-format off /// /// Adds a peering to the specified network. @@ -160,6 +169,17 @@ class NetworksClient { request, Options opts = {}); + StatusOr AddPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::AddPeeringRequest const& + request, + Options opts = {}); + + future> AddPeering( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified network. @@ -194,6 +214,11 @@ class NetworksClient { std::string const& project, std::string const& network, Options opts = {}); + StatusOr DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + Options opts = {}); + // clang-format off /// /// Deletes the specified network. @@ -233,6 +258,17 @@ class NetworksClient { request, Options opts = {}); + StatusOr DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::DeleteNetworkRequest const& + request, + Options opts = {}); + + future> DeleteNetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified network. @@ -393,6 +429,12 @@ class NetworksClient { google::cloud::cpp::compute::v1::Network const& network_resource, Options opts = {}); + StatusOr InsertNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Network const& network_resource, + Options opts = {}); + // clang-format off /// /// Creates a network in the specified project using the data included in the @@ -433,6 +475,17 @@ class NetworksClient { request, Options opts = {}); + StatusOr InsertNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::InsertNetworkRequest const& + request, + Options opts = {}); + + future> InsertNetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of networks available to the specified project. @@ -626,6 +679,12 @@ class NetworksClient { google::cloud::cpp::compute::v1::Network const& network_resource, Options opts = {}); + StatusOr PatchNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + google::cloud::cpp::compute::v1::Network const& network_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified network with the data included in the request. Only @@ -666,6 +725,17 @@ class NetworksClient { request, Options opts = {}); + StatusOr PatchNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::PatchNetworkRequest const& + request, + Options opts = {}); + + future> PatchNetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes a peering from the specified network. @@ -703,6 +773,13 @@ class NetworksClient { networks_remove_peering_request_resource, Options opts = {}); + StatusOr RemovePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + google::cloud::cpp::compute::v1::NetworksRemovePeeringRequest const& + networks_remove_peering_request_resource, + Options opts = {}); + // clang-format off /// /// Removes a peering from the specified network. @@ -742,6 +819,17 @@ class NetworksClient { request, Options opts = {}); + StatusOr RemovePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::RemovePeeringRequest const& + request, + Options opts = {}); + + future> RemovePeering( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Switches the network mode from auto subnet mode to custom subnet mode. @@ -776,6 +864,11 @@ class NetworksClient { SwitchToCustomMode(std::string const& project, std::string const& network, Options opts = {}); + StatusOr SwitchToCustomMode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + Options opts = {}); + // clang-format off /// /// Switches the network mode from auto subnet mode to custom subnet mode. @@ -815,6 +908,18 @@ class NetworksClient { SwitchToCustomModeRequest const& request, Options opts = {}); + StatusOr SwitchToCustomMode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1:: + SwitchToCustomModeRequest const& request, + Options opts = {}); + + future> + SwitchToCustomMode( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified network peering with the data included in the @@ -854,6 +959,13 @@ class NetworksClient { networks_update_peering_request_resource, Options opts = {}); + StatusOr UpdatePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& network, + google::cloud::cpp::compute::v1::NetworksUpdatePeeringRequest const& + networks_update_peering_request_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified network peering with the data included in the @@ -895,6 +1007,17 @@ class NetworksClient { request, Options opts = {}); + StatusOr UpdatePeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::networks::v1::UpdatePeeringRequest const& + request, + Options opts = {}); + + future> UpdatePeering( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..4a4ba9bce7bd3 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,31 @@ NodeGroupsTracingConnection::AddNodes( return internal::EndSpan(std::move(span), child_->AddNodes(request)); } +StatusOr +NodeGroupsTracingConnection::AddNodes( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::AddNodes( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange> NodeGroupsTracingConnection::AggregatedListNodeGroups( @@ -67,6 +92,31 @@ NodeGroupsTracingConnection::DeleteNodeGroup( return internal::EndSpan(std::move(span), child_->DeleteNodeGroup(request)); } +StatusOr +NodeGroupsTracingConnection::DeleteNodeGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::DeleteNodeGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NodeGroupsTracingConnection::DeleteNodes( google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& @@ -77,6 +127,31 @@ NodeGroupsTracingConnection::DeleteNodes( return internal::EndSpan(std::move(span), child_->DeleteNodes(request)); } +StatusOr +NodeGroupsTracingConnection::DeleteNodes( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::DeleteNodes( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NodeGroupsTracingConnection::GetNodeGroup( google::cloud::cpp::compute::node_groups::v1::GetNodeGroupRequest const& @@ -107,6 +182,31 @@ NodeGroupsTracingConnection::InsertNodeGroup( return internal::EndSpan(std::move(span), child_->InsertNodeGroup(request)); } +StatusOr +NodeGroupsTracingConnection::InsertNodeGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::InsertNodeGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NodeGroupsTracingConnection::ListNodeGroups( google::cloud::cpp::compute::node_groups::v1::ListNodeGroupsRequest @@ -142,6 +242,31 @@ NodeGroupsTracingConnection::PatchNodeGroup( return internal::EndSpan(std::move(span), child_->PatchNodeGroup(request)); } +StatusOr +NodeGroupsTracingConnection::PatchNodeGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::PatchNodeGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NodeGroupsTracingConnection::PerformMaintenance( google::cloud::cpp::compute::node_groups::v1:: @@ -153,6 +278,31 @@ NodeGroupsTracingConnection::PerformMaintenance( child_->PerformMaintenance(request)); } +StatusOr +NodeGroupsTracingConnection::PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::PerformMaintenance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NodeGroupsTracingConnection::SetIamPolicy( google::cloud::cpp::compute::node_groups::v1::SetIamPolicyRequest const& @@ -173,6 +323,31 @@ NodeGroupsTracingConnection::SetNodeTemplate( return internal::EndSpan(std::move(span), child_->SetNodeTemplate(request)); } +StatusOr +NodeGroupsTracingConnection::SetNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::SetNodeTemplate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NodeGroupsTracingConnection::SimulateMaintenanceEvent( google::cloud::cpp::compute::node_groups::v1:: @@ -184,6 +359,31 @@ NodeGroupsTracingConnection::SimulateMaintenanceEvent( child_->SimulateMaintenanceEvent(request)); } +StatusOr +NodeGroupsTracingConnection::SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupsTracingConnection::SimulateMaintenanceEvent( + google::cloud::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( + google::cloud::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..03d40900de0a2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request) override; + + future> AddNodes( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodeGroupRequest const& request) override; + + future> DeleteNodeGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request) override; + + future> DeleteNodes( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + InsertNodeGroupRequest const& request) override; + + future> InsertNodeGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& + request) override; + + future> PatchNodeGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request) override; + + future> + PerformMaintenance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SetNodeTemplateRequest const& request) override; + + future> SetNodeTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request) override; + + future> + SimulateMaintenanceEvent( + google::cloud::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..402d3c4c48351 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddNodes, + (google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< std::pair, + DeleteNodeGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNodeGroup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteNodes, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + InsertNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNodeGroup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PatchNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchNodeGroup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PerformMaintenance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SetNodeTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetNodeTemplate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request), + (override)); + + MOCK_METHOD(future>, + SimulateMaintenanceEvent, + (google::cloud::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_client.cc b/google/cloud/compute/node_groups/v1/node_groups_client.cc index 45c9ae5b2fbfc..20d58dbaae5a4 100644 --- a/google/cloud/compute/node_groups/v1/node_groups_client.cc +++ b/google/cloud/compute/node_groups/v1/node_groups_client.cc @@ -49,6 +49,24 @@ NodeGroupsClient::AddNodes( return connection_->AddNodes(request); } +StatusOr NodeGroupsClient::AddNodes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroupsAddNodesRequest const& + node_groups_add_nodes_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_node_group(node_group); + *request.mutable_node_groups_add_nodes_request_resource() = + node_groups_add_nodes_request_resource; + return connection_->AddNodes(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupsClient::AddNodes( google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& @@ -58,6 +76,24 @@ NodeGroupsClient::AddNodes( return connection_->AddNodes(request); } +StatusOr NodeGroupsClient::AddNodes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddNodes(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupsClient::AddNodes( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddNodes(google::cloud::ExperimentalTag{}, operation); +} + StreamRange> NodeGroupsClient::AggregatedListNodeGroups(std::string const& project, @@ -91,6 +127,21 @@ NodeGroupsClient::DeleteNodeGroup(std::string const& project, return connection_->DeleteNodeGroup(request); } +StatusOr +NodeGroupsClient::DeleteNodeGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& node_group, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_groups::v1::DeleteNodeGroupRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_node_group(node_group); + return connection_->DeleteNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupsClient::DeleteNodeGroup( google::cloud::cpp::compute::node_groups::v1::DeleteNodeGroupRequest const& @@ -100,6 +151,26 @@ NodeGroupsClient::DeleteNodeGroup( return connection_->DeleteNodeGroup(request); } +StatusOr +NodeGroupsClient::DeleteNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodeGroupRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupsClient::DeleteNodeGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNodeGroup(google::cloud::ExperimentalTag{}, + operation); +} + future> NodeGroupsClient::DeleteNodes( std::string const& project, std::string const& zone, @@ -117,6 +188,25 @@ NodeGroupsClient::DeleteNodes( return connection_->DeleteNodes(request); } +StatusOr +NodeGroupsClient::DeleteNodes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroupsDeleteNodesRequest const& + node_groups_delete_nodes_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_node_group(node_group); + *request.mutable_node_groups_delete_nodes_request_resource() = + node_groups_delete_nodes_request_resource; + return connection_->DeleteNodes(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupsClient::DeleteNodes( google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& @@ -126,6 +216,25 @@ NodeGroupsClient::DeleteNodes( return connection_->DeleteNodes(request); } +StatusOr +NodeGroupsClient::DeleteNodes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNodes(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupsClient::DeleteNodes( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNodes(google::cloud::ExperimentalTag{}, operation); +} + StatusOr NodeGroupsClient::GetNodeGroup(std::string const& project, std::string const& zone, @@ -183,6 +292,23 @@ NodeGroupsClient::InsertNodeGroup( return connection_->InsertNodeGroup(request); } +StatusOr +NodeGroupsClient::InsertNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::int32_t initial_node_count, + google::cloud::cpp::compute::v1::NodeGroup const& node_group_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_groups::v1::InsertNodeGroupRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_initial_node_count(initial_node_count); + *request.mutable_node_group_resource() = node_group_resource; + return connection_->InsertNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupsClient::InsertNodeGroup( google::cloud::cpp::compute::node_groups::v1::InsertNodeGroupRequest const& @@ -192,6 +318,26 @@ NodeGroupsClient::InsertNodeGroup( return connection_->InsertNodeGroup(request); } +StatusOr +NodeGroupsClient::InsertNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::InsertNodeGroupRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupsClient::InsertNodeGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNodeGroup(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NodeGroupsClient::ListNodeGroups(std::string const& project, std::string const& zone, Options opts) { @@ -244,6 +390,23 @@ NodeGroupsClient::PatchNodeGroup( return connection_->PatchNodeGroup(request); } +StatusOr +NodeGroupsClient::PatchNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroup const& node_group_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_node_group(node_group); + *request.mutable_node_group_resource() = node_group_resource; + return connection_->PatchNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupsClient::PatchNodeGroup( google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& @@ -253,6 +416,26 @@ NodeGroupsClient::PatchNodeGroup( return connection_->PatchNodeGroup(request); } +StatusOr +NodeGroupsClient::PatchNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupsClient::PatchNodeGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchNodeGroup(google::cloud::ExperimentalTag{}, + operation); +} + future> NodeGroupsClient::PerformMaintenance( std::string const& project, std::string const& zone, @@ -271,6 +454,26 @@ NodeGroupsClient::PerformMaintenance( return connection_->PerformMaintenance(request); } +StatusOr +NodeGroupsClient::PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroupsPerformMaintenanceRequest const& + node_groups_perform_maintenance_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_groups::v1::PerformMaintenanceRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_node_group(node_group); + *request.mutable_node_groups_perform_maintenance_request_resource() = + node_groups_perform_maintenance_request_resource; + return connection_->PerformMaintenance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupsClient::PerformMaintenance( google::cloud::cpp::compute::node_groups::v1:: @@ -280,6 +483,26 @@ NodeGroupsClient::PerformMaintenance( return connection_->PerformMaintenance(request); } +StatusOr +NodeGroupsClient::PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PerformMaintenance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupsClient::PerformMaintenance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PerformMaintenance(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NodeGroupsClient::SetIamPolicy( std::string const& project, std::string const& zone, @@ -323,6 +546,25 @@ NodeGroupsClient::SetNodeTemplate( return connection_->SetNodeTemplate(request); } +StatusOr +NodeGroupsClient::SetNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroupsSetNodeTemplateRequest const& + node_groups_set_node_template_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_groups::v1::SetNodeTemplateRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_node_group(node_group); + *request.mutable_node_groups_set_node_template_request_resource() = + node_groups_set_node_template_request_resource; + return connection_->SetNodeTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupsClient::SetNodeTemplate( google::cloud::cpp::compute::node_groups::v1::SetNodeTemplateRequest const& @@ -332,6 +574,26 @@ NodeGroupsClient::SetNodeTemplate( return connection_->SetNodeTemplate(request); } +StatusOr +NodeGroupsClient::SetNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::SetNodeTemplateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetNodeTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupsClient::SetNodeTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetNodeTemplate(google::cloud::ExperimentalTag{}, + operation); +} + future> NodeGroupsClient::SimulateMaintenanceEvent( std::string const& project, std::string const& zone, @@ -351,6 +613,27 @@ NodeGroupsClient::SimulateMaintenanceEvent( return connection_->SimulateMaintenanceEvent(request); } +StatusOr +NodeGroupsClient::SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1:: + NodeGroupsSimulateMaintenanceEventRequest const& + node_groups_simulate_maintenance_event_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_groups::v1::SimulateMaintenanceEventRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_node_group(node_group); + *request.mutable_node_groups_simulate_maintenance_event_request_resource() = + node_groups_simulate_maintenance_event_request_resource; + return connection_->SimulateMaintenanceEvent( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupsClient::SimulateMaintenanceEvent( google::cloud::cpp::compute::node_groups::v1:: @@ -360,6 +643,26 @@ NodeGroupsClient::SimulateMaintenanceEvent( return connection_->SimulateMaintenanceEvent(request); } +StatusOr +NodeGroupsClient::SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SimulateMaintenanceEvent( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupsClient::SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SimulateMaintenanceEvent(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NodeGroupsClient::TestIamPermissions( std::string const& project, std::string const& zone, diff --git a/google/cloud/compute/node_groups/v1/node_groups_client.h b/google/cloud/compute/node_groups/v1/node_groups_client.h index 24b4b9f3636ff..052f713038259 100644 --- a/google/cloud/compute/node_groups/v1/node_groups_client.h +++ b/google/cloud/compute/node_groups/v1/node_groups_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NODE_GROUPS_V1_NODE_GROUPS_CLIENT_H #include "google/cloud/compute/node_groups/v1/node_groups_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -124,6 +126,14 @@ class NodeGroupsClient { node_groups_add_nodes_request_resource, Options opts = {}); + StatusOr AddNodes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroupsAddNodesRequest const& + node_groups_add_nodes_request_resource, + Options opts = {}); + // clang-format off /// /// Adds specified number of nodes to the node group. @@ -163,6 +173,17 @@ class NodeGroupsClient { request, Options opts = {}); + StatusOr AddNodes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::AddNodesRequest const& + request, + Options opts = {}); + + future> AddNodes( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes @@ -281,6 +302,11 @@ class NodeGroupsClient { std::string const& project, std::string const& zone, std::string const& node_group, Options opts = {}); + StatusOr DeleteNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, Options opts = {}); + // clang-format off /// /// Deletes the specified NodeGroup resource. @@ -320,6 +346,17 @@ class NodeGroupsClient { DeleteNodeGroupRequest const& request, Options opts = {}); + StatusOr DeleteNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + DeleteNodeGroupRequest const& request, + Options opts = {}); + + future> DeleteNodeGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes specified nodes from the node group. @@ -359,6 +396,14 @@ class NodeGroupsClient { node_groups_delete_nodes_request_resource, Options opts = {}); + StatusOr DeleteNodes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroupsDeleteNodesRequest const& + node_groups_delete_nodes_request_resource, + Options opts = {}); + // clang-format off /// /// Deletes specified nodes from the node group. @@ -398,6 +443,17 @@ class NodeGroupsClient { request, Options opts = {}); + StatusOr DeleteNodes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::DeleteNodesRequest const& + request, + Options opts = {}); + + future> DeleteNodes( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified NodeGroup. Get a list of available NodeGroups by @@ -567,6 +623,13 @@ class NodeGroupsClient { google::cloud::cpp::compute::v1::NodeGroup const& node_group_resource, Options opts = {}); + StatusOr InsertNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::int32_t initial_node_count, + google::cloud::cpp::compute::v1::NodeGroup const& node_group_resource, + Options opts = {}); + // clang-format off /// /// Creates a NodeGroup resource in the specified project using the data @@ -607,6 +670,17 @@ class NodeGroupsClient { InsertNodeGroupRequest const& request, Options opts = {}); + StatusOr InsertNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + InsertNodeGroupRequest const& request, + Options opts = {}); + + future> InsertNodeGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of node groups available to the specified project. Note: @@ -804,6 +878,13 @@ class NodeGroupsClient { google::cloud::cpp::compute::v1::NodeGroup const& node_group_resource, Options opts = {}); + StatusOr PatchNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroup const& node_group_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified node group. @@ -843,6 +924,17 @@ class NodeGroupsClient { request, Options opts = {}); + StatusOr PatchNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1::PatchNodeGroupRequest const& + request, + Options opts = {}); + + future> PatchNodeGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Perform maintenance on a subset of nodes in the node group. @@ -883,6 +975,15 @@ class NodeGroupsClient { node_groups_perform_maintenance_request_resource, Options opts = {}); + StatusOr PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1:: + NodeGroupsPerformMaintenanceRequest const& + node_groups_perform_maintenance_request_resource, + Options opts = {}); + // clang-format off /// /// Perform maintenance on a subset of nodes in the node group. @@ -922,6 +1023,18 @@ class NodeGroupsClient { PerformMaintenanceRequest const& request, Options opts = {}); + StatusOr PerformMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + PerformMaintenanceRequest const& request, + Options opts = {}); + + future> + PerformMaintenance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -1029,6 +1142,14 @@ class NodeGroupsClient { node_groups_set_node_template_request_resource, Options opts = {}); + StatusOr SetNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1::NodeGroupsSetNodeTemplateRequest const& + node_groups_set_node_template_request_resource, + Options opts = {}); + // clang-format off /// /// Updates the node template of the node group. @@ -1068,6 +1189,17 @@ class NodeGroupsClient { SetNodeTemplateRequest const& request, Options opts = {}); + StatusOr SetNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SetNodeTemplateRequest const& request, + Options opts = {}); + + future> SetNodeTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Simulates maintenance event on specified nodes from the node group. @@ -1110,6 +1242,15 @@ class NodeGroupsClient { node_groups_simulate_maintenance_event_request_resource, Options opts = {}); + StatusOr SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& node_group, + google::cloud::cpp::compute::v1:: + NodeGroupsSimulateMaintenanceEventRequest const& + node_groups_simulate_maintenance_event_request_resource, + Options opts = {}); + // clang-format off /// /// Simulates maintenance event on specified nodes from the node group. @@ -1149,6 +1290,18 @@ class NodeGroupsClient { SimulateMaintenanceEventRequest const& request, Options opts = {}); + StatusOr SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_groups::v1:: + SimulateMaintenanceEventRequest const& request, + Options opts = {}); + + future> + SimulateMaintenanceEvent( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. 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..ca3ffba06b9ad 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,31 @@ NodeTemplatesTracingConnection::DeleteNodeTemplate( child_->DeleteNodeTemplate(request)); } +StatusOr +NodeTemplatesTracingConnection::DeleteNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeTemplatesTracingConnection::DeleteNodeTemplate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NodeTemplatesTracingConnection::GetNodeTemplate( google::cloud::cpp::compute::node_templates::v1:: @@ -90,6 +115,31 @@ NodeTemplatesTracingConnection::InsertNodeTemplate( child_->InsertNodeTemplate(request)); } +StatusOr +NodeTemplatesTracingConnection::InsertNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeTemplatesTracingConnection::InsertNodeTemplate( + google::cloud::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(google::cloud::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..b437c430dd89a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request) override; + + future> + DeleteNodeTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request) override; + + future> + InsertNodeTemplate( + google::cloud::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..ad70ac49baec4 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNodeTemplate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNodeTemplate, + (google::cloud::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_client.cc b/google/cloud/compute/node_templates/v1/node_templates_client.cc index 3d38a11022472..2a9e23f7ae9af 100644 --- a/google/cloud/compute/node_templates/v1/node_templates_client.cc +++ b/google/cloud/compute/node_templates/v1/node_templates_client.cc @@ -67,6 +67,23 @@ NodeTemplatesClient::DeleteNodeTemplate(std::string const& project, return connection_->DeleteNodeTemplate(request); } +StatusOr +NodeTemplatesClient::DeleteNodeTemplate(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& node_template, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_templates::v1::DeleteNodeTemplateRequest + request; + request.set_project(project); + request.set_region(region); + request.set_node_template(node_template); + return connection_->DeleteNodeTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeTemplatesClient::DeleteNodeTemplate( google::cloud::cpp::compute::node_templates::v1:: @@ -76,6 +93,26 @@ NodeTemplatesClient::DeleteNodeTemplate( return connection_->DeleteNodeTemplate(request); } +StatusOr +NodeTemplatesClient::DeleteNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNodeTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeTemplatesClient::DeleteNodeTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNodeTemplate(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NodeTemplatesClient::GetNodeTemplate(std::string const& project, std::string const& region, @@ -134,6 +171,22 @@ NodeTemplatesClient::InsertNodeTemplate( return connection_->InsertNodeTemplate(request); } +StatusOr +NodeTemplatesClient::InsertNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NodeTemplate const& node_template_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::node_templates::v1::InsertNodeTemplateRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_node_template_resource() = node_template_resource; + return connection_->InsertNodeTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeTemplatesClient::InsertNodeTemplate( google::cloud::cpp::compute::node_templates::v1:: @@ -143,6 +196,26 @@ NodeTemplatesClient::InsertNodeTemplate( return connection_->InsertNodeTemplate(request); } +StatusOr +NodeTemplatesClient::InsertNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNodeTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeTemplatesClient::InsertNodeTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNodeTemplate(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NodeTemplatesClient::ListNodeTemplates(std::string const& project, std::string const& region, diff --git a/google/cloud/compute/node_templates/v1/node_templates_client.h b/google/cloud/compute/node_templates/v1/node_templates_client.h index 8cf21562b4a1b..778b1ef3449c7 100644 --- a/google/cloud/compute/node_templates/v1/node_templates_client.h +++ b/google/cloud/compute/node_templates/v1/node_templates_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NODE_TEMPLATES_V1_NODE_TEMPLATES_CLIENT_H #include "google/cloud/compute/node_templates/v1/node_templates_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class NodeTemplatesClient { DeleteNodeTemplate(std::string const& project, std::string const& region, std::string const& node_template, Options opts = {}); + StatusOr DeleteNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& node_template, Options opts = {}); + // clang-format off /// /// Deletes the specified NodeTemplate resource. @@ -242,6 +249,18 @@ class NodeTemplatesClient { DeleteNodeTemplateRequest const& request, Options opts = {}); + StatusOr DeleteNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + DeleteNodeTemplateRequest const& request, + Options opts = {}); + + future> + DeleteNodeTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified node template. @@ -406,6 +425,13 @@ class NodeTemplatesClient { node_template_resource, Options opts = {}); + StatusOr InsertNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NodeTemplate const& + node_template_resource, + Options opts = {}); + // clang-format off /// /// Creates a NodeTemplate resource in the specified project using the data @@ -446,6 +472,18 @@ class NodeTemplatesClient { InsertNodeTemplateRequest const& request, Options opts = {}); + StatusOr InsertNodeTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::node_templates::v1:: + InsertNodeTemplateRequest const& request, + Options opts = {}); + + future> + InsertNodeTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of node templates available to the specified project. 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_client.h b/google/cloud/compute/node_types/v1/node_types_client.h index 89946a362a71a..8d238190e6315 100644 --- a/google/cloud/compute/node_types/v1/node_types_client.h +++ b/google/cloud/compute/node_types/v1/node_types_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_NODE_TYPES_V1_NODE_TYPES_CLIENT_H #include "google/cloud/compute/node_types/v1/node_types_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..41059312d02c8 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,33 @@ PacketMirroringsTracingConnection::DeletePacketMirroring( child_->DeletePacketMirroring(request)); } +StatusOr +PacketMirroringsTracingConnection::DeletePacketMirroring( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PacketMirroringsTracingConnection::DeletePacketMirroring( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr PacketMirroringsTracingConnection::GetPacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -85,6 +112,33 @@ PacketMirroringsTracingConnection::InsertPacketMirroring( child_->InsertPacketMirroring(request)); } +StatusOr +PacketMirroringsTracingConnection::InsertPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PacketMirroringsTracingConnection::InsertPacketMirroring( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange PacketMirroringsTracingConnection::ListPacketMirrorings( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -111,6 +165,33 @@ PacketMirroringsTracingConnection::PatchPacketMirroring( child_->PatchPacketMirroring(request)); } +StatusOr +PacketMirroringsTracingConnection::PatchPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PacketMirroringsTracingConnection::PatchPacketMirroring( + google::cloud::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( + google::cloud::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..0a009a92ea765 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request) override; + + future> + DeletePacketMirroring( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request) override; + + future> + InsertPacketMirroring( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request) override; + + future> + PatchPacketMirroring( + google::cloud::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..57351e0e51fd7 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePacketMirroring, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertPacketMirroring, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPacketMirroring, + (google::cloud::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_client.cc b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.cc index ab340cd6da4e3..6a96745bfca7e 100644 --- a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.cc +++ b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.cc @@ -66,6 +66,21 @@ PacketMirroringsClient::DeletePacketMirroring( return connection_->DeletePacketMirroring(request); } +StatusOr +PacketMirroringsClient::DeletePacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& packet_mirroring, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest request; + request.set_project(project); + request.set_region(region); + request.set_packet_mirroring(packet_mirroring); + return connection_->DeletePacketMirroring( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PacketMirroringsClient::DeletePacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -75,6 +90,26 @@ PacketMirroringsClient::DeletePacketMirroring( return connection_->DeletePacketMirroring(request); } +StatusOr +PacketMirroringsClient::DeletePacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePacketMirroring( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PacketMirroringsClient::DeletePacketMirroring( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePacketMirroring(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr PacketMirroringsClient::GetPacketMirroring(std::string const& project, std::string const& region, @@ -113,6 +148,23 @@ PacketMirroringsClient::InsertPacketMirroring( return connection_->InsertPacketMirroring(request); } +StatusOr +PacketMirroringsClient::InsertPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::PacketMirroring const& + packet_mirroring_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_packet_mirroring_resource() = packet_mirroring_resource; + return connection_->InsertPacketMirroring( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PacketMirroringsClient::InsertPacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -122,6 +174,26 @@ PacketMirroringsClient::InsertPacketMirroring( return connection_->InsertPacketMirroring(request); } +StatusOr +PacketMirroringsClient::InsertPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertPacketMirroring( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PacketMirroringsClient::InsertPacketMirroring( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertPacketMirroring(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange PacketMirroringsClient::ListPacketMirrorings(std::string const& project, std::string const& region, @@ -160,6 +232,25 @@ PacketMirroringsClient::PatchPacketMirroring( return connection_->PatchPacketMirroring(request); } +StatusOr +PacketMirroringsClient::PatchPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& packet_mirroring, + google::cloud::cpp::compute::v1::PacketMirroring const& + packet_mirroring_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest request; + request.set_project(project); + request.set_region(region); + request.set_packet_mirroring(packet_mirroring); + *request.mutable_packet_mirroring_resource() = packet_mirroring_resource; + return connection_->PatchPacketMirroring( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PacketMirroringsClient::PatchPacketMirroring( google::cloud::cpp::compute::packet_mirrorings::v1:: @@ -169,6 +260,26 @@ PacketMirroringsClient::PatchPacketMirroring( return connection_->PatchPacketMirroring(request); } +StatusOr +PacketMirroringsClient::PatchPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPacketMirroring( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PacketMirroringsClient::PatchPacketMirroring( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPacketMirroring(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr PacketMirroringsClient::TestIamPermissions( std::string const& project, std::string const& region, diff --git a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.h b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.h index b3ec8eb2d8df1..f57d579d28395 100644 --- a/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.h +++ b/google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_PACKET_MIRRORINGS_V1_PACKET_MIRRORINGS_CLIENT_H #include "google/cloud/compute/packet_mirrorings/v1/packet_mirrorings_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class PacketMirroringsClient { DeletePacketMirroring(std::string const& project, std::string const& region, std::string const& packet_mirroring, Options opts = {}); + StatusOr DeletePacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& packet_mirroring, Options opts = {}); + // clang-format off /// /// Deletes the specified PacketMirroring resource. @@ -246,6 +253,18 @@ class PacketMirroringsClient { DeletePacketMirroringRequest const& request, Options opts = {}); + StatusOr DeletePacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + DeletePacketMirroringRequest const& request, + Options opts = {}); + + future> + DeletePacketMirroring( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified PacketMirroring resource. @@ -346,6 +365,13 @@ class PacketMirroringsClient { packet_mirroring_resource, Options opts = {}); + StatusOr InsertPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::PacketMirroring const& + packet_mirroring_resource, + Options opts = {}); + // clang-format off /// /// Creates a PacketMirroring resource in the specified project and region @@ -386,6 +412,18 @@ class PacketMirroringsClient { InsertPacketMirroringRequest const& request, Options opts = {}); + StatusOr InsertPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + InsertPacketMirroringRequest const& request, + Options opts = {}); + + future> + InsertPacketMirroring( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of PacketMirroring resources available to the specified @@ -508,6 +546,14 @@ class PacketMirroringsClient { packet_mirroring_resource, Options opts = {}); + StatusOr PatchPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& packet_mirroring, + google::cloud::cpp::compute::v1::PacketMirroring const& + packet_mirroring_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified PacketMirroring resource with the data included in @@ -549,6 +595,18 @@ class PacketMirroringsClient { PatchPacketMirroringRequest const& request, Options opts = {}); + StatusOr PatchPacketMirroring( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::packet_mirrorings::v1:: + PatchPacketMirroringRequest const& request, + Options opts = {}); + + future> + PatchPacketMirroring( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. 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..07fb423706043 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,31 @@ ProjectsTracingConnection::DisableXpnHost( return internal::EndSpan(std::move(span), child_->DisableXpnHost(request)); } +StatusOr +ProjectsTracingConnection::DisableXpnHost( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::DisableXpnHost( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::DisableXpnResource( google::cloud::cpp::compute::projects::v1::DisableXpnResourceRequest const& @@ -54,6 +79,31 @@ ProjectsTracingConnection::DisableXpnResource( child_->DisableXpnResource(request)); } +StatusOr +ProjectsTracingConnection::DisableXpnResource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::DisableXpnResource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::EnableXpnHost( google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& @@ -64,6 +114,31 @@ ProjectsTracingConnection::EnableXpnHost( return internal::EndSpan(std::move(span), child_->EnableXpnHost(request)); } +StatusOr +ProjectsTracingConnection::EnableXpnHost( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::EnableXpnHost( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::EnableXpnResource( google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& @@ -74,6 +149,31 @@ ProjectsTracingConnection::EnableXpnResource( return internal::EndSpan(std::move(span), child_->EnableXpnResource(request)); } +StatusOr +ProjectsTracingConnection::EnableXpnResource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::EnableXpnResource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ProjectsTracingConnection::GetProject( google::cloud::cpp::compute::projects::v1::GetProjectRequest const& @@ -124,6 +224,30 @@ ProjectsTracingConnection::MoveDisk( return internal::EndSpan(std::move(span), child_->MoveDisk(request)); } +StatusOr +ProjectsTracingConnection::MoveDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::MoveDisk( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::MoveInstance( google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& @@ -134,6 +258,31 @@ ProjectsTracingConnection::MoveInstance( return internal::EndSpan(std::move(span), child_->MoveInstance(request)); } +StatusOr +ProjectsTracingConnection::MoveInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::MoveInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::SetCloudArmorTier( google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& @@ -144,6 +293,31 @@ ProjectsTracingConnection::SetCloudArmorTier( return internal::EndSpan(std::move(span), child_->SetCloudArmorTier(request)); } +StatusOr +ProjectsTracingConnection::SetCloudArmorTier( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::SetCloudArmorTier( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::SetCommonInstanceMetadata( google::cloud::cpp::compute::projects::v1:: @@ -155,6 +329,31 @@ ProjectsTracingConnection::SetCommonInstanceMetadata( child_->SetCommonInstanceMetadata(request)); } +StatusOr +ProjectsTracingConnection::SetCommonInstanceMetadata( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::SetCommonInstanceMetadata( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::SetDefaultNetworkTier( google::cloud::cpp::compute::projects::v1:: @@ -166,6 +365,31 @@ ProjectsTracingConnection::SetDefaultNetworkTier( child_->SetDefaultNetworkTier(request)); } +StatusOr +ProjectsTracingConnection::SetDefaultNetworkTier( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::SetDefaultNetworkTier( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::SetUsageExportBucket( google::cloud::cpp::compute::projects::v1:: @@ -177,6 +401,31 @@ ProjectsTracingConnection::SetUsageExportBucket( child_->SetUsageExportBucket(request)); } +StatusOr +ProjectsTracingConnection::SetUsageExportBucket( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::SetUsageExportBucket( + google::cloud::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( + google::cloud::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..2101f9cfd17e2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request) override; + + future> DisableXpnHost( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> DisableXpnResource(google::cloud::cpp::compute::projects::v1:: DisableXpnResourceRequest const& request) override; + StatusOr DisableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const& request) override; + + future> + DisableXpnResource( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> EnableXpnHost( google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& request) override; + StatusOr EnableXpnHost( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request) override; + + future> EnableXpnHost( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> EnableXpnResource( google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& request) override; + StatusOr EnableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& + request) override; + + future> + EnableXpnResource( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request) + override; + + future> MoveDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> MoveInstance( google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& request) override; + StatusOr MoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request) override; + + future> MoveInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetCloudArmorTier( google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& request) override; + StatusOr SetCloudArmorTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& + request) override; + future> + SetCloudArmorTier( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + + future> + SetCommonInstanceMetadata( + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request) override; + + StatusOr SetCommonInstanceMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, google::cloud::cpp::compute::projects::v1:: SetCommonInstanceMetadataRequest const& request) override; + future> + SetCommonInstanceMetadata( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetDefaultNetworkTier( google::cloud::cpp::compute::projects::v1:: SetDefaultNetworkTierRequest const& request) override; + StatusOr SetDefaultNetworkTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request) override; + + future> + SetDefaultNetworkTier( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> SetUsageExportBucket(google::cloud::cpp::compute::projects::v1:: SetUsageExportBucketRequest const& request) override; + StatusOr SetUsageExportBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request) override; + + future> + SetUsageExportBucket( + google::cloud::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..49af5106d561c 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DisableXpnHost, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DisableXpnResource, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request), + (override)); + + MOCK_METHOD(future>, + EnableXpnHost, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + EnableXpnResourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + EnableXpnResource, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + MoveDisk, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + MoveInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCloudArmorTierRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetCloudArmorTier, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetCommonInstanceMetadata, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetDefaultNetworkTier, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUsageExportBucket, + (google::cloud::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_client.cc b/google/cloud/compute/projects/v1/projects_client.cc index acfba41a79298..be0ea6dfa1416 100644 --- a/google/cloud/compute/projects/v1/projects_client.cc +++ b/google/cloud/compute/projects/v1/projects_client.cc @@ -40,6 +40,17 @@ ProjectsClient::DisableXpnHost(std::string const& project, Options opts) { return connection_->DisableXpnHost(request); } +StatusOr +ProjectsClient::DisableXpnHost(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest request; + request.set_project(project); + return connection_->DisableXpnHost(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::DisableXpnHost( google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& @@ -49,6 +60,26 @@ ProjectsClient::DisableXpnHost( return connection_->DisableXpnHost(request); } +StatusOr +ProjectsClient::DisableXpnHost( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableXpnHost(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::DisableXpnHost( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableXpnHost(google::cloud::ExperimentalTag{}, + operation); +} + future> ProjectsClient::DisableXpnResource( std::string const& project, @@ -63,6 +94,22 @@ ProjectsClient::DisableXpnResource( return connection_->DisableXpnResource(request); } +StatusOr +ProjectsClient::DisableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ProjectsDisableXpnResourceRequest const& + projects_disable_xpn_resource_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::DisableXpnResourceRequest request; + request.set_project(project); + *request.mutable_projects_disable_xpn_resource_request_resource() = + projects_disable_xpn_resource_request_resource; + return connection_->DisableXpnResource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::DisableXpnResource( google::cloud::cpp::compute::projects::v1::DisableXpnResourceRequest const& @@ -72,6 +119,26 @@ ProjectsClient::DisableXpnResource( return connection_->DisableXpnResource(request); } +StatusOr +ProjectsClient::DisableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnResourceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableXpnResource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::DisableXpnResource( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableXpnResource(google::cloud::ExperimentalTag{}, + operation); +} + future> ProjectsClient::EnableXpnHost(std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -80,6 +147,17 @@ ProjectsClient::EnableXpnHost(std::string const& project, Options opts) { return connection_->EnableXpnHost(request); } +StatusOr +ProjectsClient::EnableXpnHost(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest request; + request.set_project(project); + return connection_->EnableXpnHost(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::EnableXpnHost( google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& @@ -89,6 +167,26 @@ ProjectsClient::EnableXpnHost( return connection_->EnableXpnHost(request); } +StatusOr +ProjectsClient::EnableXpnHost( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableXpnHost(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::EnableXpnHost( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableXpnHost(google::cloud::ExperimentalTag{}, + operation); +} + future> ProjectsClient::EnableXpnResource( std::string const& project, @@ -103,6 +201,22 @@ ProjectsClient::EnableXpnResource( return connection_->EnableXpnResource(request); } +StatusOr +ProjectsClient::EnableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ProjectsEnableXpnResourceRequest const& + projects_enable_xpn_resource_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest request; + request.set_project(project); + *request.mutable_projects_enable_xpn_resource_request_resource() = + projects_enable_xpn_resource_request_resource; + return connection_->EnableXpnResource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::EnableXpnResource( google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& @@ -112,6 +226,26 @@ ProjectsClient::EnableXpnResource( return connection_->EnableXpnResource(request); } +StatusOr +ProjectsClient::EnableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableXpnResource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::EnableXpnResource( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableXpnResource(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ProjectsClient::GetProject( std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -193,6 +327,20 @@ ProjectsClient::MoveDisk(std::string const& project, return connection_->MoveDisk(request); } +StatusOr ProjectsClient::MoveDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::DiskMoveRequest const& + disk_move_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::MoveDiskRequest request; + request.set_project(project); + *request.mutable_disk_move_request_resource() = disk_move_request_resource; + return connection_->MoveDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::MoveDisk( google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request, @@ -201,6 +349,23 @@ ProjectsClient::MoveDisk( return connection_->MoveDisk(request); } +StatusOr ProjectsClient::MoveDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::MoveDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveDisk(google::cloud::ExperimentalTag{}, operation); +} + future> ProjectsClient::MoveInstance( std::string const& project, @@ -215,6 +380,22 @@ ProjectsClient::MoveInstance( return connection_->MoveInstance(request); } +StatusOr +ProjectsClient::MoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::InstanceMoveRequest const& + instance_move_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest request; + request.set_project(project); + *request.mutable_instance_move_request_resource() = + instance_move_request_resource; + return connection_->MoveInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::MoveInstance( google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& @@ -224,6 +405,25 @@ ProjectsClient::MoveInstance( return connection_->MoveInstance(request); } +StatusOr +ProjectsClient::MoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::MoveInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveInstance(google::cloud::ExperimentalTag{}, operation); +} + future> ProjectsClient::SetCloudArmorTier( std::string const& project, @@ -238,6 +438,22 @@ ProjectsClient::SetCloudArmorTier( return connection_->SetCloudArmorTier(request); } +StatusOr +ProjectsClient::SetCloudArmorTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ProjectsSetCloudArmorTierRequest const& + projects_set_cloud_armor_tier_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest request; + request.set_project(project); + *request.mutable_projects_set_cloud_armor_tier_request_resource() = + projects_set_cloud_armor_tier_request_resource; + return connection_->SetCloudArmorTier(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::SetCloudArmorTier( google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& @@ -247,6 +463,26 @@ ProjectsClient::SetCloudArmorTier( return connection_->SetCloudArmorTier(request); } +StatusOr +ProjectsClient::SetCloudArmorTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetCloudArmorTier(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::SetCloudArmorTier( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetCloudArmorTier(google::cloud::ExperimentalTag{}, + operation); +} + future> ProjectsClient::SetCommonInstanceMetadata( std::string const& project, @@ -260,6 +496,21 @@ ProjectsClient::SetCommonInstanceMetadata( return connection_->SetCommonInstanceMetadata(request); } +StatusOr +ProjectsClient::SetCommonInstanceMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Metadata const& metadata_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::SetCommonInstanceMetadataRequest + request; + request.set_project(project); + *request.mutable_metadata_resource() = metadata_resource; + return connection_->SetCommonInstanceMetadata( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::SetCommonInstanceMetadata( google::cloud::cpp::compute::projects::v1:: @@ -269,6 +520,26 @@ ProjectsClient::SetCommonInstanceMetadata( return connection_->SetCommonInstanceMetadata(request); } +StatusOr +ProjectsClient::SetCommonInstanceMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetCommonInstanceMetadata( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::SetCommonInstanceMetadata( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetCommonInstanceMetadata( + google::cloud::ExperimentalTag{}, operation); +} + future> ProjectsClient::SetDefaultNetworkTier( std::string const& project, @@ -284,6 +555,23 @@ ProjectsClient::SetDefaultNetworkTier( return connection_->SetDefaultNetworkTier(request); } +StatusOr +ProjectsClient::SetDefaultNetworkTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ProjectsSetDefaultNetworkTierRequest const& + projects_set_default_network_tier_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::SetDefaultNetworkTierRequest + request; + request.set_project(project); + *request.mutable_projects_set_default_network_tier_request_resource() = + projects_set_default_network_tier_request_resource; + return connection_->SetDefaultNetworkTier( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::SetDefaultNetworkTier( google::cloud::cpp::compute::projects::v1:: @@ -293,6 +581,26 @@ ProjectsClient::SetDefaultNetworkTier( return connection_->SetDefaultNetworkTier(request); } +StatusOr +ProjectsClient::SetDefaultNetworkTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetDefaultNetworkTier( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::SetDefaultNetworkTier( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetDefaultNetworkTier(google::cloud::ExperimentalTag{}, + operation); +} + future> ProjectsClient::SetUsageExportBucket( std::string const& project, @@ -308,6 +616,23 @@ ProjectsClient::SetUsageExportBucket( return connection_->SetUsageExportBucket(request); } +StatusOr +ProjectsClient::SetUsageExportBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::UsageExportLocation const& + usage_export_location_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::projects::v1::SetUsageExportBucketRequest + request; + request.set_project(project); + *request.mutable_usage_export_location_resource() = + usage_export_location_resource; + return connection_->SetUsageExportBucket( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::SetUsageExportBucket( google::cloud::cpp::compute::projects::v1:: @@ -317,6 +642,26 @@ ProjectsClient::SetUsageExportBucket( return connection_->SetUsageExportBucket(request); } +StatusOr +ProjectsClient::SetUsageExportBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUsageExportBucket( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::SetUsageExportBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUsageExportBucket(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_projects_v1 } // namespace cloud diff --git a/google/cloud/compute/projects/v1/projects_client.h b/google/cloud/compute/projects/v1/projects_client.h index 8f4656f6d7f39..8141947508e9a 100644 --- a/google/cloud/compute/projects/v1/projects_client.h +++ b/google/cloud/compute/projects/v1/projects_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_PROJECTS_V1_PROJECTS_CLIENT_H #include "google/cloud/compute/projects/v1/projects_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -116,6 +118,10 @@ class ProjectsClient { future> DisableXpnHost( std::string const& project, Options opts = {}); + StatusOr DisableXpnHost( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, Options opts = {}); + // clang-format off /// /// Disable this project as a shared VPC host project. @@ -155,6 +161,17 @@ class ProjectsClient { request, Options opts = {}); + StatusOr DisableXpnHost( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::DisableXpnHostRequest const& + request, + Options opts = {}); + + future> DisableXpnHost( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Disable a service resource (also known as service project) associated with @@ -193,6 +210,13 @@ class ProjectsClient { projects_disable_xpn_resource_request_resource, Options opts = {}); + StatusOr DisableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ProjectsDisableXpnResourceRequest const& + projects_disable_xpn_resource_request_resource, + Options opts = {}); + // clang-format off /// /// Disable a service resource (also known as service project) associated with @@ -233,6 +257,18 @@ class ProjectsClient { DisableXpnResourceRequest const& request, Options opts = {}); + StatusOr DisableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + DisableXpnResourceRequest const& request, + Options opts = {}); + + future> + DisableXpnResource( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Enable this project as a shared VPC host project. @@ -265,6 +301,10 @@ class ProjectsClient { future> EnableXpnHost( std::string const& project, Options opts = {}); + StatusOr EnableXpnHost( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, Options opts = {}); + // clang-format off /// /// Enable this project as a shared VPC host project. @@ -304,6 +344,17 @@ class ProjectsClient { request, Options opts = {}); + StatusOr EnableXpnHost( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnHostRequest const& + request, + Options opts = {}); + + future> EnableXpnHost( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Enable service resource (a.k.a service project) for a host project, so that @@ -343,6 +394,13 @@ class ProjectsClient { projects_enable_xpn_resource_request_resource, Options opts = {}); + StatusOr EnableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ProjectsEnableXpnResourceRequest const& + projects_enable_xpn_resource_request_resource, + Options opts = {}); + // clang-format off /// /// Enable service resource (a.k.a service project) for a host project, so that @@ -385,6 +443,17 @@ class ProjectsClient { request, Options opts = {}); + StatusOr EnableXpnResource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::EnableXpnResourceRequest const& + request, + Options opts = {}); + + future> + EnableXpnResource(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified Project resource. To decrease latency for this @@ -695,6 +764,13 @@ class ProjectsClient { disk_move_request_resource, Options opts = {}); + StatusOr MoveDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::DiskMoveRequest const& + disk_move_request_resource, + Options opts = {}); + // clang-format off /// /// Moves a persistent disk from one zone to another. @@ -733,6 +809,16 @@ class ProjectsClient { google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request, Options opts = {}); + StatusOr MoveDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveDiskRequest const& request, + Options opts = {}); + + future> MoveDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Moves an instance and its attached persistent disks from one zone to @@ -774,6 +860,13 @@ class ProjectsClient { instance_move_request_resource, Options opts = {}); + StatusOr MoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::InstanceMoveRequest const& + instance_move_request_resource, + Options opts = {}); + // clang-format off /// /// Moves an instance and its attached persistent disks from one zone to @@ -818,6 +911,17 @@ class ProjectsClient { request, Options opts = {}); + StatusOr MoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::MoveInstanceRequest const& + request, + Options opts = {}); + + future> MoveInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the @@ -857,6 +961,13 @@ class ProjectsClient { projects_set_cloud_armor_tier_request_resource, Options opts = {}); + StatusOr SetCloudArmorTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::ProjectsSetCloudArmorTierRequest const& + projects_set_cloud_armor_tier_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the Cloud Armor tier of the project. To set ENTERPRISE or above the @@ -899,6 +1010,17 @@ class ProjectsClient { request, Options opts = {}); + StatusOr SetCloudArmorTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1::SetCloudArmorTierRequest const& + request, + Options opts = {}); + + future> + SetCloudArmorTier(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets metadata common to all instances within the specified project using @@ -936,6 +1058,13 @@ class ProjectsClient { google::cloud::cpp::compute::v1::Metadata const& metadata_resource, Options opts = {}); + StatusOr + SetCommonInstanceMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Metadata const& metadata_resource, + Options opts = {}); + // clang-format off /// /// Sets metadata common to all instances within the specified project using @@ -976,6 +1105,19 @@ class ProjectsClient { SetCommonInstanceMetadataRequest const& request, Options opts = {}); + StatusOr + SetCommonInstanceMetadata(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetCommonInstanceMetadataRequest const& request, + Options opts = {}); + + future> + SetCommonInstanceMetadata( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the default network tier of the project. The default network tier is @@ -1016,6 +1158,14 @@ class ProjectsClient { projects_set_default_network_tier_request_resource, Options opts = {}); + StatusOr SetDefaultNetworkTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1:: + ProjectsSetDefaultNetworkTierRequest const& + projects_set_default_network_tier_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the default network tier of the project. The default network tier is @@ -1057,6 +1207,18 @@ class ProjectsClient { SetDefaultNetworkTierRequest const& request, Options opts = {}); + StatusOr SetDefaultNetworkTier( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetDefaultNetworkTierRequest const& request, + Options opts = {}); + + future> + SetDefaultNetworkTier( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Enables the usage export feature and sets the usage export bucket where @@ -1096,6 +1258,13 @@ class ProjectsClient { usage_export_location_resource, Options opts = {}); + StatusOr SetUsageExportBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::UsageExportLocation const& + usage_export_location_resource, + Options opts = {}); + // clang-format off /// /// Enables the usage export feature and sets the usage export bucket where @@ -1137,6 +1306,18 @@ class ProjectsClient { SetUsageExportBucketRequest const& request, Options opts = {}); + StatusOr SetUsageExportBucket( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::projects::v1:: + SetUsageExportBucketRequest const& request, + Options opts = {}); + + future> + SetUsageExportBucket( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..ea7ad425264db 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,33 @@ PublicAdvertisedPrefixesTracingConnection::Announce( return internal::EndSpan(std::move(span), child_->Announce(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::Announce( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::Announce( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> PublicAdvertisedPrefixesTracingConnection::DeletePublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -60,6 +87,33 @@ PublicAdvertisedPrefixesTracingConnection::DeletePublicAdvertisedPrefix( child_->DeletePublicAdvertisedPrefix(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::DeletePublicAdvertisedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr PublicAdvertisedPrefixesTracingConnection::GetPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -83,6 +137,33 @@ PublicAdvertisedPrefixesTracingConnection::InsertPublicAdvertisedPrefix( child_->InsertPublicAdvertisedPrefix(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::InsertPublicAdvertisedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange PublicAdvertisedPrefixesTracingConnection::ListPublicAdvertisedPrefixes( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -109,6 +190,33 @@ PublicAdvertisedPrefixesTracingConnection::PatchPublicAdvertisedPrefix( child_->PatchPublicAdvertisedPrefix(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::PatchPublicAdvertisedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> PublicAdvertisedPrefixesTracingConnection::Withdraw( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -120,6 +228,33 @@ PublicAdvertisedPrefixesTracingConnection::Withdraw( return internal::EndSpan(std::move(span), child_->Withdraw(request)); } +StatusOr +PublicAdvertisedPrefixesTracingConnection::Withdraw( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicAdvertisedPrefixesTracingConnection::Withdraw( + google::cloud::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(google::cloud::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..172381d3c2c31 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request) override; + + future> Announce( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request) override; + + future> + DeletePublicAdvertisedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request) override; + + future> + InsertPublicAdvertisedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request) override; + + future> + PatchPublicAdvertisedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request) override; + + future> Withdraw( + google::cloud::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..60f33bb44c9c1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request), + (override)); + + MOCK_METHOD(future>, + Announce, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePublicAdvertisedPrefix, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertPublicAdvertisedPrefix, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPublicAdvertisedPrefix, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request), + (override)); + + MOCK_METHOD(future>, + Withdraw, + (google::cloud::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_client.cc b/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_client.cc index 2b7485d24eb93..8160aa7814c1b 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_client.cc +++ b/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_client.cc @@ -46,6 +46,20 @@ PublicAdvertisedPrefixesClient::Announce( return connection_->Announce(request); } +StatusOr +PublicAdvertisedPrefixesClient::Announce( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_advertised_prefix, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_advertised_prefixes::v1::AnnounceRequest + request; + request.set_project(project); + request.set_public_advertised_prefix(public_advertised_prefix); + return connection_->Announce(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PublicAdvertisedPrefixesClient::Announce( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -55,6 +69,25 @@ PublicAdvertisedPrefixesClient::Announce( return connection_->Announce(request); } +StatusOr +PublicAdvertisedPrefixesClient::Announce( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Announce(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +PublicAdvertisedPrefixesClient::Announce( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Announce(google::cloud::ExperimentalTag{}, operation); +} + future> PublicAdvertisedPrefixesClient::DeletePublicAdvertisedPrefix( std::string const& project, std::string const& public_advertised_prefix, @@ -67,6 +100,20 @@ PublicAdvertisedPrefixesClient::DeletePublicAdvertisedPrefix( return connection_->DeletePublicAdvertisedPrefix(request); } +StatusOr +PublicAdvertisedPrefixesClient::DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_advertised_prefix, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest request; + request.set_project(project); + request.set_public_advertised_prefix(public_advertised_prefix); + return connection_->DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PublicAdvertisedPrefixesClient::DeletePublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -76,6 +123,26 @@ PublicAdvertisedPrefixesClient::DeletePublicAdvertisedPrefix( return connection_->DeletePublicAdvertisedPrefix(request); } +StatusOr +PublicAdvertisedPrefixesClient::DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PublicAdvertisedPrefixesClient::DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr PublicAdvertisedPrefixesClient::GetPublicAdvertisedPrefix( std::string const& project, std::string const& public_advertised_prefix, @@ -112,6 +179,23 @@ PublicAdvertisedPrefixesClient::InsertPublicAdvertisedPrefix( return connection_->InsertPublicAdvertisedPrefix(request); } +StatusOr +PublicAdvertisedPrefixesClient::InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::PublicAdvertisedPrefix const& + public_advertised_prefix_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest request; + request.set_project(project); + *request.mutable_public_advertised_prefix_resource() = + public_advertised_prefix_resource; + return connection_->InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PublicAdvertisedPrefixesClient::InsertPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -121,6 +205,26 @@ PublicAdvertisedPrefixesClient::InsertPublicAdvertisedPrefix( return connection_->InsertPublicAdvertisedPrefix(request); } +StatusOr +PublicAdvertisedPrefixesClient::InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PublicAdvertisedPrefixesClient::InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange PublicAdvertisedPrefixesClient::ListPublicAdvertisedPrefixes( std::string const& project, Options opts) { @@ -156,6 +260,24 @@ PublicAdvertisedPrefixesClient::PatchPublicAdvertisedPrefix( return connection_->PatchPublicAdvertisedPrefix(request); } +StatusOr +PublicAdvertisedPrefixesClient::PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_advertised_prefix, + google::cloud::cpp::compute::v1::PublicAdvertisedPrefix const& + public_advertised_prefix_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest request; + request.set_project(project); + request.set_public_advertised_prefix(public_advertised_prefix); + *request.mutable_public_advertised_prefix_resource() = + public_advertised_prefix_resource; + return connection_->PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PublicAdvertisedPrefixesClient::PatchPublicAdvertisedPrefix( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -165,6 +287,26 @@ PublicAdvertisedPrefixesClient::PatchPublicAdvertisedPrefix( return connection_->PatchPublicAdvertisedPrefix(request); } +StatusOr +PublicAdvertisedPrefixesClient::PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PublicAdvertisedPrefixesClient::PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + future> PublicAdvertisedPrefixesClient::Withdraw( std::string const& project, std::string const& public_advertised_prefix, @@ -177,6 +319,20 @@ PublicAdvertisedPrefixesClient::Withdraw( return connection_->Withdraw(request); } +StatusOr +PublicAdvertisedPrefixesClient::Withdraw( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_advertised_prefix, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_advertised_prefixes::v1::WithdrawRequest + request; + request.set_project(project); + request.set_public_advertised_prefix(public_advertised_prefix); + return connection_->Withdraw(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PublicAdvertisedPrefixesClient::Withdraw( google::cloud::cpp::compute::public_advertised_prefixes::v1:: @@ -186,6 +342,25 @@ PublicAdvertisedPrefixesClient::Withdraw( return connection_->Withdraw(request); } +StatusOr +PublicAdvertisedPrefixesClient::Withdraw( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Withdraw(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +PublicAdvertisedPrefixesClient::Withdraw( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Withdraw(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_client.h index 0b5568264b633..de925433ffd76 100644 --- a/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_client.h +++ b/google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_PUBLIC_ADVERTISED_PREFIXES_V1_PUBLIC_ADVERTISED_PREFIXES_CLIENT_H #include "google/cloud/compute/public_advertised_prefixes/v1/public_advertised_prefixes_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,11 @@ class PublicAdvertisedPrefixesClient { std::string const& project, std::string const& public_advertised_prefix, Options opts = {}); + StatusOr Announce( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_advertised_prefix, + Options opts = {}); + // clang-format off /// /// Announces the specified PublicAdvertisedPrefix @@ -164,6 +171,17 @@ class PublicAdvertisedPrefixesClient { AnnounceRequest const& request, Options opts = {}); + StatusOr Announce( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + AnnounceRequest const& request, + Options opts = {}); + + future> Announce( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified PublicAdvertisedPrefix @@ -199,6 +217,13 @@ class PublicAdvertisedPrefixesClient { std::string const& public_advertised_prefix, Options opts = {}); + StatusOr + DeletePublicAdvertisedPrefix(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& public_advertised_prefix, + Options opts = {}); + // clang-format off /// /// Deletes the specified PublicAdvertisedPrefix @@ -239,6 +264,19 @@ class PublicAdvertisedPrefixesClient { DeletePublicAdvertisedPrefixRequest const& request, Options opts = {}); + StatusOr + DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + DeletePublicAdvertisedPrefixRequest const& request, + Options opts = {}); + + future> + DeletePublicAdvertisedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified PublicAdvertisedPrefix resource. @@ -340,6 +378,14 @@ class PublicAdvertisedPrefixesClient { public_advertised_prefix_resource, Options opts = {}); + StatusOr + InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::PublicAdvertisedPrefix const& + public_advertised_prefix_resource, + Options opts = {}); + // clang-format off /// /// Creates a PublicAdvertisedPrefix in the specified project using the @@ -381,6 +427,19 @@ class PublicAdvertisedPrefixesClient { InsertPublicAdvertisedPrefixRequest const& request, Options opts = {}); + StatusOr + InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + InsertPublicAdvertisedPrefixRequest const& request, + Options opts = {}); + + future> + InsertPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the PublicAdvertisedPrefixes for a project. @@ -499,6 +558,14 @@ class PublicAdvertisedPrefixesClient { public_advertised_prefix_resource, Options opts = {}); + StatusOr + PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_advertised_prefix, + google::cloud::cpp::compute::v1::PublicAdvertisedPrefix const& + public_advertised_prefix_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified Router resource with the data included in the @@ -541,6 +608,19 @@ class PublicAdvertisedPrefixesClient { PatchPublicAdvertisedPrefixRequest const& request, Options opts = {}); + StatusOr + PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + PatchPublicAdvertisedPrefixRequest const& request, + Options opts = {}); + + future> + PatchPublicAdvertisedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Withdraws the specified PublicAdvertisedPrefix @@ -575,6 +655,11 @@ class PublicAdvertisedPrefixesClient { std::string const& project, std::string const& public_advertised_prefix, Options opts = {}); + StatusOr Withdraw( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& public_advertised_prefix, + Options opts = {}); + // clang-format off /// /// Withdraws the specified PublicAdvertisedPrefix @@ -614,6 +699,17 @@ class PublicAdvertisedPrefixesClient { WithdrawRequest const& request, Options opts = {}); + StatusOr Withdraw( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_advertised_prefixes::v1:: + WithdrawRequest const& request, + Options opts = {}); + + future> Withdraw( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..9e2d62baee49e 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,33 @@ PublicDelegatedPrefixesTracingConnection::Announce( return internal::EndSpan(std::move(span), child_->Announce(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::Announce( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::Announce( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> PublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -76,6 +103,33 @@ PublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( child_->DeletePublicDelegatedPrefix(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::DeletePublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr PublicDelegatedPrefixesTracingConnection::GetPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -99,6 +153,33 @@ PublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( child_->InsertPublicDelegatedPrefix(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::InsertPublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange PublicDelegatedPrefixesTracingConnection::ListPublicDelegatedPrefixes( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -125,6 +206,33 @@ PublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( child_->PatchPublicDelegatedPrefix(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::PatchPublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> PublicDelegatedPrefixesTracingConnection::Withdraw( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -136,6 +244,33 @@ PublicDelegatedPrefixesTracingConnection::Withdraw( return internal::EndSpan(std::move(span), child_->Withdraw(request)); } +StatusOr +PublicDelegatedPrefixesTracingConnection::Withdraw( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PublicDelegatedPrefixesTracingConnection::Withdraw( + google::cloud::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(google::cloud::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..05ef1062d1f24 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request) override; + + future> Announce( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request) override; + + future> + DeletePublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request) override; + + future> + InsertPublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request) override; + + future> + PatchPublicDelegatedPrefix( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request) override; + + future> Withdraw( + google::cloud::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..10225df53adc3 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request), + (override)); + + MOCK_METHOD(future>, + Announce, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePublicDelegatedPrefix, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertPublicDelegatedPrefix, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPublicDelegatedPrefix, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request), + (override)); + + MOCK_METHOD(future>, + Withdraw, + (google::cloud::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_client.cc b/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_client.cc index 70d38faf9f88f..72443c6c69f15 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_client.cc +++ b/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_client.cc @@ -67,6 +67,21 @@ PublicDelegatedPrefixesClient::Announce( return connection_->Announce(request); } +StatusOr +PublicDelegatedPrefixesClient::Announce( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& public_delegated_prefix, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_delegated_prefixes::v1::AnnounceRequest + request; + request.set_project(project); + request.set_region(region); + request.set_public_delegated_prefix(public_delegated_prefix); + return connection_->Announce(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PublicDelegatedPrefixesClient::Announce( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -76,6 +91,25 @@ PublicDelegatedPrefixesClient::Announce( return connection_->Announce(request); } +StatusOr +PublicDelegatedPrefixesClient::Announce( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Announce(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +PublicDelegatedPrefixesClient::Announce( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Announce(google::cloud::ExperimentalTag{}, operation); +} + future> PublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( std::string const& project, std::string const& region, @@ -89,6 +123,21 @@ PublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( return connection_->DeletePublicDelegatedPrefix(request); } +StatusOr +PublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& public_delegated_prefix, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest request; + request.set_project(project); + request.set_region(region); + request.set_public_delegated_prefix(public_delegated_prefix); + return connection_->DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -98,6 +147,26 @@ PublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( return connection_->DeletePublicDelegatedPrefix(request); } +StatusOr +PublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PublicDelegatedPrefixesClient::DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr PublicDelegatedPrefixesClient::GetPublicDelegatedPrefix( std::string const& project, std::string const& region, @@ -136,6 +205,24 @@ PublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( return connection_->InsertPublicDelegatedPrefix(request); } +StatusOr +PublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::PublicDelegatedPrefix const& + public_delegated_prefix_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_public_delegated_prefix_resource() = + public_delegated_prefix_resource; + return connection_->InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -145,6 +232,26 @@ PublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( return connection_->InsertPublicDelegatedPrefix(request); } +StatusOr +PublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PublicDelegatedPrefixesClient::InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange PublicDelegatedPrefixesClient::ListPublicDelegatedPrefixes( std::string const& project, std::string const& region, Options opts) { @@ -183,6 +290,26 @@ PublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( return connection_->PatchPublicDelegatedPrefix(request); } +StatusOr +PublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& public_delegated_prefix, + google::cloud::cpp::compute::v1::PublicDelegatedPrefix const& + public_delegated_prefix_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest request; + request.set_project(project); + request.set_region(region); + request.set_public_delegated_prefix(public_delegated_prefix); + *request.mutable_public_delegated_prefix_resource() = + public_delegated_prefix_resource; + return connection_->PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -192,6 +319,26 @@ PublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( return connection_->PatchPublicDelegatedPrefix(request); } +StatusOr +PublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PublicDelegatedPrefixesClient::PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag{}, operation); +} + future> PublicDelegatedPrefixesClient::Withdraw( std::string const& project, std::string const& region, @@ -205,6 +352,21 @@ PublicDelegatedPrefixesClient::Withdraw( return connection_->Withdraw(request); } +StatusOr +PublicDelegatedPrefixesClient::Withdraw( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& public_delegated_prefix, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::public_delegated_prefixes::v1::WithdrawRequest + request; + request.set_project(project); + request.set_region(region); + request.set_public_delegated_prefix(public_delegated_prefix); + return connection_->Withdraw(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PublicDelegatedPrefixesClient::Withdraw( google::cloud::cpp::compute::public_delegated_prefixes::v1:: @@ -214,6 +376,25 @@ PublicDelegatedPrefixesClient::Withdraw( return connection_->Withdraw(request); } +StatusOr +PublicDelegatedPrefixesClient::Withdraw( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Withdraw(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +PublicDelegatedPrefixesClient::Withdraw( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Withdraw(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_client.h index dc5b55a0cf4d3..197ef01a7aa34 100644 --- a/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_client.h +++ b/google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_PUBLIC_DELEGATED_PREFIXES_V1_PUBLIC_DELEGATED_PREFIXES_CLIENT_H #include "google/cloud/compute/public_delegated_prefixes/v1/public_delegated_prefixes_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class PublicDelegatedPrefixesClient { std::string const& project, std::string const& region, std::string const& public_delegated_prefix, Options opts = {}); + StatusOr Announce( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& public_delegated_prefix, Options opts = {}); + // clang-format off /// /// Announces the specified PublicDelegatedPrefix in the given region. @@ -251,6 +258,17 @@ class PublicDelegatedPrefixesClient { AnnounceRequest const& request, Options opts = {}); + StatusOr Announce( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + AnnounceRequest const& request, + Options opts = {}); + + future> Announce( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified PublicDelegatedPrefix in the given region. @@ -288,6 +306,14 @@ class PublicDelegatedPrefixesClient { std::string const& public_delegated_prefix, Options opts = {}); + StatusOr + DeletePublicDelegatedPrefix(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& public_delegated_prefix, + Options opts = {}); + // clang-format off /// /// Deletes the specified PublicDelegatedPrefix in the given region. @@ -328,6 +354,19 @@ class PublicDelegatedPrefixesClient { DeletePublicDelegatedPrefixRequest const& request, Options opts = {}); + StatusOr + DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + DeletePublicDelegatedPrefixRequest const& request, + Options opts = {}); + + future> + DeletePublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified PublicDelegatedPrefix resource in the given region. @@ -432,6 +471,14 @@ class PublicDelegatedPrefixesClient { public_delegated_prefix_resource, Options opts = {}); + StatusOr + InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::PublicDelegatedPrefix const& + public_delegated_prefix_resource, + Options opts = {}); + // clang-format off /// /// Creates a PublicDelegatedPrefix in the specified project in the given @@ -473,6 +520,19 @@ class PublicDelegatedPrefixesClient { InsertPublicDelegatedPrefixRequest const& request, Options opts = {}); + StatusOr + InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + InsertPublicDelegatedPrefixRequest const& request, + Options opts = {}); + + future> + InsertPublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the PublicDelegatedPrefixes for a project in the given region. @@ -595,6 +655,15 @@ class PublicDelegatedPrefixesClient { public_delegated_prefix_resource, Options opts = {}); + StatusOr + PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& public_delegated_prefix, + google::cloud::cpp::compute::v1::PublicDelegatedPrefix const& + public_delegated_prefix_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified PublicDelegatedPrefix resource with the data included @@ -637,6 +706,19 @@ class PublicDelegatedPrefixesClient { PatchPublicDelegatedPrefixRequest const& request, Options opts = {}); + StatusOr + PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + PatchPublicDelegatedPrefixRequest const& request, + Options opts = {}); + + future> + PatchPublicDelegatedPrefix( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Withdraws the specified PublicDelegatedPrefix in the given region. @@ -673,6 +755,11 @@ class PublicDelegatedPrefixesClient { std::string const& project, std::string const& region, std::string const& public_delegated_prefix, Options opts = {}); + StatusOr Withdraw( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& public_delegated_prefix, Options opts = {}); + // clang-format off /// /// Withdraws the specified PublicDelegatedPrefix in the given region. @@ -712,6 +799,17 @@ class PublicDelegatedPrefixesClient { WithdrawRequest const& request, Options opts = {}); + StatusOr Withdraw( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::public_delegated_prefixes::v1:: + WithdrawRequest const& request, + Options opts = {}); + + future> Withdraw( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..7c699937885c3 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,33 @@ RegionAutoscalersTracingConnection::DeleteAutoscaler( return internal::EndSpan(std::move(span), child_->DeleteAutoscaler(request)); } +StatusOr +RegionAutoscalersTracingConnection::DeleteAutoscaler( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionAutoscalersTracingConnection::DeleteAutoscaler( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionAutoscalersTracingConnection::GetAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -67,6 +94,33 @@ RegionAutoscalersTracingConnection::InsertAutoscaler( return internal::EndSpan(std::move(span), child_->InsertAutoscaler(request)); } +StatusOr +RegionAutoscalersTracingConnection::InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionAutoscalersTracingConnection::InsertAutoscaler( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionAutoscalersTracingConnection::ListRegionAutoscalers( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -92,6 +146,33 @@ RegionAutoscalersTracingConnection::PatchAutoscaler( return internal::EndSpan(std::move(span), child_->PatchAutoscaler(request)); } +StatusOr +RegionAutoscalersTracingConnection::PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionAutoscalersTracingConnection::PatchAutoscaler( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionAutoscalersTracingConnection::UpdateAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -103,6 +184,33 @@ RegionAutoscalersTracingConnection::UpdateAutoscaler( return internal::EndSpan(std::move(span), child_->UpdateAutoscaler(request)); } +StatusOr +RegionAutoscalersTracingConnection::UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionAutoscalersTracingConnection::UpdateAutoscaler( + google::cloud::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(google::cloud::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..1ea468cc9a563 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request) override; + + future> DeleteAutoscaler( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request) override; + + future> InsertAutoscaler( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request) override; + + future> PatchAutoscaler( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request) override; + + future> UpdateAutoscaler( + google::cloud::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..e6a5c7dfef6d3 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAutoscaler, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertAutoscaler, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchAutoscaler, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAutoscaler, + (google::cloud::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_client.cc b/google/cloud/compute/region_autoscalers/v1/region_autoscalers_client.cc index 6e72d23c2d72d..6c2cfcd0ebb34 100644 --- a/google/cloud/compute/region_autoscalers/v1/region_autoscalers_client.cc +++ b/google/cloud/compute/region_autoscalers/v1/region_autoscalers_client.cc @@ -46,6 +46,23 @@ RegionAutoscalersClient::DeleteAutoscaler(std::string const& project, return connection_->DeleteAutoscaler(request); } +StatusOr +RegionAutoscalersClient::DeleteAutoscaler(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& autoscaler, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_autoscalers::v1::DeleteAutoscalerRequest + request; + request.set_project(project); + request.set_region(region); + request.set_autoscaler(autoscaler); + return connection_->DeleteAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionAutoscalersClient::DeleteAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -55,6 +72,26 @@ RegionAutoscalersClient::DeleteAutoscaler( return connection_->DeleteAutoscaler(request); } +StatusOr +RegionAutoscalersClient::DeleteAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionAutoscalersClient::DeleteAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAutoscaler(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionAutoscalersClient::GetAutoscaler(std::string const& project, std::string const& region, @@ -92,6 +129,22 @@ RegionAutoscalersClient::InsertAutoscaler( return connection_->InsertAutoscaler(request); } +StatusOr +RegionAutoscalersClient::InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_autoscalers::v1::InsertAutoscalerRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_autoscaler_resource() = autoscaler_resource; + return connection_->InsertAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionAutoscalersClient::InsertAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -101,6 +154,26 @@ RegionAutoscalersClient::InsertAutoscaler( return connection_->InsertAutoscaler(request); } +StatusOr +RegionAutoscalersClient::InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionAutoscalersClient::InsertAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertAutoscaler(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionAutoscalersClient::ListRegionAutoscalers(std::string const& project, std::string const& region, @@ -136,6 +209,22 @@ RegionAutoscalersClient::PatchAutoscaler( return connection_->PatchAutoscaler(request); } +StatusOr +RegionAutoscalersClient::PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_autoscalers::v1::PatchAutoscalerRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_autoscaler_resource() = autoscaler_resource; + return connection_->PatchAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionAutoscalersClient::PatchAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -145,6 +234,26 @@ RegionAutoscalersClient::PatchAutoscaler( return connection_->PatchAutoscaler(request); } +StatusOr +RegionAutoscalersClient::PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionAutoscalersClient::PatchAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchAutoscaler(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionAutoscalersClient::UpdateAutoscaler( std::string const& project, std::string const& region, @@ -159,6 +268,22 @@ RegionAutoscalersClient::UpdateAutoscaler( return connection_->UpdateAutoscaler(request); } +StatusOr +RegionAutoscalersClient::UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_autoscalers::v1::UpdateAutoscalerRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_autoscaler_resource() = autoscaler_resource; + return connection_->UpdateAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionAutoscalersClient::UpdateAutoscaler( google::cloud::cpp::compute::region_autoscalers::v1:: @@ -168,6 +293,26 @@ RegionAutoscalersClient::UpdateAutoscaler( return connection_->UpdateAutoscaler(request); } +StatusOr +RegionAutoscalersClient::UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAutoscaler(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionAutoscalersClient::UpdateAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAutoscaler(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_autoscalers_v1 } // namespace cloud diff --git a/google/cloud/compute/region_autoscalers/v1/region_autoscalers_client.h b/google/cloud/compute/region_autoscalers/v1/region_autoscalers_client.h index 2c264d45ba134..3be5fec46c8e4 100644 --- a/google/cloud/compute/region_autoscalers/v1/region_autoscalers_client.h +++ b/google/cloud/compute/region_autoscalers/v1/region_autoscalers_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_AUTOSCALERS_V1_REGION_AUTOSCALERS_CLIENT_H #include "google/cloud/compute/region_autoscalers/v1/region_autoscalers_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -123,6 +125,11 @@ class RegionAutoscalersClient { std::string const& project, std::string const& region, std::string const& autoscaler, Options opts = {}); + StatusOr DeleteAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& autoscaler, Options opts = {}); + // clang-format off /// /// Deletes the specified autoscaler. @@ -162,6 +169,17 @@ class RegionAutoscalersClient { DeleteAutoscalerRequest const& request, Options opts = {}); + StatusOr DeleteAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + DeleteAutoscalerRequest const& request, + Options opts = {}); + + future> DeleteAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified autoscaler. @@ -261,6 +279,12 @@ class RegionAutoscalersClient { google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, Options opts = {}); + StatusOr InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts = {}); + // clang-format off /// /// Creates an autoscaler in the specified project using the data included in @@ -301,6 +325,17 @@ class RegionAutoscalersClient { InsertAutoscalerRequest const& request, Options opts = {}); + StatusOr InsertAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + InsertAutoscalerRequest const& request, + Options opts = {}); + + future> InsertAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of autoscalers contained within the specified region. @@ -418,6 +453,12 @@ class RegionAutoscalersClient { google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, Options opts = {}); + StatusOr PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts = {}); + // clang-format off /// /// Updates an autoscaler in the specified project using the data included in @@ -459,6 +500,17 @@ class RegionAutoscalersClient { PatchAutoscalerRequest const& request, Options opts = {}); + StatusOr PatchAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + PatchAutoscalerRequest const& request, + Options opts = {}); + + future> PatchAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an autoscaler in the specified project using the data included in @@ -496,6 +548,12 @@ class RegionAutoscalersClient { google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, Options opts = {}); + StatusOr UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Autoscaler const& autoscaler_resource, + Options opts = {}); + // clang-format off /// /// Updates an autoscaler in the specified project using the data included in @@ -536,6 +594,17 @@ class RegionAutoscalersClient { UpdateAutoscalerRequest const& request, Options opts = {}); + StatusOr UpdateAutoscaler( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_autoscalers::v1:: + UpdateAutoscalerRequest const& request, + Options opts = {}); + + future> UpdateAutoscaler( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..241ab78aea42e 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,33 @@ RegionBackendServicesTracingConnection::DeleteBackendService( child_->DeleteBackendService(request)); } +StatusOr +RegionBackendServicesTracingConnection::DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::DeleteBackendService( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionBackendServicesTracingConnection::GetBackendService( google::cloud::cpp::compute::region_backend_services::v1:: @@ -93,6 +120,33 @@ RegionBackendServicesTracingConnection::InsertBackendService( child_->InsertBackendService(request)); } +StatusOr +RegionBackendServicesTracingConnection::InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::InsertBackendService( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionBackendServicesTracingConnection::ListRegionBackendServices( google::cloud::cpp::compute::region_backend_services::v1:: @@ -133,6 +187,33 @@ RegionBackendServicesTracingConnection::PatchBackendService( child_->PatchBackendService(request)); } +StatusOr +RegionBackendServicesTracingConnection::PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::PatchBackendService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionBackendServicesTracingConnection::SetIamPolicy( google::cloud::cpp::compute::region_backend_services::v1:: @@ -155,6 +236,33 @@ RegionBackendServicesTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +RegionBackendServicesTracingConnection::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::SetSecurityPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionBackendServicesTracingConnection::TestIamPermissions( google::cloud::cpp::compute::region_backend_services::v1:: @@ -178,6 +286,33 @@ RegionBackendServicesTracingConnection::UpdateBackendService( child_->UpdateBackendService(request)); } +StatusOr +RegionBackendServicesTracingConnection::UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionBackendServicesTracingConnection::UpdateBackendService( + google::cloud::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( + google::cloud::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..686d27b2934dc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request) override; + + future> + DeleteBackendService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request) override; + + future> + InsertBackendService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request) override; + + future> + PatchBackendService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request) override; + + future> + UpdateBackendService( + google::cloud::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..16cfc06a7d6b9 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackendService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertBackendService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchBackendService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackendService, + (google::cloud::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_client.cc b/google/cloud/compute/region_backend_services/v1/region_backend_services_client.cc index 351d5633243f2..f8df748df5193 100644 --- a/google/cloud/compute/region_backend_services/v1/region_backend_services_client.cc +++ b/google/cloud/compute/region_backend_services/v1/region_backend_services_client.cc @@ -46,6 +46,21 @@ RegionBackendServicesClient::DeleteBackendService( return connection_->DeleteBackendService(request); } +StatusOr +RegionBackendServicesClient::DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& backend_service, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest request; + request.set_project(project); + request.set_region(region); + request.set_backend_service(backend_service); + return connection_->DeleteBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionBackendServicesClient::DeleteBackendService( google::cloud::cpp::compute::region_backend_services::v1:: @@ -55,6 +70,26 @@ RegionBackendServicesClient::DeleteBackendService( return connection_->DeleteBackendService(request); } +StatusOr +RegionBackendServicesClient::DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionBackendServicesClient::DeleteBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackendService(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionBackendServicesClient::GetBackendService( std::string const& project, std::string const& region, @@ -142,6 +177,23 @@ RegionBackendServicesClient::InsertBackendService( return connection_->InsertBackendService(request); } +StatusOr +RegionBackendServicesClient::InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_backend_service_resource() = backend_service_resource; + return connection_->InsertBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionBackendServicesClient::InsertBackendService( google::cloud::cpp::compute::region_backend_services::v1:: @@ -151,6 +203,26 @@ RegionBackendServicesClient::InsertBackendService( return connection_->InsertBackendService(request); } +StatusOr +RegionBackendServicesClient::InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionBackendServicesClient::InsertBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertBackendService(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionBackendServicesClient::ListRegionBackendServices( std::string const& project, std::string const& region, Options opts) { @@ -209,6 +281,25 @@ RegionBackendServicesClient::PatchBackendService( return connection_->PatchBackendService(request); } +StatusOr +RegionBackendServicesClient::PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& backend_service, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest request; + request.set_project(project); + request.set_region(region); + request.set_backend_service(backend_service); + *request.mutable_backend_service_resource() = backend_service_resource; + return connection_->PatchBackendService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionBackendServicesClient::PatchBackendService( google::cloud::cpp::compute::region_backend_services::v1:: @@ -218,6 +309,26 @@ RegionBackendServicesClient::PatchBackendService( return connection_->PatchBackendService(request); } +StatusOr +RegionBackendServicesClient::PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchBackendService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionBackendServicesClient::PatchBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchBackendService(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionBackendServicesClient::SetIamPolicy( std::string const& project, std::string const& region, @@ -263,6 +374,26 @@ RegionBackendServicesClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +RegionBackendServicesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& backend_service, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest request; + request.set_project(project); + request.set_region(region); + request.set_backend_service(backend_service); + *request.mutable_security_policy_reference_resource() = + security_policy_reference_resource; + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionBackendServicesClient::SetSecurityPolicy( google::cloud::cpp::compute::region_backend_services::v1:: @@ -272,6 +403,26 @@ RegionBackendServicesClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +RegionBackendServicesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionBackendServicesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionBackendServicesClient::TestIamPermissions( std::string const& project, std::string const& region, @@ -316,6 +467,25 @@ RegionBackendServicesClient::UpdateBackendService( return connection_->UpdateBackendService(request); } +StatusOr +RegionBackendServicesClient::UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& backend_service, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest request; + request.set_project(project); + request.set_region(region); + request.set_backend_service(backend_service); + *request.mutable_backend_service_resource() = backend_service_resource; + return connection_->UpdateBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionBackendServicesClient::UpdateBackendService( google::cloud::cpp::compute::region_backend_services::v1:: @@ -325,6 +495,26 @@ RegionBackendServicesClient::UpdateBackendService( return connection_->UpdateBackendService(request); } +StatusOr +RegionBackendServicesClient::UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackendService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionBackendServicesClient::UpdateBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackendService(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/region_backend_services/v1/region_backend_services_client.h index 20728cf9600d9..42c006333a5e5 100644 --- a/google/cloud/compute/region_backend_services/v1/region_backend_services_client.h +++ b/google/cloud/compute/region_backend_services/v1/region_backend_services_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_BACKEND_SERVICES_V1_REGION_BACKEND_SERVICES_CLIENT_H #include "google/cloud/compute/region_backend_services/v1/region_backend_services_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,11 @@ class RegionBackendServicesClient { DeleteBackendService(std::string const& project, std::string const& region, std::string const& backend_service, Options opts = {}); + StatusOr DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& backend_service, Options opts = {}); + // clang-format off /// /// Deletes the specified regional BackendService resource. @@ -165,6 +172,18 @@ class RegionBackendServicesClient { v1::DeleteBackendServiceRequest const& request, Options opts = {}); + StatusOr DeleteBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + DeleteBackendServiceRequest const& request, + Options opts = {}); + + future> + DeleteBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified regional BackendService resource. @@ -396,6 +415,13 @@ class RegionBackendServicesClient { backend_service_resource, Options opts = {}); + StatusOr InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts = {}); + // clang-format off /// /// Creates a regional BackendService resource in the specified project using @@ -437,6 +463,18 @@ class RegionBackendServicesClient { v1::InsertBackendServiceRequest const& request, Options opts = {}); + StatusOr InsertBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + InsertBackendServiceRequest const& request, + Options opts = {}); + + future> + InsertBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of regional BackendService resources available to the @@ -642,6 +680,14 @@ class RegionBackendServicesClient { backend_service_resource, Options opts = {}); + StatusOr PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& backend_service, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified regional BackendService resource with the data @@ -684,6 +730,18 @@ class RegionBackendServicesClient { PatchBackendServiceRequest const& request, Options opts = {}); + StatusOr PatchBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + PatchBackendServiceRequest const& request, + Options opts = {}); + + future> + PatchBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -794,6 +852,14 @@ class RegionBackendServicesClient { security_policy_reference_resource, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& backend_service, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts = {}); + // clang-format off /// /// Sets the Google Cloud Armor security policy for the specified backend @@ -834,6 +900,17 @@ class RegionBackendServicesClient { SetSecurityPolicyRequest const& request, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + SetSecurityPolicyRequest const& request, + Options opts = {}); + + future> + SetSecurityPolicy(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. @@ -942,6 +1019,14 @@ class RegionBackendServicesClient { backend_service_resource, Options opts = {}); + StatusOr UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& backend_service, + google::cloud::cpp::compute::v1::BackendService const& + backend_service_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified regional BackendService resource with the data @@ -983,6 +1068,18 @@ class RegionBackendServicesClient { v1::UpdateBackendServiceRequest const& request, Options opts = {}); + StatusOr UpdateBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_backend_services::v1:: + UpdateBackendServiceRequest const& request, + Options opts = {}); + + future> + UpdateBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..60660a0a578b9 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,33 @@ RegionCommitmentsTracingConnection::InsertCommitment( return internal::EndSpan(std::move(span), child_->InsertCommitment(request)); } +StatusOr +RegionCommitmentsTracingConnection::InsertCommitment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionCommitmentsTracingConnection::InsertCommitment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionCommitmentsTracingConnection::ListRegionCommitments( google::cloud::cpp::compute::region_commitments::v1:: @@ -96,6 +123,33 @@ RegionCommitmentsTracingConnection::UpdateCommitment( return internal::EndSpan(std::move(span), child_->UpdateCommitment(request)); } +StatusOr +RegionCommitmentsTracingConnection::UpdateCommitment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionCommitmentsTracingConnection::UpdateCommitment( + google::cloud::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(google::cloud::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..b1bb017cf4246 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request) override; + + future> InsertCommitment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request) override; + + future> UpdateCommitment( + google::cloud::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..212310f1e4cc2 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertCommitment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCommitment, + (google::cloud::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_client.cc b/google/cloud/compute/region_commitments/v1/region_commitments_client.cc index ef86dd7fc574e..95a46f8b50b61 100644 --- a/google/cloud/compute/region_commitments/v1/region_commitments_client.cc +++ b/google/cloud/compute/region_commitments/v1/region_commitments_client.cc @@ -90,6 +90,22 @@ RegionCommitmentsClient::InsertCommitment( return connection_->InsertCommitment(request); } +StatusOr +RegionCommitmentsClient::InsertCommitment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Commitment const& commitment_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_commitments::v1::InsertCommitmentRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_commitment_resource() = commitment_resource; + return connection_->InsertCommitment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionCommitmentsClient::InsertCommitment( google::cloud::cpp::compute::region_commitments::v1:: @@ -99,6 +115,26 @@ RegionCommitmentsClient::InsertCommitment( return connection_->InsertCommitment(request); } +StatusOr +RegionCommitmentsClient::InsertCommitment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertCommitment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionCommitmentsClient::InsertCommitment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertCommitment(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionCommitmentsClient::ListRegionCommitments(std::string const& project, std::string const& region, @@ -137,6 +173,25 @@ RegionCommitmentsClient::UpdateCommitment( return connection_->UpdateCommitment(request); } +StatusOr +RegionCommitmentsClient::UpdateCommitment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& commitment, std::string const& update_mask, + google::cloud::cpp::compute::v1::Commitment const& commitment_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_commitments::v1::UpdateCommitmentRequest + request; + request.set_project(project); + request.set_region(region); + request.set_commitment(commitment); + request.set_update_mask(update_mask); + *request.mutable_commitment_resource() = commitment_resource; + return connection_->UpdateCommitment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionCommitmentsClient::UpdateCommitment( google::cloud::cpp::compute::region_commitments::v1:: @@ -146,6 +201,26 @@ RegionCommitmentsClient::UpdateCommitment( return connection_->UpdateCommitment(request); } +StatusOr +RegionCommitmentsClient::UpdateCommitment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCommitment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionCommitmentsClient::UpdateCommitment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCommitment(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_commitments_v1 } // namespace cloud diff --git a/google/cloud/compute/region_commitments/v1/region_commitments_client.h b/google/cloud/compute/region_commitments/v1/region_commitments_client.h index f2005a3b53481..b8c363f9a6dfa 100644 --- a/google/cloud/compute/region_commitments/v1/region_commitments_client.h +++ b/google/cloud/compute/region_commitments/v1/region_commitments_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_COMMITMENTS_V1_REGION_COMMITMENTS_CLIENT_H #include "google/cloud/compute/region_commitments/v1/region_commitments_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -272,6 +274,12 @@ class RegionCommitmentsClient { google::cloud::cpp::compute::v1::Commitment const& commitment_resource, Options opts = {}); + StatusOr InsertCommitment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Commitment const& commitment_resource, + Options opts = {}); + // clang-format off /// /// Creates a commitment in the specified project using the data included in @@ -312,6 +320,17 @@ class RegionCommitmentsClient { InsertCommitmentRequest const& request, Options opts = {}); + StatusOr InsertCommitment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + InsertCommitmentRequest const& request, + Options opts = {}); + + future> InsertCommitment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of commitments contained within the specified region. @@ -432,6 +451,13 @@ class RegionCommitmentsClient { google::cloud::cpp::compute::v1::Commitment const& commitment_resource, Options opts = {}); + StatusOr UpdateCommitment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& commitment, std::string const& update_mask, + google::cloud::cpp::compute::v1::Commitment const& commitment_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified commitment with the data included in the request. @@ -473,6 +499,17 @@ class RegionCommitmentsClient { UpdateCommitmentRequest const& request, Options opts = {}); + StatusOr UpdateCommitment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_commitments::v1:: + UpdateCommitmentRequest const& request, + Options opts = {}); + + future> UpdateCommitment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/compute/region_disk_types/v1/region_disk_types_client.h index 22558d0d8f816..85f783a49f99c 100644 --- a/google/cloud/compute/region_disk_types/v1/region_disk_types_client.h +++ b/google/cloud/compute/region_disk_types/v1/region_disk_types_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_DISK_TYPES_V1_REGION_DISK_TYPES_CLIENT_H #include "google/cloud/compute/region_disk_types/v1/region_disk_types_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..85b8d9c984773 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,31 @@ RegionDisksTracingConnection::AddResourcePolicies( child_->AddResourcePolicies(request)); } +StatusOr +RegionDisksTracingConnection::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::AddResourcePolicies( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::BulkInsert( google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& @@ -54,6 +79,31 @@ RegionDisksTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(request)); } +StatusOr +RegionDisksTracingConnection::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::BulkInsert( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::CreateSnapshot( google::cloud::cpp::compute::region_disks::v1::CreateSnapshotRequest const& @@ -64,6 +114,31 @@ RegionDisksTracingConnection::CreateSnapshot( return internal::EndSpan(std::move(span), child_->CreateSnapshot(request)); } +StatusOr +RegionDisksTracingConnection::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::CreateSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::DeleteDisk( google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& @@ -74,6 +149,31 @@ RegionDisksTracingConnection::DeleteDisk( return internal::EndSpan(std::move(span), child_->DeleteDisk(request)); } +StatusOr +RegionDisksTracingConnection::DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::DeleteDisk( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionDisksTracingConnection::GetDisk( google::cloud::cpp::compute::region_disks::v1::GetDiskRequest const& @@ -104,6 +204,31 @@ RegionDisksTracingConnection::InsertDisk( return internal::EndSpan(std::move(span), child_->InsertDisk(request)); } +StatusOr +RegionDisksTracingConnection::InsertDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::InsertDisk( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionDisksTracingConnection::ListRegionDisks( google::cloud::cpp::compute::region_disks::v1::ListRegionDisksRequest @@ -127,6 +252,31 @@ RegionDisksTracingConnection::RemoveResourcePolicies( child_->RemoveResourcePolicies(request)); } +StatusOr +RegionDisksTracingConnection::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::RemoveResourcePolicies( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::Resize( google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& @@ -137,6 +287,31 @@ RegionDisksTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +RegionDisksTracingConnection::Resize( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::Resize( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionDisksTracingConnection::SetIamPolicy( google::cloud::cpp::compute::region_disks::v1::SetIamPolicyRequest const& @@ -157,6 +332,31 @@ RegionDisksTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +RegionDisksTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::SetLabels( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::StartAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -168,6 +368,31 @@ RegionDisksTracingConnection::StartAsyncReplication( child_->StartAsyncReplication(request)); } +StatusOr +RegionDisksTracingConnection::StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::StartAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::StopAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -179,6 +404,31 @@ RegionDisksTracingConnection::StopAsyncReplication( child_->StopAsyncReplication(request)); } +StatusOr +RegionDisksTracingConnection::StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::StopAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionDisksTracingConnection::StopGroupAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -191,6 +441,33 @@ RegionDisksTracingConnection::StopGroupAsyncReplication( child_->StopGroupAsyncReplication(request)); } +StatusOr +RegionDisksTracingConnection::StopGroupAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::StopGroupAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionDisksTracingConnection::TestIamPermissions( google::cloud::cpp::compute::region_disks::v1:: @@ -211,6 +488,31 @@ RegionDisksTracingConnection::UpdateDisk( return internal::EndSpan(std::move(span), child_->UpdateDisk(request)); } +StatusOr +RegionDisksTracingConnection::UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionDisksTracingConnection::UpdateDisk( + google::cloud::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(google::cloud::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..3c0046cee838c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request) override; + + future> + AddResourcePolicies( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request) override; + + future> BulkInsert( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const& request) override; + + future> CreateSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request) override; + + future> DeleteDisk( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request) override; + + future> InsertDisk( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request) override; + + future> + RemoveResourcePolicies( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request) override; + + future> Resize( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request) override; + + future> + StartAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request) override; + + future> + StopAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request) override; + + future> + StopGroupAsyncReplication( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request) override; + + future> UpdateDisk( + google::cloud::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..53eb843c25d4e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddResourcePolicies, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkInsert, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSnapshot, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteDisk, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertDisk, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveResourcePolicies, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Resize, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartAsyncReplication, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopAsyncReplication, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopGroupAsyncReplication, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDisk, + (google::cloud::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_client.cc b/google/cloud/compute/region_disks/v1/region_disks_client.cc index c4edd2745ba41..bbb9f0ec3db60 100644 --- a/google/cloud/compute/region_disks/v1/region_disks_client.cc +++ b/google/cloud/compute/region_disks/v1/region_disks_client.cc @@ -51,6 +51,27 @@ RegionDisksClient::AddResourcePolicies( return connection_->AddResourcePolicies(request); } +StatusOr +RegionDisksClient::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1:: + RegionDisksAddResourcePoliciesRequest const& + region_disks_add_resource_policies_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::AddResourcePoliciesRequest + request; + request.set_project(project); + request.set_region(region); + request.set_disk(disk); + *request.mutable_region_disks_add_resource_policies_request_resource() = + region_disks_add_resource_policies_request_resource; + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::AddResourcePolicies( google::cloud::cpp::compute::region_disks::v1:: @@ -60,6 +81,26 @@ RegionDisksClient::AddResourcePolicies( return connection_->AddResourcePolicies(request); } +StatusOr +RegionDisksClient::AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::AddResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddResourcePolicies(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionDisksClient::BulkInsert( std::string const& project, std::string const& region, @@ -74,6 +115,22 @@ RegionDisksClient::BulkInsert( return connection_->BulkInsert(request); } +StatusOr +RegionDisksClient::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::BulkInsertDiskResource const& + bulk_insert_disk_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_bulk_insert_disk_resource() = bulk_insert_disk_resource; + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::BulkInsert( google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& @@ -83,6 +140,25 @@ RegionDisksClient::BulkInsert( return connection_->BulkInsert(request); } +StatusOr +RegionDisksClient::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, operation); +} + future> RegionDisksClient::CreateSnapshot( std::string const& project, std::string const& region, @@ -98,6 +174,23 @@ RegionDisksClient::CreateSnapshot( return connection_->CreateSnapshot(request); } +StatusOr +RegionDisksClient::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::CreateSnapshotRequest request; + request.set_project(project); + request.set_region(region); + request.set_disk(disk); + *request.mutable_snapshot_resource() = snapshot_resource; + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::CreateSnapshot( google::cloud::cpp::compute::region_disks::v1::CreateSnapshotRequest const& @@ -107,6 +200,26 @@ RegionDisksClient::CreateSnapshot( return connection_->CreateSnapshot(request); } +StatusOr +RegionDisksClient::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::CreateSnapshotRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::CreateSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionDisksClient::DeleteDisk(std::string const& project, std::string const& region, @@ -119,6 +232,21 @@ RegionDisksClient::DeleteDisk(std::string const& project, return connection_->DeleteDisk(request); } +StatusOr +RegionDisksClient::DeleteDisk(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& disk, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest request; + request.set_project(project); + request.set_region(region); + request.set_disk(disk); + return connection_->DeleteDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::DeleteDisk( google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& @@ -128,6 +256,25 @@ RegionDisksClient::DeleteDisk( return connection_->DeleteDisk(request); } +StatusOr +RegionDisksClient::DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::DeleteDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDisk(google::cloud::ExperimentalTag{}, operation); +} + StatusOr RegionDisksClient::GetDisk( std::string const& project, std::string const& region, std::string const& disk, Options opts) { @@ -180,6 +327,20 @@ RegionDisksClient::InsertDisk( return connection_->InsertDisk(request); } +StatusOr +RegionDisksClient::InsertDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Disk const& disk_resource, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_disk_resource() = disk_resource; + return connection_->InsertDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::InsertDisk( google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& @@ -189,6 +350,25 @@ RegionDisksClient::InsertDisk( return connection_->InsertDisk(request); } +StatusOr +RegionDisksClient::InsertDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::InsertDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertDisk(google::cloud::ExperimentalTag{}, operation); +} + StreamRange RegionDisksClient::ListRegionDisks(std::string const& project, std::string const& region, Options opts) { @@ -227,6 +407,27 @@ RegionDisksClient::RemoveResourcePolicies( return connection_->RemoveResourcePolicies(request); } +StatusOr +RegionDisksClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1:: + RegionDisksRemoveResourcePoliciesRequest const& + region_disks_remove_resource_policies_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::RemoveResourcePoliciesRequest + request; + request.set_project(project); + request.set_region(region); + request.set_disk(disk); + *request.mutable_region_disks_remove_resource_policies_request_resource() = + region_disks_remove_resource_policies_request_resource; + return connection_->RemoveResourcePolicies( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::RemoveResourcePolicies( google::cloud::cpp::compute::region_disks::v1:: @@ -236,6 +437,26 @@ RegionDisksClient::RemoveResourcePolicies( return connection_->RemoveResourcePolicies(request); } +StatusOr +RegionDisksClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveResourcePolicies( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::RemoveResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveResourcePolicies(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionDisksClient::Resize( std::string const& project, std::string const& region, @@ -253,6 +474,24 @@ RegionDisksClient::Resize( return connection_->Resize(request); } +StatusOr RegionDisksClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1::RegionDisksResizeRequest const& + region_disks_resize_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::ResizeRequest request; + request.set_project(project); + request.set_region(region); + request.set_disk(disk); + *request.mutable_region_disks_resize_request_resource() = + region_disks_resize_request_resource; + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::Resize( google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& request, @@ -261,6 +500,23 @@ RegionDisksClient::Resize( return connection_->Resize(request); } +StatusOr RegionDisksClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, operation); +} + StatusOr RegionDisksClient::SetIamPolicy( std::string const& project, std::string const& region, @@ -304,6 +560,25 @@ RegionDisksClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +RegionDisksClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest request; + request.set_project(project); + request.set_region(region); + request.set_resource(resource); + *request.mutable_region_set_labels_request_resource() = + region_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::SetLabels( google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& @@ -313,6 +588,25 @@ RegionDisksClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +RegionDisksClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + future> RegionDisksClient::StartAsyncReplication( std::string const& project, std::string const& region, @@ -332,6 +626,27 @@ RegionDisksClient::StartAsyncReplication( return connection_->StartAsyncReplication(request); } +StatusOr +RegionDisksClient::StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1:: + RegionDisksStartAsyncReplicationRequest const& + region_disks_start_async_replication_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::StartAsyncReplicationRequest + request; + request.set_project(project); + request.set_region(region); + request.set_disk(disk); + *request.mutable_region_disks_start_async_replication_request_resource() = + region_disks_start_async_replication_request_resource; + return connection_->StartAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::StartAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -341,6 +656,26 @@ RegionDisksClient::StartAsyncReplication( return connection_->StartAsyncReplication(request); } +StatusOr +RegionDisksClient::StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::StartAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartAsyncReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionDisksClient::StopAsyncReplication(std::string const& project, std::string const& region, @@ -354,6 +689,22 @@ RegionDisksClient::StopAsyncReplication(std::string const& project, return connection_->StopAsyncReplication(request); } +StatusOr +RegionDisksClient::StopAsyncReplication(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& disk, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::StopAsyncReplicationRequest + request; + request.set_project(project); + request.set_region(region); + request.set_disk(disk); + return connection_->StopAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::StopAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -363,6 +714,26 @@ RegionDisksClient::StopAsyncReplication( return connection_->StopAsyncReplication(request); } +StatusOr +RegionDisksClient::StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::StopAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopAsyncReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionDisksClient::StopGroupAsyncReplication( std::string const& project, std::string const& region, @@ -380,6 +751,25 @@ RegionDisksClient::StopGroupAsyncReplication( return connection_->StopGroupAsyncReplication(request); } +StatusOr +RegionDisksClient::StopGroupAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1:: + DisksStopGroupAsyncReplicationResource const& + disks_stop_group_async_replication_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_disks_stop_group_async_replication_resource() = + disks_stop_group_async_replication_resource; + return connection_->StopGroupAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::StopGroupAsyncReplication( google::cloud::cpp::compute::region_disks::v1:: @@ -389,6 +779,26 @@ RegionDisksClient::StopGroupAsyncReplication( return connection_->StopGroupAsyncReplication(request); } +StatusOr +RegionDisksClient::StopGroupAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopGroupAsyncReplication( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::StopGroupAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopGroupAsyncReplication( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr RegionDisksClient::TestIamPermissions( std::string const& project, std::string const& region, @@ -431,6 +841,23 @@ RegionDisksClient::UpdateDisk( return connection_->UpdateDisk(request); } +StatusOr +RegionDisksClient::UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, std::string const& update_mask, + google::cloud::cpp::compute::v1::Disk const& disk_resource, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest request; + request.set_project(project); + request.set_region(region); + request.set_disk(disk); + request.set_update_mask(update_mask); + *request.mutable_disk_resource() = disk_resource; + return connection_->UpdateDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionDisksClient::UpdateDisk( google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& @@ -440,6 +867,25 @@ RegionDisksClient::UpdateDisk( return connection_->UpdateDisk(request); } +StatusOr +RegionDisksClient::UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDisk(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionDisksClient::UpdateDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDisk(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_disks_v1 } // namespace cloud diff --git a/google/cloud/compute/region_disks/v1/region_disks_client.h b/google/cloud/compute/region_disks/v1/region_disks_client.h index 81245e3fb135f..069f0b6c3f569 100644 --- a/google/cloud/compute/region_disks/v1/region_disks_client.h +++ b/google/cloud/compute/region_disks/v1/region_disks_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_DISKS_V1_REGION_DISKS_CLIENT_H #include "google/cloud/compute/region_disks/v1/region_disks_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -129,6 +131,15 @@ class RegionDisksClient { region_disks_add_resource_policies_request_resource, Options opts = {}); + StatusOr AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1:: + RegionDisksAddResourcePoliciesRequest const& + region_disks_add_resource_policies_request_resource, + Options opts = {}); + // clang-format off /// /// Adds existing resource policies to a regional disk. You can only add one @@ -169,6 +180,18 @@ class RegionDisksClient { AddResourcePoliciesRequest const& request, Options opts = {}); + StatusOr AddResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + AddResourcePoliciesRequest const& request, + Options opts = {}); + + future> + AddResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Bulk create a set of disks. @@ -206,6 +229,13 @@ class RegionDisksClient { bulk_insert_disk_resource, Options opts = {}); + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::BulkInsertDiskResource const& + bulk_insert_disk_resource, + Options opts = {}); + // clang-format off /// /// Bulk create a set of disks. @@ -245,6 +275,17 @@ class RegionDisksClient { request, Options opts = {}); + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::BulkInsertRequest const& + request, + Options opts = {}); + + future> BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a snapshot of a specified persistent disk. For regular snapshot @@ -286,6 +327,13 @@ class RegionDisksClient { google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, Options opts = {}); + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, + Options opts = {}); + // clang-format off /// /// Creates a snapshot of a specified persistent disk. For regular snapshot @@ -328,6 +376,17 @@ class RegionDisksClient { CreateSnapshotRequest const& request, Options opts = {}); + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + CreateSnapshotRequest const& request, + Options opts = {}); + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified regional persistent disk. Deleting a regional disk @@ -366,6 +425,11 @@ class RegionDisksClient { std::string const& project, std::string const& region, std::string const& disk, Options opts = {}); + StatusOr DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, Options opts = {}); + // clang-format off /// /// Deletes the specified regional persistent disk. Deleting a regional disk @@ -408,6 +472,17 @@ class RegionDisksClient { request, Options opts = {}); + StatusOr DeleteDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::DeleteDiskRequest const& + request, + Options opts = {}); + + future> DeleteDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns a specified regional persistent disk. @@ -571,6 +646,12 @@ class RegionDisksClient { google::cloud::cpp::compute::v1::Disk const& disk_resource, Options opts = {}); + StatusOr InsertDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Disk const& disk_resource, + Options opts = {}); + // clang-format off /// /// Creates a persistent regional disk in the specified project using the data @@ -611,6 +692,17 @@ class RegionDisksClient { request, Options opts = {}); + StatusOr InsertDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::InsertDiskRequest const& + request, + Options opts = {}); + + future> InsertDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of persistent disks contained within the specified @@ -732,6 +824,15 @@ class RegionDisksClient { region_disks_remove_resource_policies_request_resource, Options opts = {}); + StatusOr RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1:: + RegionDisksRemoveResourcePoliciesRequest const& + region_disks_remove_resource_policies_request_resource, + Options opts = {}); + // clang-format off /// /// Removes resource policies from a regional disk. @@ -771,6 +872,18 @@ class RegionDisksClient { RemoveResourcePoliciesRequest const& request, Options opts = {}); + StatusOr RemoveResourcePolicies( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + RemoveResourcePoliciesRequest const& request, + Options opts = {}); + + future> + RemoveResourcePolicies( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resizes the specified regional persistent disk. @@ -810,6 +923,14 @@ class RegionDisksClient { region_disks_resize_request_resource, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1::RegionDisksResizeRequest const& + region_disks_resize_request_resource, + Options opts = {}); + // clang-format off /// /// Resizes the specified regional persistent disk. @@ -849,6 +970,17 @@ class RegionDisksClient { request, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::ResizeRequest const& + request, + Options opts = {}); + + future> Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -956,6 +1088,14 @@ class RegionDisksClient { region_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on the target regional disk. @@ -995,6 +1135,17 @@ class RegionDisksClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts asynchronous replication. Must be invoked on the primary disk. @@ -1036,6 +1187,15 @@ class RegionDisksClient { region_disks_start_async_replication_request_resource, Options opts = {}); + StatusOr StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, + google::cloud::cpp::compute::v1:: + RegionDisksStartAsyncReplicationRequest const& + region_disks_start_async_replication_request_resource, + Options opts = {}); + // clang-format off /// /// Starts asynchronous replication. Must be invoked on the primary disk. @@ -1075,6 +1235,18 @@ class RegionDisksClient { StartAsyncReplicationRequest const& request, Options opts = {}); + StatusOr StartAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StartAsyncReplicationRequest const& request, + Options opts = {}); + + future> + StartAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stops asynchronous replication. Can be invoked either on the primary or on @@ -1111,6 +1283,11 @@ class RegionDisksClient { StopAsyncReplication(std::string const& project, std::string const& region, std::string const& disk, Options opts = {}); + StatusOr StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, Options opts = {}); + // clang-format off /// /// Stops asynchronous replication. Can be invoked either on the primary or on @@ -1151,6 +1328,18 @@ class RegionDisksClient { StopAsyncReplicationRequest const& request, Options opts = {}); + StatusOr StopAsyncReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopAsyncReplicationRequest const& request, + Options opts = {}); + + future> + StopAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stops asynchronous replication for a consistency group of disks. Can be @@ -1192,6 +1381,16 @@ class RegionDisksClient { disks_stop_group_async_replication_resource, Options opts = {}); + StatusOr + StopGroupAsyncReplication(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + google::cloud::cpp::compute::v1:: + DisksStopGroupAsyncReplicationResource const& + disks_stop_group_async_replication_resource, + Options opts = {}); + // clang-format off /// /// Stops asynchronous replication for a consistency group of disks. Can be @@ -1232,6 +1431,19 @@ class RegionDisksClient { StopGroupAsyncReplicationRequest const& request, Options opts = {}); + StatusOr + StopGroupAsyncReplication(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1:: + StopGroupAsyncReplicationRequest const& request, + Options opts = {}); + + future> + StopGroupAsyncReplication( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. @@ -1340,6 +1552,13 @@ class RegionDisksClient { google::cloud::cpp::compute::v1::Disk const& disk_resource, Options opts = {}); + StatusOr UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& disk, std::string const& update_mask, + google::cloud::cpp::compute::v1::Disk const& disk_resource, + Options opts = {}); + // clang-format off /// /// Update the specified disk with the data included in the request. Update is @@ -1381,6 +1600,17 @@ class RegionDisksClient { request, Options opts = {}); + StatusOr UpdateDisk( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_disks::v1::UpdateDiskRequest const& + request, + Options opts = {}); + + future> UpdateDisk( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..6ae872acb28e7 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,33 @@ RegionHealthCheckServicesTracingConnection::DeleteHealthCheckService( child_->DeleteHealthCheckService(request)); } +StatusOr +RegionHealthCheckServicesTracingConnection::DeleteHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionHealthCheckServicesTracingConnection::DeleteHealthCheckService( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionHealthCheckServicesTracingConnection::GetHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -72,6 +99,33 @@ RegionHealthCheckServicesTracingConnection::InsertHealthCheckService( child_->InsertHealthCheckService(request)); } +StatusOr +RegionHealthCheckServicesTracingConnection::InsertHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionHealthCheckServicesTracingConnection::InsertHealthCheckService( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionHealthCheckServicesTracingConnection::ListRegionHealthCheckServices( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -98,6 +152,33 @@ RegionHealthCheckServicesTracingConnection::PatchHealthCheckService( child_->PatchHealthCheckService(request)); } +StatusOr +RegionHealthCheckServicesTracingConnection::PatchHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionHealthCheckServicesTracingConnection::PatchHealthCheckService( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr DeleteHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request) override; + + future> + DeleteHealthCheckService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request) override; + + future> + InsertHealthCheckService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request) override; + + future> + PatchHealthCheckService( + google::cloud::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..4247d21e3fde6 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHealthCheckService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHealthCheckService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHealthCheckService, + (google::cloud::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_client.cc b/google/cloud/compute/region_health_check_services/v1/region_health_check_services_client.cc index 0edd7bbe3b77c..a79296d88fb66 100644 --- a/google/cloud/compute/region_health_check_services/v1/region_health_check_services_client.cc +++ b/google/cloud/compute/region_health_check_services/v1/region_health_check_services_client.cc @@ -47,6 +47,21 @@ RegionHealthCheckServicesClient::DeleteHealthCheckService( return connection_->DeleteHealthCheckService(request); } +StatusOr +RegionHealthCheckServicesClient::DeleteHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check_service, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest request; + request.set_project(project); + request.set_region(region); + request.set_health_check_service(health_check_service); + return connection_->DeleteHealthCheckService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionHealthCheckServicesClient::DeleteHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -56,6 +71,26 @@ RegionHealthCheckServicesClient::DeleteHealthCheckService( return connection_->DeleteHealthCheckService(request); } +StatusOr +RegionHealthCheckServicesClient::DeleteHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHealthCheckService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionHealthCheckServicesClient::DeleteHealthCheckService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHealthCheckService(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionHealthCheckServicesClient::GetHealthCheckService( std::string const& project, std::string const& region, @@ -94,6 +129,24 @@ RegionHealthCheckServicesClient::InsertHealthCheckService( return connection_->InsertHealthCheckService(request); } +StatusOr +RegionHealthCheckServicesClient::InsertHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::HealthCheckService const& + health_check_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_health_check_service_resource() = + health_check_service_resource; + return connection_->InsertHealthCheckService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionHealthCheckServicesClient::InsertHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -103,6 +156,26 @@ RegionHealthCheckServicesClient::InsertHealthCheckService( return connection_->InsertHealthCheckService(request); } +StatusOr +RegionHealthCheckServicesClient::InsertHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHealthCheckService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionHealthCheckServicesClient::InsertHealthCheckService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHealthCheckService(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionHealthCheckServicesClient::ListRegionHealthCheckServices( std::string const& project, std::string const& region, Options opts) { @@ -141,6 +214,26 @@ RegionHealthCheckServicesClient::PatchHealthCheckService( return connection_->PatchHealthCheckService(request); } +StatusOr +RegionHealthCheckServicesClient::PatchHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check_service, + google::cloud::cpp::compute::v1::HealthCheckService const& + health_check_service_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest request; + request.set_project(project); + request.set_region(region); + request.set_health_check_service(health_check_service); + *request.mutable_health_check_service_resource() = + health_check_service_resource; + return connection_->PatchHealthCheckService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionHealthCheckServicesClient::PatchHealthCheckService( google::cloud::cpp::compute::region_health_check_services::v1:: @@ -150,6 +243,26 @@ RegionHealthCheckServicesClient::PatchHealthCheckService( return connection_->PatchHealthCheckService(request); } +StatusOr +RegionHealthCheckServicesClient::PatchHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHealthCheckService( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionHealthCheckServicesClient::PatchHealthCheckService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHealthCheckService(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/region_health_check_services/v1/region_health_check_services_client.h index a26927fa98bd6..ddbb6352e3d45 100644 --- a/google/cloud/compute/region_health_check_services/v1/region_health_check_services_client.h +++ b/google/cloud/compute/region_health_check_services/v1/region_health_check_services_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_HEALTH_CHECK_SERVICES_V1_REGION_HEALTH_CHECK_SERVICES_CLIENT_H #include "google/cloud/compute/region_health_check_services/v1/region_health_check_services_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -129,6 +131,11 @@ class RegionHealthCheckServicesClient { std::string const& health_check_service, Options opts = {}); + StatusOr DeleteHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check_service, Options opts = {}); + // clang-format off /// /// Deletes the specified regional HealthCheckService. @@ -169,6 +176,18 @@ class RegionHealthCheckServicesClient { DeleteHealthCheckServiceRequest const& request, Options opts = {}); + StatusOr DeleteHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + DeleteHealthCheckServiceRequest const& request, + Options opts = {}); + + future> + DeleteHealthCheckService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified regional HealthCheckService resource. @@ -273,6 +292,13 @@ class RegionHealthCheckServicesClient { health_check_service_resource, Options opts = {}); + StatusOr InsertHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::HealthCheckService const& + health_check_service_resource, + Options opts = {}); + // clang-format off /// /// Creates a regional HealthCheckService resource in the specified project and @@ -314,6 +340,18 @@ class RegionHealthCheckServicesClient { InsertHealthCheckServiceRequest const& request, Options opts = {}); + StatusOr InsertHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + InsertHealthCheckServiceRequest const& request, + Options opts = {}); + + future> + InsertHealthCheckService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all the HealthCheckService resources that have been configured for @@ -439,6 +477,14 @@ class RegionHealthCheckServicesClient { health_check_service_resource, Options opts = {}); + StatusOr PatchHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check_service, + google::cloud::cpp::compute::v1::HealthCheckService const& + health_check_service_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified regional HealthCheckService resource with the data @@ -481,6 +527,18 @@ class RegionHealthCheckServicesClient { PatchHealthCheckServiceRequest const& request, Options opts = {}); + StatusOr PatchHealthCheckService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_check_services::v1:: + PatchHealthCheckServiceRequest const& request, + Options opts = {}); + + future> + PatchHealthCheckService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..9eac62a4e3600 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,33 @@ RegionHealthChecksTracingConnection::DeleteHealthCheck( return internal::EndSpan(std::move(span), child_->DeleteHealthCheck(request)); } +StatusOr +RegionHealthChecksTracingConnection::DeleteHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionHealthChecksTracingConnection::DeleteHealthCheck( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionHealthChecksTracingConnection::GetHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -69,6 +96,33 @@ RegionHealthChecksTracingConnection::InsertHealthCheck( return internal::EndSpan(std::move(span), child_->InsertHealthCheck(request)); } +StatusOr +RegionHealthChecksTracingConnection::InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionHealthChecksTracingConnection::InsertHealthCheck( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionHealthChecksTracingConnection::ListRegionHealthChecks( google::cloud::cpp::compute::region_health_checks::v1:: @@ -94,6 +148,33 @@ RegionHealthChecksTracingConnection::PatchHealthCheck( return internal::EndSpan(std::move(span), child_->PatchHealthCheck(request)); } +StatusOr +RegionHealthChecksTracingConnection::PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionHealthChecksTracingConnection::PatchHealthCheck( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionHealthChecksTracingConnection::UpdateHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -105,6 +186,33 @@ RegionHealthChecksTracingConnection::UpdateHealthCheck( return internal::EndSpan(std::move(span), child_->UpdateHealthCheck(request)); } +StatusOr +RegionHealthChecksTracingConnection::UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionHealthChecksTracingConnection::UpdateHealthCheck( + google::cloud::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(google::cloud::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..5e84715b25a4b 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request) override; + + future> + DeleteHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request) override; + + future> + InsertHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request) override; + + future> PatchHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request) override; + + future> + UpdateHealthCheck( + google::cloud::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..0f4c9f9fd0c93 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHealthCheck, + (google::cloud::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_client.cc b/google/cloud/compute/region_health_checks/v1/region_health_checks_client.cc index 08a7c6fb6fbab..bc814b1f5340f 100644 --- a/google/cloud/compute/region_health_checks/v1/region_health_checks_client.cc +++ b/google/cloud/compute/region_health_checks/v1/region_health_checks_client.cc @@ -47,6 +47,23 @@ RegionHealthChecksClient::DeleteHealthCheck(std::string const& project, return connection_->DeleteHealthCheck(request); } +StatusOr +RegionHealthChecksClient::DeleteHealthCheck(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& health_check, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest request; + request.set_project(project); + request.set_region(region); + request.set_health_check(health_check); + return connection_->DeleteHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionHealthChecksClient::DeleteHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -56,6 +73,26 @@ RegionHealthChecksClient::DeleteHealthCheck( return connection_->DeleteHealthCheck(request); } +StatusOr +RegionHealthChecksClient::DeleteHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionHealthChecksClient::DeleteHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionHealthChecksClient::GetHealthCheck(std::string const& project, std::string const& region, @@ -93,6 +130,22 @@ RegionHealthChecksClient::InsertHealthCheck( return connection_->InsertHealthCheck(request); } +StatusOr +RegionHealthChecksClient::InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_health_check_resource() = health_check_resource; + return connection_->InsertHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionHealthChecksClient::InsertHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -102,6 +155,26 @@ RegionHealthChecksClient::InsertHealthCheck( return connection_->InsertHealthCheck(request); } +StatusOr +RegionHealthChecksClient::InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionHealthChecksClient::InsertHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionHealthChecksClient::ListRegionHealthChecks(std::string const& project, std::string const& region, @@ -139,6 +212,24 @@ RegionHealthChecksClient::PatchHealthCheck( return connection_->PatchHealthCheck(request); } +StatusOr +RegionHealthChecksClient::PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_health_checks::v1::PatchHealthCheckRequest + request; + request.set_project(project); + request.set_region(region); + request.set_health_check(health_check); + *request.mutable_health_check_resource() = health_check_resource; + return connection_->PatchHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionHealthChecksClient::PatchHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -148,6 +239,26 @@ RegionHealthChecksClient::PatchHealthCheck( return connection_->PatchHealthCheck(request); } +StatusOr +RegionHealthChecksClient::PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionHealthChecksClient::PatchHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionHealthChecksClient::UpdateHealthCheck( std::string const& project, std::string const& region, @@ -164,6 +275,24 @@ RegionHealthChecksClient::UpdateHealthCheck( return connection_->UpdateHealthCheck(request); } +StatusOr +RegionHealthChecksClient::UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest request; + request.set_project(project); + request.set_region(region); + request.set_health_check(health_check); + *request.mutable_health_check_resource() = health_check_resource; + return connection_->UpdateHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionHealthChecksClient::UpdateHealthCheck( google::cloud::cpp::compute::region_health_checks::v1:: @@ -173,6 +302,26 @@ RegionHealthChecksClient::UpdateHealthCheck( return connection_->UpdateHealthCheck(request); } +StatusOr +RegionHealthChecksClient::UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionHealthChecksClient::UpdateHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/region_health_checks/v1/region_health_checks_client.h index 9086ee08f5d04..9dd8a8d0ac7ff 100644 --- a/google/cloud/compute/region_health_checks/v1/region_health_checks_client.h +++ b/google/cloud/compute/region_health_checks/v1/region_health_checks_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_HEALTH_CHECKS_V1_REGION_HEALTH_CHECKS_CLIENT_H #include "google/cloud/compute/region_health_checks/v1/region_health_checks_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -124,6 +126,11 @@ class RegionHealthChecksClient { DeleteHealthCheck(std::string const& project, std::string const& region, std::string const& health_check, Options opts = {}); + StatusOr DeleteHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check, Options opts = {}); + // clang-format off /// /// Deletes the specified HealthCheck resource. @@ -163,6 +170,17 @@ class RegionHealthChecksClient { DeleteHealthCheckRequest const& request, Options opts = {}); + StatusOr DeleteHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + DeleteHealthCheckRequest const& request, + Options opts = {}); + + future> + DeleteHealthCheck(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified HealthCheck resource. @@ -263,6 +281,12 @@ class RegionHealthChecksClient { google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, Options opts = {}); + StatusOr InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts = {}); + // clang-format off /// /// Creates a HealthCheck resource in the specified project using the data @@ -303,6 +327,17 @@ class RegionHealthChecksClient { InsertHealthCheckRequest const& request, Options opts = {}); + StatusOr InsertHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + InsertHealthCheckRequest const& request, + Options opts = {}); + + future> + InsertHealthCheck(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of HealthCheck resources available to the specified @@ -424,6 +459,13 @@ class RegionHealthChecksClient { google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, Options opts = {}); + StatusOr PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts = {}); + // clang-format off /// /// Updates a HealthCheck resource in the specified project using the data @@ -465,6 +507,17 @@ class RegionHealthChecksClient { PatchHealthCheckRequest const& request, Options opts = {}); + StatusOr PatchHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + PatchHealthCheckRequest const& request, + Options opts = {}); + + future> PatchHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a HealthCheck resource in the specified project using the data @@ -505,6 +558,13 @@ class RegionHealthChecksClient { google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, Options opts = {}); + StatusOr UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& health_check, + google::cloud::cpp::compute::v1::HealthCheck const& health_check_resource, + Options opts = {}); + // clang-format off /// /// Updates a HealthCheck resource in the specified project using the data @@ -545,6 +605,17 @@ class RegionHealthChecksClient { UpdateHealthCheckRequest const& request, Options opts = {}); + StatusOr UpdateHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_health_checks::v1:: + UpdateHealthCheckRequest const& request, + Options opts = {}); + + future> + UpdateHealthCheck(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..344517b358c0a 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,33 @@ RegionInstanceGroupManagersTracingConnection::AbandonInstances( return internal::EndSpan(std::move(span), child_->AbandonInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::AbandonInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -60,6 +87,33 @@ RegionInstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( child_->ApplyUpdatesToInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::ApplyUpdatesToInstances( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::CreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -71,6 +125,33 @@ RegionInstanceGroupManagersTracingConnection::CreateInstances( return internal::EndSpan(std::move(span), child_->CreateInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::CreateInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::CreateInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -83,6 +164,33 @@ RegionInstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( child_->DeleteInstanceGroupManager(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::DeleteInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::DeleteInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -94,6 +202,33 @@ RegionInstanceGroupManagersTracingConnection::DeleteInstances( return internal::EndSpan(std::move(span), child_->DeleteInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::DeleteInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -106,6 +241,33 @@ RegionInstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( child_->DeletePerInstanceConfigs(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::DeletePerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionInstanceGroupManagersTracingConnection::GetInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -129,6 +291,33 @@ RegionInstanceGroupManagersTracingConnection::InsertInstanceGroupManager( child_->InsertInstanceGroupManager(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::InsertInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionInstanceGroupManagersTracingConnection::ListRegionInstanceGroupManagers( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -195,6 +384,33 @@ RegionInstanceGroupManagersTracingConnection::PatchInstanceGroupManager( child_->PatchInstanceGroupManager(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::PatchInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -207,6 +423,33 @@ RegionInstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( child_->PatchPerInstanceConfigs(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::PatchPerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::RecreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -218,6 +461,33 @@ RegionInstanceGroupManagersTracingConnection::RecreateInstances( return internal::EndSpan(std::move(span), child_->RecreateInstances(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::RecreateInstances( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::Resize( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -229,6 +499,33 @@ RegionInstanceGroupManagersTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::Resize( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::Resize( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::SetInstanceTemplate( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -241,6 +538,33 @@ RegionInstanceGroupManagersTracingConnection::SetInstanceTemplate( child_->SetInstanceTemplate(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::SetInstanceTemplate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::SetTargetPools( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -252,6 +576,33 @@ RegionInstanceGroupManagersTracingConnection::SetTargetPools( return internal::EndSpan(std::move(span), child_->SetTargetPools(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::SetTargetPools( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionInstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -264,6 +615,33 @@ RegionInstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( child_->UpdatePerInstanceConfigs(request)); } +StatusOr +RegionInstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupManagersTracingConnection::UpdatePerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + #endif // GOOGLE_CLOUD_CPP_HAVE_OPENTELEMETRY std::shared_ptr AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request) override; + + future> AbandonInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request) override; + + future> + ApplyUpdatesToInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request) override; + + future> CreateInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request) override; + + future> + DeleteInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request) override; + + future> DeleteInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request) override; + + future> + DeletePerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request) override; + + future> + InsertInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request) override; + + future> + PatchInstanceGroupManager( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request) override; + + future> + PatchPerInstanceConfigs( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request) override; + + future> + RecreateInstances( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request) override; + + future> Resize( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request) override; + + future> + SetInstanceTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request) override; + + future> SetTargetPools( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request) override; + + future> + UpdatePerInstanceConfigs( + google::cloud::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..3930fb2870766 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + AbandonInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + ApplyUpdatesToInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceGroupManager, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePerInstanceConfigs, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceGroupManager, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchInstanceGroupManager, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchPerInstanceConfigs, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request), + (override)); + + MOCK_METHOD(future>, + RecreateInstances, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request), + (override)); + + MOCK_METHOD(future>, + Resize, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetInstanceTemplate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetTargetPools, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdatePerInstanceConfigs, + (google::cloud::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_client.cc b/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_client.cc index f33b9435966d5..5e8f8d5bdc1c0 100644 --- a/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_client.cc +++ b/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_client.cc @@ -55,6 +55,28 @@ RegionInstanceGroupManagersClient::AbandonInstances( return connection_->AbandonInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersAbandonInstancesRequest const& + region_instance_group_managers_abandon_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_managers_abandon_instances_request_resource() = + region_instance_group_managers_abandon_instances_request_resource; + return connection_->AbandonInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::AbandonInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -64,6 +86,26 @@ RegionInstanceGroupManagersClient::AbandonInstances( return connection_->AbandonInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AbandonInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::AbandonInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AbandonInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionInstanceGroupManagersClient::ApplyUpdatesToInstances( std::string const& project, std::string const& region, @@ -84,6 +126,28 @@ RegionInstanceGroupManagersClient::ApplyUpdatesToInstances( return connection_->ApplyUpdatesToInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersApplyUpdatesRequest const& + region_instance_group_managers_apply_updates_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_managers_apply_updates_request_resource() = + region_instance_group_managers_apply_updates_request_resource; + return connection_->ApplyUpdatesToInstances( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::ApplyUpdatesToInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -93,6 +157,26 @@ RegionInstanceGroupManagersClient::ApplyUpdatesToInstances( return connection_->ApplyUpdatesToInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApplyUpdatesToInstances( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApplyUpdatesToInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionInstanceGroupManagersClient::CreateInstances( std::string const& project, std::string const& region, @@ -113,6 +197,28 @@ RegionInstanceGroupManagersClient::CreateInstances( return connection_->CreateInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::CreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersCreateInstancesRequest const& + region_instance_group_managers_create_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_managers_create_instances_request_resource() = + region_instance_group_managers_create_instances_request_resource; + return connection_->CreateInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::CreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -122,6 +228,26 @@ RegionInstanceGroupManagersClient::CreateInstances( return connection_->CreateInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::CreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::CreateInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionInstanceGroupManagersClient::DeleteInstanceGroupManager( std::string const& project, std::string const& region, @@ -135,6 +261,21 @@ RegionInstanceGroupManagersClient::DeleteInstanceGroupManager( return connection_->DeleteInstanceGroupManager(request); } +StatusOr +RegionInstanceGroupManagersClient::DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + return connection_->DeleteInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::DeleteInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -144,6 +285,26 @@ RegionInstanceGroupManagersClient::DeleteInstanceGroupManager( return connection_->DeleteInstanceGroupManager(request); } +StatusOr +RegionInstanceGroupManagersClient::DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceGroupManager( + google::cloud::ExperimentalTag{}, operation); +} + future> RegionInstanceGroupManagersClient::DeleteInstances( std::string const& project, std::string const& region, @@ -164,6 +325,28 @@ RegionInstanceGroupManagersClient::DeleteInstances( return connection_->DeleteInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersDeleteInstancesRequest const& + region_instance_group_managers_delete_instances_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_managers_delete_instances_request_resource() = + region_instance_group_managers_delete_instances_request_resource; + return connection_->DeleteInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::DeleteInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -173,6 +356,26 @@ RegionInstanceGroupManagersClient::DeleteInstances( return connection_->DeleteInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::DeleteInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionInstanceGroupManagersClient::DeletePerInstanceConfigs( std::string const& project, std::string const& region, @@ -193,6 +396,28 @@ RegionInstanceGroupManagersClient::DeletePerInstanceConfigs( return connection_->DeletePerInstanceConfigs(request); } +StatusOr +RegionInstanceGroupManagersClient::DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagerDeleteInstanceConfigReq const& + region_instance_group_manager_delete_instance_config_req_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_manager_delete_instance_config_req_resource() = + region_instance_group_manager_delete_instance_config_req_resource; + return connection_->DeletePerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::DeletePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -202,6 +427,26 @@ RegionInstanceGroupManagersClient::DeletePerInstanceConfigs( return connection_->DeletePerInstanceConfigs(request); } +StatusOr +RegionInstanceGroupManagersClient::DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePerInstanceConfigs(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionInstanceGroupManagersClient::GetInstanceGroupManager( std::string const& project, std::string const& region, @@ -240,6 +485,24 @@ RegionInstanceGroupManagersClient::InsertInstanceGroupManager( return connection_->InsertInstanceGroupManager(request); } +StatusOr +RegionInstanceGroupManagersClient::InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::InstanceGroupManager const& + instance_group_manager_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_instance_group_manager_resource() = + instance_group_manager_resource; + return connection_->InsertInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::InsertInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -249,6 +512,26 @@ RegionInstanceGroupManagersClient::InsertInstanceGroupManager( return connection_->InsertInstanceGroupManager(request); } +StatusOr +RegionInstanceGroupManagersClient::InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::InsertInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceGroupManager( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange RegionInstanceGroupManagersClient::ListRegionInstanceGroupManagers( std::string const& project, std::string const& region, Options opts) { @@ -355,6 +638,26 @@ RegionInstanceGroupManagersClient::PatchInstanceGroupManager( return connection_->PatchInstanceGroupManager(request); } +StatusOr +RegionInstanceGroupManagersClient::PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1::InstanceGroupManager const& + instance_group_manager_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request.mutable_instance_group_manager_resource() = + instance_group_manager_resource; + return connection_->PatchInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::PatchInstanceGroupManager( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -364,6 +667,26 @@ RegionInstanceGroupManagersClient::PatchInstanceGroupManager( return connection_->PatchInstanceGroupManager(request); } +StatusOr +RegionInstanceGroupManagersClient::PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInstanceGroupManager( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::PatchInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchInstanceGroupManager( + google::cloud::ExperimentalTag{}, operation); +} + future> RegionInstanceGroupManagersClient::PatchPerInstanceConfigs( std::string const& project, std::string const& region, @@ -384,6 +707,28 @@ RegionInstanceGroupManagersClient::PatchPerInstanceConfigs( return connection_->PatchPerInstanceConfigs(request); } +StatusOr +RegionInstanceGroupManagersClient::PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagerPatchInstanceConfigReq const& + region_instance_group_manager_patch_instance_config_req_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_manager_patch_instance_config_req_resource() = + region_instance_group_manager_patch_instance_config_req_resource; + return connection_->PatchPerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::PatchPerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -393,6 +738,26 @@ RegionInstanceGroupManagersClient::PatchPerInstanceConfigs( return connection_->PatchPerInstanceConfigs(request); } +StatusOr +RegionInstanceGroupManagersClient::PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchPerInstanceConfigs(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionInstanceGroupManagersClient::RecreateInstances( std::string const& project, std::string const& region, @@ -412,6 +777,27 @@ RegionInstanceGroupManagersClient::RecreateInstances( return connection_->RecreateInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersRecreateRequest const& + region_instance_group_managers_recreate_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request.mutable_region_instance_group_managers_recreate_request_resource() = + region_instance_group_managers_recreate_request_resource; + return connection_->RecreateInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::RecreateInstances( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -421,6 +807,26 @@ RegionInstanceGroupManagersClient::RecreateInstances( return connection_->RecreateInstances(request); } +StatusOr +RegionInstanceGroupManagersClient::RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RecreateInstances(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::RecreateInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RecreateInstances(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionInstanceGroupManagersClient::Resize( std::string const& project, std::string const& region, @@ -436,6 +842,23 @@ RegionInstanceGroupManagersClient::Resize( return connection_->Resize(request); } +StatusOr +RegionInstanceGroupManagersClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, std::int32_t size, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1::ResizeRequest + request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + request.set_size(size); + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::Resize( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -445,6 +868,25 @@ RegionInstanceGroupManagersClient::Resize( return connection_->Resize(request); } +StatusOr +RegionInstanceGroupManagersClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, operation); +} + future> RegionInstanceGroupManagersClient::SetInstanceTemplate( std::string const& project, std::string const& region, @@ -465,6 +907,28 @@ RegionInstanceGroupManagersClient::SetInstanceTemplate( return connection_->SetInstanceTemplate(request); } +StatusOr +RegionInstanceGroupManagersClient::SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersSetTemplateRequest const& + region_instance_group_managers_set_template_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_managers_set_template_request_resource() = + region_instance_group_managers_set_template_request_resource; + return connection_->SetInstanceTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::SetInstanceTemplate( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -474,6 +938,26 @@ RegionInstanceGroupManagersClient::SetInstanceTemplate( return connection_->SetInstanceTemplate(request); } +StatusOr +RegionInstanceGroupManagersClient::SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceTemplate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::SetInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceTemplate(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionInstanceGroupManagersClient::SetTargetPools( std::string const& project, std::string const& region, @@ -494,6 +978,28 @@ RegionInstanceGroupManagersClient::SetTargetPools( return connection_->SetTargetPools(request); } +StatusOr +RegionInstanceGroupManagersClient::SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersSetTargetPoolsRequest const& + region_instance_group_managers_set_target_pools_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_managers_set_target_pools_request_resource() = + region_instance_group_managers_set_target_pools_request_resource; + return connection_->SetTargetPools(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::SetTargetPools( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -503,6 +1009,26 @@ RegionInstanceGroupManagersClient::SetTargetPools( return connection_->SetTargetPools(request); } +StatusOr +RegionInstanceGroupManagersClient::SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTargetPools(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::SetTargetPools( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetTargetPools(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionInstanceGroupManagersClient::UpdatePerInstanceConfigs( std::string const& project, std::string const& region, @@ -523,6 +1049,28 @@ RegionInstanceGroupManagersClient::UpdatePerInstanceConfigs( return connection_->UpdatePerInstanceConfigs(request); } +StatusOr +RegionInstanceGroupManagersClient::UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagerUpdateInstanceConfigReq const& + region_instance_group_manager_update_instance_config_req_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_group_manager(instance_group_manager); + *request + .mutable_region_instance_group_manager_update_instance_config_req_resource() = + region_instance_group_manager_update_instance_config_req_resource; + return connection_->UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupManagersClient::UpdatePerInstanceConfigs( google::cloud::cpp::compute::region_instance_group_managers::v1:: @@ -532,6 +1080,26 @@ RegionInstanceGroupManagersClient::UpdatePerInstanceConfigs( return connection_->UpdatePerInstanceConfigs(request); } +StatusOr +RegionInstanceGroupManagersClient::UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupManagersClient::UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePerInstanceConfigs(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_instance_group_managers_v1 } // namespace cloud diff --git a/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_client.h b/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_client.h index a7c65b340527c..52d3fdbef46f7 100644 --- a/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_client.h +++ b/google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_INSTANCE_GROUP_MANAGERS_V1_REGION_INSTANCE_GROUP_MANAGERS_CLIENT_H #include "google/cloud/compute/region_instance_group_managers/v1/region_instance_group_managers_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -143,6 +145,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_managers_abandon_instances_request_resource, Options opts = {}); + StatusOr AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersAbandonInstancesRequest const& + region_instance_group_managers_abandon_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Flags the specified instances to be immediately removed from the managed @@ -193,6 +204,17 @@ class RegionInstanceGroupManagersClient { AbandonInstancesRequest const& request, Options opts = {}); + StatusOr AbandonInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + AbandonInstancesRequest const& request, + Options opts = {}); + + future> AbandonInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Apply updates to selected instances the managed instance group. @@ -234,6 +256,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_managers_apply_updates_request_resource, Options opts = {}); + StatusOr ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersApplyUpdatesRequest const& + region_instance_group_managers_apply_updates_request_resource, + Options opts = {}); + // clang-format off /// /// Apply updates to selected instances the managed instance group. @@ -274,6 +305,18 @@ class RegionInstanceGroupManagersClient { ApplyUpdatesToInstancesRequest const& request, Options opts = {}); + StatusOr ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ApplyUpdatesToInstancesRequest const& request, + Options opts = {}); + + future> + ApplyUpdatesToInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates instances with per-instance configurations in this regional managed @@ -320,6 +363,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_managers_create_instances_request_resource, Options opts = {}); + StatusOr CreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersCreateInstancesRequest const& + region_instance_group_managers_create_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Creates instances with per-instance configurations in this regional managed @@ -364,6 +416,17 @@ class RegionInstanceGroupManagersClient { CreateInstancesRequest const& request, Options opts = {}); + StatusOr CreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + CreateInstancesRequest const& request, + Options opts = {}); + + future> CreateInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified managed instance group and all of the instances in @@ -402,6 +465,14 @@ class RegionInstanceGroupManagersClient { std::string const& instance_group_manager, Options opts = {}); + StatusOr + DeleteInstanceGroupManager(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& instance_group_manager, + Options opts = {}); + // clang-format off /// /// Deletes the specified managed instance group and all of the instances in @@ -443,6 +514,19 @@ class RegionInstanceGroupManagersClient { DeleteInstanceGroupManagerRequest const& request, Options opts = {}); + StatusOr + DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstanceGroupManagerRequest const& request, + Options opts = {}); + + future> + DeleteInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Flags the specified instances in the managed instance group to be @@ -494,6 +578,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_managers_delete_instances_request_resource, Options opts = {}); + StatusOr DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersDeleteInstancesRequest const& + region_instance_group_managers_delete_instances_request_resource, + Options opts = {}); + // clang-format off /// /// Flags the specified instances in the managed instance group to be @@ -544,6 +637,17 @@ class RegionInstanceGroupManagersClient { DeleteInstancesRequest const& request, Options opts = {}); + StatusOr DeleteInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeleteInstancesRequest const& request, + Options opts = {}); + + future> DeleteInstances( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes selected per-instance configurations for the managed instance @@ -586,6 +690,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_manager_delete_instance_config_req_resource, Options opts = {}); + StatusOr DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagerDeleteInstanceConfigReq const& + region_instance_group_manager_delete_instance_config_req_resource, + Options opts = {}); + // clang-format off /// /// Deletes selected per-instance configurations for the managed instance @@ -627,6 +740,18 @@ class RegionInstanceGroupManagersClient { DeletePerInstanceConfigsRequest const& request, Options opts = {}); + StatusOr DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + DeletePerInstanceConfigsRequest const& request, + Options opts = {}); + + future> + DeletePerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns all of the details about the specified managed instance group. @@ -735,6 +860,14 @@ class RegionInstanceGroupManagersClient { instance_group_manager_resource, Options opts = {}); + StatusOr + InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::InstanceGroupManager const& + instance_group_manager_resource, + Options opts = {}); + // clang-format off /// /// Creates a managed instance group using the information that you specify in @@ -781,6 +914,19 @@ class RegionInstanceGroupManagersClient { InsertInstanceGroupManagerRequest const& request, Options opts = {}); + StatusOr + InsertInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + InsertInstanceGroupManagerRequest const& request, + Options opts = {}); + + future> + InsertInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of managed instance groups that are contained within the @@ -1156,6 +1302,15 @@ class RegionInstanceGroupManagersClient { instance_group_manager_resource, Options opts = {}); + StatusOr + PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1::InstanceGroupManager const& + instance_group_manager_resource, + Options opts = {}); + // clang-format off /// /// Updates a managed instance group using the information that you specify in @@ -1205,6 +1360,19 @@ class RegionInstanceGroupManagersClient { PatchInstanceGroupManagerRequest const& request, Options opts = {}); + StatusOr + PatchInstanceGroupManager( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchInstanceGroupManagerRequest const& request, + Options opts = {}); + + future> + PatchInstanceGroupManager( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Inserts or patches per-instance configurations for the managed instance @@ -1248,6 +1416,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_manager_patch_instance_config_req_resource, Options opts = {}); + StatusOr PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagerPatchInstanceConfigReq const& + region_instance_group_manager_patch_instance_config_req_resource, + Options opts = {}); + // clang-format off /// /// Inserts or patches per-instance configurations for the managed instance @@ -1290,6 +1467,18 @@ class RegionInstanceGroupManagersClient { PatchPerInstanceConfigsRequest const& request, Options opts = {}); + StatusOr PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + PatchPerInstanceConfigsRequest const& request, + Options opts = {}); + + future> + PatchPerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Flags the specified VM instances in the managed instance group to be @@ -1340,6 +1529,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_managers_recreate_request_resource, Options opts = {}); + StatusOr RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersRecreateRequest const& + region_instance_group_managers_recreate_request_resource, + Options opts = {}); + // clang-format off /// /// Flags the specified VM instances in the managed instance group to be @@ -1389,6 +1587,17 @@ class RegionInstanceGroupManagersClient { RecreateInstancesRequest const& request, Options opts = {}); + StatusOr RecreateInstances( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + RecreateInstancesRequest const& request, + Options opts = {}); + + future> + RecreateInstances(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the intended size of the managed instance group. If you increase @@ -1435,6 +1644,12 @@ class RegionInstanceGroupManagersClient { std::string const& instance_group_manager, std::int32_t size, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, std::int32_t size, + Options opts = {}); + // clang-format off /// /// Changes the intended size of the managed instance group. If you increase @@ -1483,6 +1698,17 @@ class RegionInstanceGroupManagersClient { ResizeRequest const& request, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + ResizeRequest const& request, + Options opts = {}); + + future> Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the instance template to use when creating new instances or recreating @@ -1525,6 +1751,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_managers_set_template_request_resource, Options opts = {}); + StatusOr SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersSetTemplateRequest const& + region_instance_group_managers_set_template_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the instance template to use when creating new instances or recreating @@ -1566,6 +1801,18 @@ class RegionInstanceGroupManagersClient { SetInstanceTemplateRequest const& request, Options opts = {}); + StatusOr SetInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetInstanceTemplateRequest const& request, + Options opts = {}); + + future> + SetInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Modifies the target pools to which all new instances in this group are @@ -1607,6 +1854,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_managers_set_target_pools_request_resource, Options opts = {}); + StatusOr SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagersSetTargetPoolsRequest const& + region_instance_group_managers_set_target_pools_request_resource, + Options opts = {}); + // clang-format off /// /// Modifies the target pools to which all new instances in this group are @@ -1647,6 +1903,17 @@ class RegionInstanceGroupManagersClient { SetTargetPoolsRequest const& request, Options opts = {}); + StatusOr SetTargetPools( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + SetTargetPoolsRequest const& request, + Options opts = {}); + + future> SetTargetPools( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Inserts or updates per-instance configurations for the managed instance @@ -1690,6 +1957,15 @@ class RegionInstanceGroupManagersClient { region_instance_group_manager_update_instance_config_req_resource, Options opts = {}); + StatusOr UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group_manager, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupManagerUpdateInstanceConfigReq const& + region_instance_group_manager_update_instance_config_req_resource, + Options opts = {}); + // clang-format off /// /// Inserts or updates per-instance configurations for the managed instance @@ -1732,6 +2008,18 @@ class RegionInstanceGroupManagersClient { UpdatePerInstanceConfigsRequest const& request, Options opts = {}); + StatusOr UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_group_managers::v1:: + UpdatePerInstanceConfigsRequest const& request, + Options opts = {}); + + future> + UpdatePerInstanceConfigs( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..abc20b19023ea 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,33 @@ RegionInstanceGroupsTracingConnection::SetNamedPorts( return internal::EndSpan(std::move(span), child_->SetNamedPorts(request)); } +StatusOr +RegionInstanceGroupsTracingConnection::SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceGroupsTracingConnection::SetNamedPorts( + google::cloud::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(google::cloud::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..89cd856368ab7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request) override; + + future> SetNamedPorts( + google::cloud::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..54049e7077597 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetNamedPorts, + (google::cloud::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_client.cc b/google/cloud/compute/region_instance_groups/v1/region_instance_groups_client.cc index 80321645cc169..36910591129b6 100644 --- a/google/cloud/compute/region_instance_groups/v1/region_instance_groups_client.cc +++ b/google/cloud/compute/region_instance_groups/v1/region_instance_groups_client.cc @@ -124,6 +124,27 @@ RegionInstanceGroupsClient::SetNamedPorts( return connection_->SetNamedPorts(request); } +StatusOr +RegionInstanceGroupsClient::SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupsSetNamedPortsRequest const& + region_instance_groups_set_named_ports_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_groups::v1::SetNamedPortsRequest + request; + request.set_project(project); + request.set_region(region); + request.set_instance_group(instance_group); + *request.mutable_region_instance_groups_set_named_ports_request_resource() = + region_instance_groups_set_named_ports_request_resource; + return connection_->SetNamedPorts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceGroupsClient::SetNamedPorts( google::cloud::cpp::compute::region_instance_groups::v1:: @@ -133,6 +154,26 @@ RegionInstanceGroupsClient::SetNamedPorts( return connection_->SetNamedPorts(request); } +StatusOr +RegionInstanceGroupsClient::SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetNamedPorts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceGroupsClient::SetNamedPorts( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetNamedPorts(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/region_instance_groups/v1/region_instance_groups_client.h index e9d4b4506865c..068e2ca6bb14e 100644 --- a/google/cloud/compute/region_instance_groups/v1/region_instance_groups_client.h +++ b/google/cloud/compute/region_instance_groups/v1/region_instance_groups_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_INSTANCE_GROUPS_V1_REGION_INSTANCE_GROUPS_CLIENT_H #include "google/cloud/compute/region_instance_groups/v1/region_instance_groups_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -364,6 +366,15 @@ class RegionInstanceGroupsClient { region_instance_groups_set_named_ports_request_resource, Options opts = {}); + StatusOr SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_group, + google::cloud::cpp::compute::v1:: + RegionInstanceGroupsSetNamedPortsRequest const& + region_instance_groups_set_named_ports_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the named ports for the specified regional instance group. @@ -403,6 +414,17 @@ class RegionInstanceGroupsClient { SetNamedPortsRequest const& request, Options opts = {}); + StatusOr SetNamedPorts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_groups::v1:: + SetNamedPortsRequest const& request, + Options opts = {}); + + future> SetNamedPorts( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..fb82c4095a6ed 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,33 @@ RegionInstanceTemplatesTracingConnection::DeleteInstanceTemplate( child_->DeleteInstanceTemplate(request)); } +StatusOr +RegionInstanceTemplatesTracingConnection::DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceTemplatesTracingConnection::DeleteInstanceTemplate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionInstanceTemplatesTracingConnection::GetInstanceTemplate( google::cloud::cpp::compute::region_instance_templates::v1:: @@ -72,6 +99,33 @@ RegionInstanceTemplatesTracingConnection::InsertInstanceTemplate( child_->InsertInstanceTemplate(request)); } +StatusOr +RegionInstanceTemplatesTracingConnection::InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstanceTemplatesTracingConnection::InsertInstanceTemplate( + google::cloud::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( + google::cloud::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..59404763c1dba 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request) override; + + future> + DeleteInstanceTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request) override; + + future> + InsertInstanceTemplate( + google::cloud::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..eb39a51247448 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstanceTemplate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertInstanceTemplate, + (google::cloud::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_client.cc b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_client.cc index e5617d2910a17..737388e7ae40e 100644 --- a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_client.cc +++ b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_client.cc @@ -46,6 +46,21 @@ RegionInstanceTemplatesClient::DeleteInstanceTemplate( return connection_->DeleteInstanceTemplate(request); } +StatusOr +RegionInstanceTemplatesClient::DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_template, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest request; + request.set_project(project); + request.set_region(region); + request.set_instance_template(instance_template); + return connection_->DeleteInstanceTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceTemplatesClient::DeleteInstanceTemplate( google::cloud::cpp::compute::region_instance_templates::v1:: @@ -55,6 +70,26 @@ RegionInstanceTemplatesClient::DeleteInstanceTemplate( return connection_->DeleteInstanceTemplate(request); } +StatusOr +RegionInstanceTemplatesClient::DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceTemplatesClient::DeleteInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstanceTemplate(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionInstanceTemplatesClient::GetInstanceTemplate( std::string const& project, std::string const& region, @@ -92,6 +127,23 @@ RegionInstanceTemplatesClient::InsertInstanceTemplate( return connection_->InsertInstanceTemplate(request); } +StatusOr +RegionInstanceTemplatesClient::InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::InstanceTemplate const& + instance_template_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_instance_template_resource() = instance_template_resource; + return connection_->InsertInstanceTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionInstanceTemplatesClient::InsertInstanceTemplate( google::cloud::cpp::compute::region_instance_templates::v1:: @@ -101,6 +153,26 @@ RegionInstanceTemplatesClient::InsertInstanceTemplate( return connection_->InsertInstanceTemplate(request); } +StatusOr +RegionInstanceTemplatesClient::InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstanceTemplatesClient::InsertInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertInstanceTemplate(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionInstanceTemplatesClient::ListRegionInstanceTemplates( std::string const& project, std::string const& region, Options opts) { diff --git a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_client.h b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_client.h index e780a5431fa87..752c3af334e0f 100644 --- a/google/cloud/compute/region_instance_templates/v1/region_instance_templates_client.h +++ b/google/cloud/compute/region_instance_templates/v1/region_instance_templates_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_INSTANCE_TEMPLATES_V1_REGION_INSTANCE_TEMPLATES_CLIENT_H #include "google/cloud/compute/region_instance_templates/v1/region_instance_templates_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -127,6 +129,11 @@ class RegionInstanceTemplatesClient { std::string const& instance_template, Options opts = {}); + StatusOr DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& instance_template, Options opts = {}); + // clang-format off /// /// Deletes the specified instance template. Deleting an instance template is @@ -168,6 +175,18 @@ class RegionInstanceTemplatesClient { DeleteInstanceTemplateRequest const& request, Options opts = {}); + StatusOr DeleteInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + DeleteInstanceTemplateRequest const& request, + Options opts = {}); + + future> + DeleteInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified instance template. @@ -269,6 +288,13 @@ class RegionInstanceTemplatesClient { instance_template_resource, Options opts = {}); + StatusOr InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::InstanceTemplate const& + instance_template_resource, + Options opts = {}); + // clang-format off /// /// Creates an instance template in the specified project and region using the @@ -310,6 +336,18 @@ class RegionInstanceTemplatesClient { InsertInstanceTemplateRequest const& request, Options opts = {}); + StatusOr InsertInstanceTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instance_templates::v1:: + InsertInstanceTemplateRequest const& request, + Options opts = {}); + + future> + InsertInstanceTemplate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of instance templates that are contained within the 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..f8d1607663ff6 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,31 @@ RegionInstancesTracingConnection::BulkInsert( return internal::EndSpan(std::move(span), child_->BulkInsert(request)); } +StatusOr +RegionInstancesTracingConnection::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionInstancesTracingConnection::BulkInsert( + google::cloud::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(google::cloud::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..8b55f01f5f320 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const& request) override; + + future> BulkInsert( + google::cloud::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..8a7603e83740e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const& request), + (override)); + + MOCK_METHOD(future>, + BulkInsert, + (google::cloud::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_client.cc b/google/cloud/compute/region_instances/v1/region_instances_client.cc index 9ba3b30c85807..c3ff71b6548ff 100644 --- a/google/cloud/compute/region_instances/v1/region_instances_client.cc +++ b/google/cloud/compute/region_instances/v1/region_instances_client.cc @@ -47,6 +47,23 @@ RegionInstancesClient::BulkInsert( return connection_->BulkInsert(request); } +StatusOr +RegionInstancesClient::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::BulkInsertInstanceResource const& + bulk_insert_instance_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_instances::v1::BulkInsertRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_bulk_insert_instance_resource() = + bulk_insert_instance_resource; + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionInstancesClient::BulkInsert( google::cloud::cpp::compute::region_instances::v1::BulkInsertRequest const& @@ -56,6 +73,25 @@ RegionInstancesClient::BulkInsert( return connection_->BulkInsert(request); } +StatusOr +RegionInstancesClient::BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1::BulkInsertRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionInstancesClient::BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkInsert(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_region_instances_v1 } // namespace cloud diff --git a/google/cloud/compute/region_instances/v1/region_instances_client.h b/google/cloud/compute/region_instances/v1/region_instances_client.h index 3e0ea7faa0cdf..8079c22c152be 100644 --- a/google/cloud/compute/region_instances/v1/region_instances_client.h +++ b/google/cloud/compute/region_instances/v1/region_instances_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_INSTANCES_V1_REGION_INSTANCES_CLIENT_H #include "google/cloud/compute/region_instances/v1/region_instances_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -124,6 +126,13 @@ class RegionInstancesClient { bulk_insert_instance_resource, Options opts = {}); + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::BulkInsertInstanceResource const& + bulk_insert_instance_resource, + Options opts = {}); + // clang-format off /// /// Creates multiple instances in a given region. Count specifies the number of @@ -164,6 +173,17 @@ class RegionInstancesClient { BulkInsertRequest const& request, Options opts = {}); + StatusOr BulkInsert( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_instances::v1:: + BulkInsertRequest const& request, + Options opts = {}); + + future> BulkInsert( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..4e8382661547d 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,33 @@ RegionNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( child_->AttachNetworkEndpoints(request)); } +StatusOr +RegionNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkEndpointGroupsTracingConnection::AttachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -61,6 +88,33 @@ RegionNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( child_->DeleteNetworkEndpointGroup(request)); } +StatusOr +RegionNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkEndpointGroupsTracingConnection::DeleteNetworkEndpointGroup( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -73,6 +127,33 @@ RegionNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( child_->DetachNetworkEndpoints(request)); } +StatusOr +RegionNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkEndpointGroupsTracingConnection::DetachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionNetworkEndpointGroupsTracingConnection::GetNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -96,6 +177,33 @@ RegionNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( child_->InsertNetworkEndpointGroup(request)); } +StatusOr +RegionNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkEndpointGroupsTracingConnection::InsertNetworkEndpointGroup( + google::cloud::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( + google::cloud::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..034c329f1f20f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request) override; + + future> + AttachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request) override; + + future> + DeleteNetworkEndpointGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request) override; + + future> + DetachNetworkEndpoints( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request) override; + + future> + InsertNetworkEndpointGroup( + google::cloud::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..63e2951fee316 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + AttachNetworkEndpoints, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNetworkEndpointGroup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachNetworkEndpoints, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNetworkEndpointGroup, + (google::cloud::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_client.cc b/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_client.cc index b711834200850..5683636c28f08 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_client.cc +++ b/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_client.cc @@ -55,6 +55,28 @@ RegionNetworkEndpointGroupsClient::AttachNetworkEndpoints( return connection_->AttachNetworkEndpoints(request); } +StatusOr +RegionNetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + RegionNetworkEndpointGroupsAttachEndpointsRequest const& + region_network_endpoint_groups_attach_endpoints_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest request; + request.set_project(project); + request.set_region(region); + request.set_network_endpoint_group(network_endpoint_group); + *request + .mutable_region_network_endpoint_groups_attach_endpoints_request_resource() = + region_network_endpoint_groups_attach_endpoints_request_resource; + return connection_->AttachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkEndpointGroupsClient::AttachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -64,6 +86,26 @@ RegionNetworkEndpointGroupsClient::AttachNetworkEndpoints( return connection_->AttachNetworkEndpoints(request); } +StatusOr +RegionNetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkEndpointGroupsClient::AttachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachNetworkEndpoints(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( std::string const& project, std::string const& region, @@ -77,6 +119,21 @@ RegionNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( return connection_->DeleteNetworkEndpointGroup(request); } +StatusOr +RegionNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_endpoint_group, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest request; + request.set_project(project); + request.set_region(region); + request.set_network_endpoint_group(network_endpoint_group); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -86,6 +143,26 @@ RegionNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( return connection_->DeleteNetworkEndpointGroup(request); } +StatusOr +RegionNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkEndpointGroupsClient::DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, operation); +} + future> RegionNetworkEndpointGroupsClient::DetachNetworkEndpoints( std::string const& project, std::string const& region, @@ -106,6 +183,28 @@ RegionNetworkEndpointGroupsClient::DetachNetworkEndpoints( return connection_->DetachNetworkEndpoints(request); } +StatusOr +RegionNetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + RegionNetworkEndpointGroupsDetachEndpointsRequest const& + region_network_endpoint_groups_detach_endpoints_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest request; + request.set_project(project); + request.set_region(region); + request.set_network_endpoint_group(network_endpoint_group); + *request + .mutable_region_network_endpoint_groups_detach_endpoints_request_resource() = + region_network_endpoint_groups_detach_endpoints_request_resource; + return connection_->DetachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkEndpointGroupsClient::DetachNetworkEndpoints( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -115,6 +214,26 @@ RegionNetworkEndpointGroupsClient::DetachNetworkEndpoints( return connection_->DetachNetworkEndpoints(request); } +StatusOr +RegionNetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachNetworkEndpoints( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkEndpointGroupsClient::DetachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachNetworkEndpoints(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionNetworkEndpointGroupsClient::GetNetworkEndpointGroup( std::string const& project, std::string const& region, @@ -153,6 +272,24 @@ RegionNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( return connection_->InsertNetworkEndpointGroup(request); } +StatusOr +RegionNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NetworkEndpointGroup const& + network_endpoint_group_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_network_endpoint_group_resource() = + network_endpoint_group_resource; + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( google::cloud::cpp::compute::region_network_endpoint_groups::v1:: @@ -162,6 +299,26 @@ RegionNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( return connection_->InsertNetworkEndpointGroup(request); } +StatusOr +RegionNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkEndpointGroupsClient::InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange RegionNetworkEndpointGroupsClient::ListRegionNetworkEndpointGroups( std::string const& project, std::string const& region, Options opts) { diff --git a/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_client.h b/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_client.h index fd7a2e4dc2764..d53d8e11f3460 100644 --- a/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_client.h +++ b/google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_NETWORK_ENDPOINT_GROUPS_V1_REGION_NETWORK_ENDPOINT_GROUPS_CLIENT_H #include "google/cloud/compute/region_network_endpoint_groups/v1/region_network_endpoint_groups_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -136,6 +138,15 @@ class RegionNetworkEndpointGroupsClient { region_network_endpoint_groups_attach_endpoints_request_resource, Options opts = {}); + StatusOr AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + RegionNetworkEndpointGroupsAttachEndpointsRequest const& + region_network_endpoint_groups_attach_endpoints_request_resource, + Options opts = {}); + // clang-format off /// /// Attach a list of network endpoints to the specified network endpoint group. @@ -176,6 +187,18 @@ class RegionNetworkEndpointGroupsClient { AttachNetworkEndpointsRequest const& request, Options opts = {}); + StatusOr AttachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + AttachNetworkEndpointsRequest const& request, + Options opts = {}); + + future> + AttachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified network endpoint group. Note that the NEG cannot be @@ -216,6 +239,14 @@ class RegionNetworkEndpointGroupsClient { std::string const& network_endpoint_group, Options opts = {}); + StatusOr + DeleteNetworkEndpointGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& network_endpoint_group, + Options opts = {}); + // clang-format off /// /// Deletes the specified network endpoint group. Note that the NEG cannot be @@ -257,6 +288,19 @@ class RegionNetworkEndpointGroupsClient { DeleteNetworkEndpointGroupRequest const& request, Options opts = {}); + StatusOr + DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DeleteNetworkEndpointGroupRequest const& request, + Options opts = {}); + + future> + DeleteNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Detach the network endpoint from the specified network endpoint group. @@ -300,6 +344,15 @@ class RegionNetworkEndpointGroupsClient { region_network_endpoint_groups_detach_endpoints_request_resource, Options opts = {}); + StatusOr DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& network_endpoint_group, + google::cloud::cpp::compute::v1:: + RegionNetworkEndpointGroupsDetachEndpointsRequest const& + region_network_endpoint_groups_detach_endpoints_request_resource, + Options opts = {}); + // clang-format off /// /// Detach the network endpoint from the specified network endpoint group. @@ -340,6 +393,18 @@ class RegionNetworkEndpointGroupsClient { DetachNetworkEndpointsRequest const& request, Options opts = {}); + StatusOr DetachNetworkEndpoints( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + DetachNetworkEndpointsRequest const& request, + Options opts = {}); + + future> + DetachNetworkEndpoints( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified network endpoint group. @@ -445,6 +510,14 @@ class RegionNetworkEndpointGroupsClient { network_endpoint_group_resource, Options opts = {}); + StatusOr + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NetworkEndpointGroup const& + network_endpoint_group_resource, + Options opts = {}); + // clang-format off /// /// Creates a network endpoint group in the specified project using the @@ -486,6 +559,19 @@ class RegionNetworkEndpointGroupsClient { InsertNetworkEndpointGroupRequest const& request, Options opts = {}); + StatusOr + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_endpoint_groups::v1:: + InsertNetworkEndpointGroupRequest const& request, + Options opts = {}); + + future> + InsertNetworkEndpointGroup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of regional network endpoint groups available to the 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..36b2a82501c3c 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,33 @@ RegionNetworkFirewallPoliciesTracingConnection::AddAssociation( return internal::EndSpan(std::move(span), child_->AddAssociation(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::AddAssociation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::AddRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -59,6 +86,33 @@ RegionNetworkFirewallPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::AddRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::AddRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::CloneRules( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -70,6 +124,33 @@ RegionNetworkFirewallPoliciesTracingConnection::CloneRules( return internal::EndSpan(std::move(span), child_->CloneRules(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::CloneRules( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::CloneRules( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -82,6 +163,33 @@ RegionNetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( child_->DeleteFirewallPolicy(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::DeleteFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionNetworkFirewallPoliciesTracingConnection::GetFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -150,6 +258,33 @@ RegionNetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( child_->InsertFirewallPolicy(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::InsertFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionNetworkFirewallPoliciesTracingConnection:: ListRegionNetworkFirewallPolicies( @@ -178,6 +313,33 @@ RegionNetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( child_->PatchFirewallPolicy(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::PatchFirewallPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -189,6 +351,33 @@ RegionNetworkFirewallPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::PatchRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::PatchRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::RemoveAssociation( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -200,6 +389,33 @@ RegionNetworkFirewallPoliciesTracingConnection::RemoveAssociation( return internal::EndSpan(std::move(span), child_->RemoveAssociation(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::RemoveAssociation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionNetworkFirewallPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -211,6 +427,33 @@ RegionNetworkFirewallPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +RegionNetworkFirewallPoliciesTracingConnection::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNetworkFirewallPoliciesTracingConnection::RemoveRule( + google::cloud::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(google::cloud::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..3f05d6f74a037 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request) override; + + future> AddAssociation( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request) override; + + future> CloneRules( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request) override; + + future> + DeleteFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request) override; + + future> + InsertFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request) override; + + future> + PatchFirewallPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request) override; + + future> + RemoveAssociation( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + google::cloud::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..5353d64421210 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::AddAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddAssociation, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::AddRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::CloneRulesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CloneRules, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::DeleteFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::InsertFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::PatchFirewallPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchFirewallPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::RemoveAssociationRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveAssociation, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies:: + v1::RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (google::cloud::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_client.cc b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.cc index cce7ecad93d4a..9187056498879 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.cc +++ b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.cc @@ -53,6 +53,26 @@ RegionNetworkFirewallPoliciesClient::AddAssociation( return connection_->AddAssociation(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyAssociation const& + firewall_policy_association_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest request; + request.set_project(project); + request.set_region(region); + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_association_resource() = + firewall_policy_association_resource; + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::AddAssociation( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -62,6 +82,26 @@ RegionNetworkFirewallPoliciesClient::AddAssociation( return connection_->AddAssociation(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::AddAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAssociation(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionNetworkFirewallPoliciesClient::AddRule( std::string const& project, std::string const& region, @@ -80,6 +120,26 @@ RegionNetworkFirewallPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest request; + request.set_project(project); + request.set_region(region); + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_rule_resource() = + firewall_policy_rule_resource; + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::AddRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -89,6 +149,25 @@ RegionNetworkFirewallPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, operation); +} + future> RegionNetworkFirewallPoliciesClient::CloneRules( std::string const& project, std::string const& region, @@ -102,6 +181,21 @@ RegionNetworkFirewallPoliciesClient::CloneRules( return connection_->CloneRules(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest request; + request.set_project(project); + request.set_region(region); + request.set_firewall_policy(firewall_policy); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::CloneRules( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -111,6 +205,25 @@ RegionNetworkFirewallPoliciesClient::CloneRules( return connection_->CloneRules(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::CloneRules( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CloneRules(google::cloud::ExperimentalTag{}, operation); +} + future> RegionNetworkFirewallPoliciesClient::DeleteFirewallPolicy( std::string const& project, std::string const& region, @@ -124,6 +237,21 @@ RegionNetworkFirewallPoliciesClient::DeleteFirewallPolicy( return connection_->DeleteFirewallPolicy(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest request; + request.set_project(project); + request.set_region(region); + request.set_firewall_policy(firewall_policy); + return connection_->DeleteFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::DeleteFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -133,6 +261,26 @@ RegionNetworkFirewallPoliciesClient::DeleteFirewallPolicy( return connection_->DeleteFirewallPolicy(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::DeleteFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionNetworkFirewallPoliciesClient::GetFirewallPolicy( std::string const& project, std::string const& region, @@ -262,6 +410,23 @@ RegionNetworkFirewallPoliciesClient::InsertFirewallPolicy( return connection_->InsertFirewallPolicy(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_firewall_policy_resource() = firewall_policy_resource; + return connection_->InsertFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::InsertFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -271,6 +436,26 @@ RegionNetworkFirewallPoliciesClient::InsertFirewallPolicy( return connection_->InsertFirewallPolicy(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertFirewallPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::InsertFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionNetworkFirewallPoliciesClient::ListRegionNetworkFirewallPolicies( std::string const& project, std::string const& region, Options opts) { @@ -308,6 +493,25 @@ RegionNetworkFirewallPoliciesClient::PatchFirewallPolicy( return connection_->PatchFirewallPolicy(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest request; + request.set_project(project); + request.set_region(region); + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_resource() = firewall_policy_resource; + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::PatchFirewallPolicy( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -317,6 +521,26 @@ RegionNetworkFirewallPoliciesClient::PatchFirewallPolicy( return connection_->PatchFirewallPolicy(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::PatchFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchFirewallPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionNetworkFirewallPoliciesClient::PatchRule( std::string const& project, std::string const& region, @@ -335,6 +559,26 @@ RegionNetworkFirewallPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest request; + request.set_project(project); + request.set_region(region); + request.set_firewall_policy(firewall_policy); + *request.mutable_firewall_policy_rule_resource() = + firewall_policy_rule_resource; + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::PatchRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -344,6 +588,25 @@ RegionNetworkFirewallPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, operation); +} + future> RegionNetworkFirewallPoliciesClient::RemoveAssociation( std::string const& project, std::string const& region, @@ -357,6 +620,21 @@ RegionNetworkFirewallPoliciesClient::RemoveAssociation( return connection_->RemoveAssociation(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest request; + request.set_project(project); + request.set_region(region); + request.set_firewall_policy(firewall_policy); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::RemoveAssociation( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -366,6 +644,26 @@ RegionNetworkFirewallPoliciesClient::RemoveAssociation( return connection_->RemoveAssociation(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::RemoveAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveAssociation(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionNetworkFirewallPoliciesClient::RemoveRule( std::string const& project, std::string const& region, @@ -379,6 +677,21 @@ RegionNetworkFirewallPoliciesClient::RemoveRule( return connection_->RemoveRule(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest request; + request.set_project(project); + request.set_region(region); + request.set_firewall_policy(firewall_policy); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionNetworkFirewallPoliciesClient::RemoveRule( google::cloud::cpp::compute::region_network_firewall_policies::v1:: @@ -388,6 +701,25 @@ RegionNetworkFirewallPoliciesClient::RemoveRule( return connection_->RemoveRule(request); } +StatusOr +RegionNetworkFirewallPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNetworkFirewallPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, operation); +} + StatusOr RegionNetworkFirewallPoliciesClient::SetIamPolicy( std::string const& project, std::string const& region, diff --git a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.h b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.h index 08d8406870c34..2e3bdabcb5a45 100644 --- a/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.h +++ b/google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_NETWORK_FIREWALL_POLICIES_V1_REGION_NETWORK_FIREWALL_POLICIES_CLIENT_H #include "google/cloud/compute/region_network_firewall_policies/v1/region_network_firewall_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -131,6 +133,14 @@ class RegionNetworkFirewallPoliciesClient { firewall_policy_association_resource, Options opts = {}); + StatusOr AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyAssociation const& + firewall_policy_association_resource, + Options opts = {}); + // clang-format off /// /// Inserts an association for the specified network firewall policy. @@ -170,6 +180,17 @@ class RegionNetworkFirewallPoliciesClient { AddAssociationRequest const& request, Options opts = {}); + StatusOr AddAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddAssociationRequest const& request, + Options opts = {}); + + future> AddAssociation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Inserts a rule into a network firewall policy. @@ -209,6 +230,14 @@ class RegionNetworkFirewallPoliciesClient { firewall_policy_rule_resource, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Inserts a rule into a network firewall policy. @@ -248,6 +277,17 @@ class RegionNetworkFirewallPoliciesClient { AddRuleRequest const& request, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + AddRuleRequest const& request, + Options opts = {}); + + future> AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Copies rules to the specified network firewall policy. @@ -283,6 +323,11 @@ class RegionNetworkFirewallPoliciesClient { std::string const& project, std::string const& region, std::string const& firewall_policy, Options opts = {}); + StatusOr CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Copies rules to the specified network firewall policy. @@ -322,6 +367,17 @@ class RegionNetworkFirewallPoliciesClient { CloneRulesRequest const& request, Options opts = {}); + StatusOr CloneRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + CloneRulesRequest const& request, + Options opts = {}); + + future> CloneRules( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified network firewall policy. @@ -357,6 +413,11 @@ class RegionNetworkFirewallPoliciesClient { DeleteFirewallPolicy(std::string const& project, std::string const& region, std::string const& firewall_policy, Options opts = {}); + StatusOr DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Deletes the specified network firewall policy. @@ -397,6 +458,18 @@ class RegionNetworkFirewallPoliciesClient { DeleteFirewallPolicyRequest const& request, Options opts = {}); + StatusOr DeleteFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + DeleteFirewallPolicyRequest const& request, + Options opts = {}); + + future> + DeleteFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified network firewall policy. @@ -749,6 +822,13 @@ class RegionNetworkFirewallPoliciesClient { firewall_policy_resource, Options opts = {}); + StatusOr InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts = {}); + // clang-format off /// /// Creates a new network firewall policy in the specified project and region. @@ -789,6 +869,18 @@ class RegionNetworkFirewallPoliciesClient { InsertFirewallPolicyRequest const& request, Options opts = {}); + StatusOr InsertFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + InsertFirewallPolicyRequest const& request, + Options opts = {}); + + future> + InsertFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all the network firewall policies that have been configured for the @@ -911,6 +1003,14 @@ class RegionNetworkFirewallPoliciesClient { firewall_policy_resource, Options opts = {}); + StatusOr PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicy const& + firewall_policy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified network firewall policy. @@ -951,6 +1051,18 @@ class RegionNetworkFirewallPoliciesClient { PatchFirewallPolicyRequest const& request, Options opts = {}); + StatusOr PatchFirewallPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchFirewallPolicyRequest const& request, + Options opts = {}); + + future> + PatchFirewallPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Patches a rule of the specified priority. @@ -990,6 +1102,14 @@ class RegionNetworkFirewallPoliciesClient { firewall_policy_rule_resource, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, + google::cloud::cpp::compute::v1::FirewallPolicyRule const& + firewall_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Patches a rule of the specified priority. @@ -1029,6 +1149,17 @@ class RegionNetworkFirewallPoliciesClient { PatchRuleRequest const& request, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + PatchRuleRequest const& request, + Options opts = {}); + + future> PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes an association for the specified network firewall policy. @@ -1064,6 +1195,11 @@ class RegionNetworkFirewallPoliciesClient { RemoveAssociation(std::string const& project, std::string const& region, std::string const& firewall_policy, Options opts = {}); + StatusOr RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Removes an association for the specified network firewall policy. @@ -1104,6 +1240,17 @@ class RegionNetworkFirewallPoliciesClient { RemoveAssociationRequest const& request, Options opts = {}); + StatusOr RemoveAssociation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveAssociationRequest const& request, + Options opts = {}); + + future> + RemoveAssociation(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a rule of the specified priority. @@ -1139,6 +1286,11 @@ class RegionNetworkFirewallPoliciesClient { std::string const& project, std::string const& region, std::string const& firewall_policy, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& firewall_policy, Options opts = {}); + // clang-format off /// /// Deletes a rule of the specified priority. @@ -1178,6 +1330,17 @@ class RegionNetworkFirewallPoliciesClient { RemoveRuleRequest const& request, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_network_firewall_policies::v1:: + RemoveRuleRequest const& request, + Options opts = {}); + + future> RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any 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..860e29ed89b2d 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,33 @@ RegionNotificationEndpointsTracingConnection::DeleteNotificationEndpoint( child_->DeleteNotificationEndpoint(request)); } +StatusOr +RegionNotificationEndpointsTracingConnection::DeleteNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNotificationEndpointsTracingConnection::DeleteNotificationEndpoint( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionNotificationEndpointsTracingConnection::GetNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -72,6 +99,33 @@ RegionNotificationEndpointsTracingConnection::InsertNotificationEndpoint( child_->InsertNotificationEndpoint(request)); } +StatusOr +RegionNotificationEndpointsTracingConnection::InsertNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionNotificationEndpointsTracingConnection::InsertNotificationEndpoint( + google::cloud::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( + google::cloud::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..45f07fb1176eb 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request) override; + + future> + DeleteNotificationEndpoint( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request) override; + + future> + InsertNotificationEndpoint( + google::cloud::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..4032b4b8018bc 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNotificationEndpoint, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertNotificationEndpoint, + (google::cloud::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_client.cc b/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_client.cc index 9b46527c9336c..8fab263e1da99 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_client.cc +++ b/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_client.cc @@ -48,6 +48,21 @@ RegionNotificationEndpointsClient::DeleteNotificationEndpoint( return connection_->DeleteNotificationEndpoint(request); } +StatusOr +RegionNotificationEndpointsClient::DeleteNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& notification_endpoint, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest request; + request.set_project(project); + request.set_region(region); + request.set_notification_endpoint(notification_endpoint); + return connection_->DeleteNotificationEndpoint( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionNotificationEndpointsClient::DeleteNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -57,6 +72,26 @@ RegionNotificationEndpointsClient::DeleteNotificationEndpoint( return connection_->DeleteNotificationEndpoint(request); } +StatusOr +RegionNotificationEndpointsClient::DeleteNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNotificationEndpoint( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNotificationEndpointsClient::DeleteNotificationEndpoint( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNotificationEndpoint( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr RegionNotificationEndpointsClient::GetNotificationEndpoint( std::string const& project, std::string const& region, @@ -95,6 +130,24 @@ RegionNotificationEndpointsClient::InsertNotificationEndpoint( return connection_->InsertNotificationEndpoint(request); } +StatusOr +RegionNotificationEndpointsClient::InsertNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NotificationEndpoint const& + notification_endpoint_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_notification_endpoint_resource() = + notification_endpoint_resource; + return connection_->InsertNotificationEndpoint( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionNotificationEndpointsClient::InsertNotificationEndpoint( google::cloud::cpp::compute::region_notification_endpoints::v1:: @@ -104,6 +157,26 @@ RegionNotificationEndpointsClient::InsertNotificationEndpoint( return connection_->InsertNotificationEndpoint(request); } +StatusOr +RegionNotificationEndpointsClient::InsertNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNotificationEndpoint( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionNotificationEndpointsClient::InsertNotificationEndpoint( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertNotificationEndpoint( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange RegionNotificationEndpointsClient::ListRegionNotificationEndpoints( std::string const& project, std::string const& region, Options opts) { diff --git a/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_client.h b/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_client.h index 6bf529e61a313..02a947f0715b9 100644 --- a/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_client.h +++ b/google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_NOTIFICATION_ENDPOINTS_V1_REGION_NOTIFICATION_ENDPOINTS_CLIENT_H #include "google/cloud/compute/region_notification_endpoints/v1/region_notification_endpoints_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -129,6 +131,14 @@ class RegionNotificationEndpointsClient { std::string const& notification_endpoint, Options opts = {}); + StatusOr + DeleteNotificationEndpoint(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& notification_endpoint, + Options opts = {}); + // clang-format off /// /// Deletes the specified NotificationEndpoint in the given region @@ -169,6 +179,19 @@ class RegionNotificationEndpointsClient { DeleteNotificationEndpointRequest const& request, Options opts = {}); + StatusOr + DeleteNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + DeleteNotificationEndpointRequest const& request, + Options opts = {}); + + future> + DeleteNotificationEndpoint( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified NotificationEndpoint resource in the given region. @@ -272,6 +295,14 @@ class RegionNotificationEndpointsClient { notification_endpoint_resource, Options opts = {}); + StatusOr + InsertNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::NotificationEndpoint const& + notification_endpoint_resource, + Options opts = {}); + // clang-format off /// /// Create a NotificationEndpoint in the specified project in the given region @@ -313,6 +344,19 @@ class RegionNotificationEndpointsClient { InsertNotificationEndpointRequest const& request, Options opts = {}); + StatusOr + InsertNotificationEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_notification_endpoints::v1:: + InsertNotificationEndpointRequest const& request, + Options opts = {}); + + future> + InsertNotificationEndpoint( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the NotificationEndpoints for a project in the given region. 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_client.h b/google/cloud/compute/region_operations/v1/region_operations_client.h index 368eb40a5ce1b..6e1a50a27bea7 100644 --- a/google/cloud/compute/region_operations/v1/region_operations_client.h +++ b/google/cloud/compute/region_operations/v1/region_operations_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_OPERATIONS_V1_REGION_OPERATIONS_CLIENT_H #include "google/cloud/compute/region_operations/v1/region_operations_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..3988592a56637 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,33 @@ RegionSecurityPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::AddRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::AddRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionSecurityPoliciesTracingConnection::DeleteSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -60,6 +87,33 @@ RegionSecurityPoliciesTracingConnection::DeleteSecurityPolicy( child_->DeleteSecurityPolicy(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::DeleteSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionSecurityPoliciesTracingConnection::GetSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -94,6 +148,33 @@ RegionSecurityPoliciesTracingConnection::InsertSecurityPolicy( child_->InsertSecurityPolicy(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::InsertSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionSecurityPoliciesTracingConnection::ListRegionSecurityPolicies( google::cloud::cpp::compute::region_security_policies::v1:: @@ -120,6 +201,33 @@ RegionSecurityPoliciesTracingConnection::PatchSecurityPolicy( child_->PatchSecurityPolicy(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::PatchSecurityPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionSecurityPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -131,6 +239,33 @@ RegionSecurityPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::PatchRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::PatchRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionSecurityPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -142,6 +277,33 @@ RegionSecurityPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +RegionSecurityPoliciesTracingConnection::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSecurityPoliciesTracingConnection::RemoveRule( + google::cloud::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(google::cloud::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..4f164aea71525 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request) override; + + future> AddRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request) override; + + future> + DeleteSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request) override; + + future> + InsertSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request) override; + + future> + PatchSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + google::cloud::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..483e8087ad264 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (google::cloud::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_client.cc b/google/cloud/compute/region_security_policies/v1/region_security_policies_client.cc index a534f5614f9e4..c89fc3b2e8077 100644 --- a/google/cloud/compute/region_security_policies/v1/region_security_policies_client.cc +++ b/google/cloud/compute/region_security_policies/v1/region_security_policies_client.cc @@ -51,6 +51,26 @@ RegionSecurityPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +RegionSecurityPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, + google::cloud::cpp::compute::v1::SecurityPolicyRule const& + security_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_security_policies::v1::AddRuleRequest + request; + request.set_project(project); + request.set_region(region); + request.set_security_policy(security_policy); + *request.mutable_security_policy_rule_resource() = + security_policy_rule_resource; + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionSecurityPoliciesClient::AddRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -60,6 +80,25 @@ RegionSecurityPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +RegionSecurityPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSecurityPoliciesClient::AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, operation); +} + future> RegionSecurityPoliciesClient::DeleteSecurityPolicy( std::string const& project, std::string const& region, @@ -73,6 +112,21 @@ RegionSecurityPoliciesClient::DeleteSecurityPolicy( return connection_->DeleteSecurityPolicy(request); } +StatusOr +RegionSecurityPoliciesClient::DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest request; + request.set_project(project); + request.set_region(region); + request.set_security_policy(security_policy); + return connection_->DeleteSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionSecurityPoliciesClient::DeleteSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -82,6 +136,26 @@ RegionSecurityPoliciesClient::DeleteSecurityPolicy( return connection_->DeleteSecurityPolicy(request); } +StatusOr +RegionSecurityPoliciesClient::DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSecurityPoliciesClient::DeleteSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionSecurityPoliciesClient::GetSecurityPolicy( std::string const& project, std::string const& region, @@ -142,6 +216,23 @@ RegionSecurityPoliciesClient::InsertSecurityPolicy( return connection_->InsertSecurityPolicy(request); } +StatusOr +RegionSecurityPoliciesClient::InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::SecurityPolicy const& + security_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_security_policy_resource() = security_policy_resource; + return connection_->InsertSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionSecurityPoliciesClient::InsertSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -151,6 +242,26 @@ RegionSecurityPoliciesClient::InsertSecurityPolicy( return connection_->InsertSecurityPolicy(request); } +StatusOr +RegionSecurityPoliciesClient::InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSecurityPoliciesClient::InsertSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionSecurityPoliciesClient::ListRegionSecurityPolicies( std::string const& project, std::string const& region, Options opts) { @@ -189,6 +300,26 @@ RegionSecurityPoliciesClient::PatchSecurityPolicy( return connection_->PatchSecurityPolicy(request); } +StatusOr +RegionSecurityPoliciesClient::PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, std::string const& update_mask, + google::cloud::cpp::compute::v1::SecurityPolicy const& + security_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest request; + request.set_project(project); + request.set_region(region); + request.set_security_policy(security_policy); + request.set_update_mask(update_mask); + *request.mutable_security_policy_resource() = security_policy_resource; + return connection_->PatchSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionSecurityPoliciesClient::PatchSecurityPolicy( google::cloud::cpp::compute::region_security_policies::v1:: @@ -198,6 +329,26 @@ RegionSecurityPoliciesClient::PatchSecurityPolicy( return connection_->PatchSecurityPolicy(request); } +StatusOr +RegionSecurityPoliciesClient::PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSecurityPoliciesClient::PatchSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionSecurityPoliciesClient::PatchRule( std::string const& project, std::string const& region, @@ -216,6 +367,26 @@ RegionSecurityPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +RegionSecurityPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, + google::cloud::cpp::compute::v1::SecurityPolicyRule const& + security_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_security_policies::v1::PatchRuleRequest + request; + request.set_project(project); + request.set_region(region); + request.set_security_policy(security_policy); + *request.mutable_security_policy_rule_resource() = + security_policy_rule_resource; + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionSecurityPoliciesClient::PatchRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -225,6 +396,25 @@ RegionSecurityPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +RegionSecurityPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSecurityPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, operation); +} + future> RegionSecurityPoliciesClient::RemoveRule(std::string const& project, std::string const& region, @@ -239,6 +429,23 @@ RegionSecurityPoliciesClient::RemoveRule(std::string const& project, return connection_->RemoveRule(request); } +StatusOr +RegionSecurityPoliciesClient::RemoveRule(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& security_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_security_policies::v1::RemoveRuleRequest + request; + request.set_project(project); + request.set_region(region); + request.set_security_policy(security_policy); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionSecurityPoliciesClient::RemoveRule( google::cloud::cpp::compute::region_security_policies::v1:: @@ -248,6 +455,25 @@ RegionSecurityPoliciesClient::RemoveRule( return connection_->RemoveRule(request); } +StatusOr +RegionSecurityPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSecurityPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/region_security_policies/v1/region_security_policies_client.h index e1c749c1d02dd..64b6dcb42d52e 100644 --- a/google/cloud/compute/region_security_policies/v1/region_security_policies_client.h +++ b/google/cloud/compute/region_security_policies/v1/region_security_policies_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_SECURITY_POLICIES_V1_REGION_SECURITY_POLICIES_CLIENT_H #include "google/cloud/compute/region_security_policies/v1/region_security_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -130,6 +132,14 @@ class RegionSecurityPoliciesClient { security_policy_rule_resource, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, + google::cloud::cpp::compute::v1::SecurityPolicyRule const& + security_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Inserts a rule into a security policy. @@ -169,6 +179,17 @@ class RegionSecurityPoliciesClient { AddRuleRequest const& request, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + AddRuleRequest const& request, + Options opts = {}); + + future> AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified policy. @@ -204,6 +225,11 @@ class RegionSecurityPoliciesClient { DeleteSecurityPolicy(std::string const& project, std::string const& region, std::string const& security_policy, Options opts = {}); + StatusOr DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, Options opts = {}); + // clang-format off /// /// Deletes the specified policy. @@ -243,6 +269,18 @@ class RegionSecurityPoliciesClient { v1::DeleteSecurityPolicyRequest const& request, Options opts = {}); + StatusOr DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + DeleteSecurityPolicyRequest const& request, + Options opts = {}); + + future> + DeleteSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// List all of the ordered rules present in a single specified policy. @@ -405,6 +443,13 @@ class RegionSecurityPoliciesClient { security_policy_resource, Options opts = {}); + StatusOr InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::SecurityPolicy const& + security_policy_resource, + Options opts = {}); + // clang-format off /// /// Creates a new policy in the specified project using the data included in @@ -445,6 +490,18 @@ class RegionSecurityPoliciesClient { v1::InsertSecurityPolicyRequest const& request, Options opts = {}); + StatusOr InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + InsertSecurityPolicyRequest const& request, + Options opts = {}); + + future> + InsertSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// List all the policies that have been configured for the specified project @@ -572,6 +629,14 @@ class RegionSecurityPoliciesClient { security_policy_resource, Options opts = {}); + StatusOr PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, std::string const& update_mask, + google::cloud::cpp::compute::v1::SecurityPolicy const& + security_policy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified policy with the data included in the request. To @@ -615,6 +680,18 @@ class RegionSecurityPoliciesClient { v1::PatchSecurityPolicyRequest const& request, Options opts = {}); + StatusOr PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchSecurityPolicyRequest const& request, + Options opts = {}); + + future> + PatchSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Patches a rule at the specified priority. To clear fields in the rule, @@ -655,6 +732,14 @@ class RegionSecurityPoliciesClient { security_policy_rule_resource, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, + google::cloud::cpp::compute::v1::SecurityPolicyRule const& + security_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Patches a rule at the specified priority. To clear fields in the rule, @@ -695,6 +780,17 @@ class RegionSecurityPoliciesClient { PatchRuleRequest const& request, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + PatchRuleRequest const& request, + Options opts = {}); + + future> PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a rule at the specified priority. @@ -730,6 +826,11 @@ class RegionSecurityPoliciesClient { std::string const& project, std::string const& region, std::string const& security_policy, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& security_policy, Options opts = {}); + // clang-format off /// /// Deletes a rule at the specified priority. @@ -769,6 +870,17 @@ class RegionSecurityPoliciesClient { RemoveRuleRequest const& request, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_security_policies::v1:: + RemoveRuleRequest const& request, + Options opts = {}); + + future> RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..156e21c5c9fe4 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,33 @@ RegionSslCertificatesTracingConnection::DeleteSslCertificate( child_->DeleteSslCertificate(request)); } +StatusOr +RegionSslCertificatesTracingConnection::DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSslCertificatesTracingConnection::DeleteSslCertificate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionSslCertificatesTracingConnection::GetSslCertificate( google::cloud::cpp::compute::region_ssl_certificates::v1:: @@ -71,6 +98,33 @@ RegionSslCertificatesTracingConnection::InsertSslCertificate( child_->InsertSslCertificate(request)); } +StatusOr +RegionSslCertificatesTracingConnection::InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSslCertificatesTracingConnection::InsertSslCertificate( + google::cloud::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( + google::cloud::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..2519fd7c1948d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) override; + + future> + DeleteSslCertificate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request) override; + + future> + InsertSslCertificate( + google::cloud::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..d2d735aaa9b03 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSslCertificate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSslCertificate, + (google::cloud::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_client.cc b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.cc index ac7355e86d4f1..d8e4216e2f48c 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.cc +++ b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.cc @@ -46,6 +46,21 @@ RegionSslCertificatesClient::DeleteSslCertificate( return connection_->DeleteSslCertificate(request); } +StatusOr +RegionSslCertificatesClient::DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& ssl_certificate, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest request; + request.set_project(project); + request.set_region(region); + request.set_ssl_certificate(ssl_certificate); + return connection_->DeleteSslCertificate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionSslCertificatesClient::DeleteSslCertificate( google::cloud::cpp::compute::region_ssl_certificates::v1:: @@ -55,6 +70,26 @@ RegionSslCertificatesClient::DeleteSslCertificate( return connection_->DeleteSslCertificate(request); } +StatusOr +RegionSslCertificatesClient::DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSslCertificate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSslCertificatesClient::DeleteSslCertificate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSslCertificate(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionSslCertificatesClient::GetSslCertificate( std::string const& project, std::string const& region, @@ -92,6 +127,23 @@ RegionSslCertificatesClient::InsertSslCertificate( return connection_->InsertSslCertificate(request); } +StatusOr +RegionSslCertificatesClient::InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::SslCertificate const& + ssl_certificate_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_ssl_certificate_resource() = ssl_certificate_resource; + return connection_->InsertSslCertificate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionSslCertificatesClient::InsertSslCertificate( google::cloud::cpp::compute::region_ssl_certificates::v1:: @@ -101,6 +153,26 @@ RegionSslCertificatesClient::InsertSslCertificate( return connection_->InsertSslCertificate(request); } +StatusOr +RegionSslCertificatesClient::InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSslCertificate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSslCertificatesClient::InsertSslCertificate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSslCertificate(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionSslCertificatesClient::ListRegionSslCertificates( std::string const& project, std::string const& region, Options opts) { diff --git a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.h b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.h index b1f7b7406b839..c254ed94afa9e 100644 --- a/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.h +++ b/google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_SSL_CERTIFICATES_V1_REGION_SSL_CERTIFICATES_CLIENT_H #include "google/cloud/compute/region_ssl_certificates/v1/region_ssl_certificates_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,11 @@ class RegionSslCertificatesClient { DeleteSslCertificate(std::string const& project, std::string const& region, std::string const& ssl_certificate, Options opts = {}); + StatusOr DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& ssl_certificate, Options opts = {}); + // clang-format off /// /// Deletes the specified SslCertificate resource in the region. @@ -164,6 +171,18 @@ class RegionSslCertificatesClient { v1::DeleteSslCertificateRequest const& request, Options opts = {}); + StatusOr DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + DeleteSslCertificateRequest const& request, + Options opts = {}); + + future> + DeleteSslCertificate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified SslCertificate resource in the specified region. Get @@ -266,6 +285,13 @@ class RegionSslCertificatesClient { ssl_certificate_resource, Options opts = {}); + StatusOr InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::SslCertificate const& + ssl_certificate_resource, + Options opts = {}); + // clang-format off /// /// Creates a SslCertificate resource in the specified project and region using @@ -306,6 +332,18 @@ class RegionSslCertificatesClient { v1::InsertSslCertificateRequest const& request, Options opts = {}); + StatusOr InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_certificates::v1:: + InsertSslCertificateRequest const& request, + Options opts = {}); + + future> + InsertSslCertificate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of SslCertificate resources available to the specified 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..a3e9e5595c08e 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,33 @@ RegionSslPoliciesTracingConnection::DeleteSslPolicy( return internal::EndSpan(std::move(span), child_->DeleteSslPolicy(request)); } +StatusOr +RegionSslPoliciesTracingConnection::DeleteSslPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSslPoliciesTracingConnection::DeleteSslPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionSslPoliciesTracingConnection::GetSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -67,6 +94,33 @@ RegionSslPoliciesTracingConnection::InsertSslPolicy( return internal::EndSpan(std::move(span), child_->InsertSslPolicy(request)); } +StatusOr +RegionSslPoliciesTracingConnection::InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSslPoliciesTracingConnection::InsertSslPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionSslPoliciesTracingConnection::ListRegionSslPolicies( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -104,6 +158,33 @@ RegionSslPoliciesTracingConnection::PatchSslPolicy( return internal::EndSpan(std::move(span), child_->PatchSslPolicy(request)); } +StatusOr +RegionSslPoliciesTracingConnection::PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionSslPoliciesTracingConnection::PatchSslPolicy( + google::cloud::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(google::cloud::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..69fceff64c5bc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request) override; + + future> DeleteSslPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request) override; + + future> InsertSslPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request) override; + + future> PatchSslPolicy( + google::cloud::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..f200744361fb5 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSslPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSslPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSslPolicy, + (google::cloud::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_client.cc b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.cc index f1e0035059854..2ba8246b0ed8d 100644 --- a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.cc +++ b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.cc @@ -46,6 +46,23 @@ RegionSslPoliciesClient::DeleteSslPolicy(std::string const& project, return connection_->DeleteSslPolicy(request); } +StatusOr +RegionSslPoliciesClient::DeleteSslPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& ssl_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_ssl_policies::v1::DeleteSslPolicyRequest + request; + request.set_project(project); + request.set_region(region); + request.set_ssl_policy(ssl_policy); + return connection_->DeleteSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionSslPoliciesClient::DeleteSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -55,6 +72,26 @@ RegionSslPoliciesClient::DeleteSslPolicy( return connection_->DeleteSslPolicy(request); } +StatusOr +RegionSslPoliciesClient::DeleteSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSslPoliciesClient::DeleteSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSslPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionSslPoliciesClient::GetSslPolicy(std::string const& project, std::string const& region, @@ -92,6 +129,22 @@ RegionSslPoliciesClient::InsertSslPolicy( return connection_->InsertSslPolicy(request); } +StatusOr +RegionSslPoliciesClient::InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_ssl_policies::v1::InsertSslPolicyRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_ssl_policy_resource() = ssl_policy_resource; + return connection_->InsertSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionSslPoliciesClient::InsertSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -101,6 +154,26 @@ RegionSslPoliciesClient::InsertSslPolicy( return connection_->InsertSslPolicy(request); } +StatusOr +RegionSslPoliciesClient::InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSslPoliciesClient::InsertSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSslPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionSslPoliciesClient::ListRegionSslPolicies(std::string const& project, std::string const& region, @@ -161,6 +234,24 @@ RegionSslPoliciesClient::PatchSslPolicy( return connection_->PatchSslPolicy(request); } +StatusOr +RegionSslPoliciesClient::PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& ssl_policy, + google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_ssl_policies::v1::PatchSslPolicyRequest + request; + request.set_project(project); + request.set_region(region); + request.set_ssl_policy(ssl_policy); + *request.mutable_ssl_policy_resource() = ssl_policy_resource; + return connection_->PatchSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionSslPoliciesClient::PatchSslPolicy( google::cloud::cpp::compute::region_ssl_policies::v1:: @@ -170,6 +261,26 @@ RegionSslPoliciesClient::PatchSslPolicy( return connection_->PatchSslPolicy(request); } +StatusOr +RegionSslPoliciesClient::PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionSslPoliciesClient::PatchSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSslPolicy(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.h index c1e898847f58c..4fbf8000a9d82 100644 --- a/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.h +++ b/google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_SSL_POLICIES_V1_REGION_SSL_POLICIES_CLIENT_H #include "google/cloud/compute/region_ssl_policies/v1/region_ssl_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,11 @@ class RegionSslPoliciesClient { std::string const& project, std::string const& region, std::string const& ssl_policy, Options opts = {}); + StatusOr DeleteSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& ssl_policy, Options opts = {}); + // clang-format off /// /// Deletes the specified SSL policy. The SSL policy resource can be deleted @@ -166,6 +173,17 @@ class RegionSslPoliciesClient { DeleteSslPolicyRequest const& request, Options opts = {}); + StatusOr DeleteSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + DeleteSslPolicyRequest const& request, + Options opts = {}); + + future> DeleteSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all of the ordered rules present in a single specified policy. @@ -266,6 +284,12 @@ class RegionSslPoliciesClient { google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, Options opts = {}); + StatusOr InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, + Options opts = {}); + // clang-format off /// /// Creates a new policy in the specified project and region using the data @@ -306,6 +330,17 @@ class RegionSslPoliciesClient { InsertSslPolicyRequest const& request, Options opts = {}); + StatusOr InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + InsertSslPolicyRequest const& request, + Options opts = {}); + + future> InsertSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all the SSL policies that have been configured for the specified @@ -490,6 +525,13 @@ class RegionSslPoliciesClient { google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, Options opts = {}); + StatusOr PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& ssl_policy, + google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified SSL policy with the data included in the request. @@ -529,6 +571,17 @@ class RegionSslPoliciesClient { PatchSslPolicyRequest const& request, Options opts = {}); + StatusOr PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_ssl_policies::v1:: + PatchSslPolicyRequest const& request, + Options opts = {}); + + future> PatchSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..1ef419529de66 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,33 @@ RegionTargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( child_->DeleteTargetHttpProxy(request)); } +StatusOr +RegionTargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionTargetHttpProxiesTracingConnection::GetTargetHttpProxy( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -72,6 +99,33 @@ RegionTargetHttpProxiesTracingConnection::InsertTargetHttpProxy( child_->InsertTargetHttpProxy(request)); } +StatusOr +RegionTargetHttpProxiesTracingConnection::InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpProxiesTracingConnection::InsertTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionTargetHttpProxiesTracingConnection::ListRegionTargetHttpProxies( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -97,6 +151,33 @@ RegionTargetHttpProxiesTracingConnection::SetUrlMap( return internal::EndSpan(std::move(span), child_->SetUrlMap(request)); } +StatusOr +RegionTargetHttpProxiesTracingConnection::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpProxiesTracingConnection::SetUrlMap( + google::cloud::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(google::cloud::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..1c2688e0e27c6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) override; + + future> + DeleteTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) override; + + future> + InsertTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + google::cloud::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..544e65f0830fb 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetHttpProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetHttpProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUrlMap, + (google::cloud::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_client.cc b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.cc index d84475fba94c3..d7b0c844c5ba5 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.cc +++ b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.cc @@ -46,6 +46,21 @@ RegionTargetHttpProxiesClient::DeleteTargetHttpProxy( return connection_->DeleteTargetHttpProxy(request); } +StatusOr +RegionTargetHttpProxiesClient::DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_http_proxy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_http_proxy(target_http_proxy); + return connection_->DeleteTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetHttpProxiesClient::DeleteTargetHttpProxy( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -55,6 +70,26 @@ RegionTargetHttpProxiesClient::DeleteTargetHttpProxy( return connection_->DeleteTargetHttpProxy(request); } +StatusOr +RegionTargetHttpProxiesClient::DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetHttpProxiesClient::DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetHttpProxy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionTargetHttpProxiesClient::GetTargetHttpProxy( std::string const& project, std::string const& region, @@ -92,6 +127,23 @@ RegionTargetHttpProxiesClient::InsertTargetHttpProxy( return connection_->InsertTargetHttpProxy(request); } +StatusOr +RegionTargetHttpProxiesClient::InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetHttpProxy const& + target_http_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_target_http_proxy_resource() = target_http_proxy_resource; + return connection_->InsertTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetHttpProxiesClient::InsertTargetHttpProxy( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -101,6 +153,26 @@ RegionTargetHttpProxiesClient::InsertTargetHttpProxy( return connection_->InsertTargetHttpProxy(request); } +StatusOr +RegionTargetHttpProxiesClient::InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetHttpProxiesClient::InsertTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetHttpProxy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionTargetHttpProxiesClient::ListRegionTargetHttpProxies( std::string const& project, std::string const& region, Options opts) { @@ -138,6 +210,25 @@ RegionTargetHttpProxiesClient::SetUrlMap( return connection_->SetUrlMap(request); } +StatusOr +RegionTargetHttpProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_http_proxy, + google::cloud::cpp::compute::v1::UrlMapReference const& + url_map_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_http_proxies::v1::SetUrlMapRequest + request; + request.set_project(project); + request.set_region(region); + request.set_target_http_proxy(target_http_proxy); + *request.mutable_url_map_reference_resource() = url_map_reference_resource; + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetHttpProxiesClient::SetUrlMap( google::cloud::cpp::compute::region_target_http_proxies::v1:: @@ -147,6 +238,25 @@ RegionTargetHttpProxiesClient::SetUrlMap( return connection_->SetUrlMap(request); } +StatusOr +RegionTargetHttpProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetHttpProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.h index 8766de1cc1484..4326eda127957 100644 --- a/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.h +++ b/google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_TARGET_HTTP_PROXIES_V1_REGION_TARGET_HTTP_PROXIES_CLIENT_H #include "google/cloud/compute/region_target_http_proxies/v1/region_target_http_proxies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,11 @@ class RegionTargetHttpProxiesClient { std::string const& target_http_proxy, Options opts = {}); + StatusOr DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_http_proxy, Options opts = {}); + // clang-format off /// /// Deletes the specified TargetHttpProxy resource. @@ -166,6 +173,18 @@ class RegionTargetHttpProxiesClient { DeleteTargetHttpProxyRequest const& request, Options opts = {}); + StatusOr DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request, + Options opts = {}); + + future> + DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetHttpProxy resource in the specified region. @@ -266,6 +285,13 @@ class RegionTargetHttpProxiesClient { target_http_proxy_resource, Options opts = {}); + StatusOr InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetHttpProxy const& + target_http_proxy_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetHttpProxy resource in the specified project and region @@ -307,6 +333,18 @@ class RegionTargetHttpProxiesClient { InsertTargetHttpProxyRequest const& request, Options opts = {}); + StatusOr InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request, + Options opts = {}); + + future> + InsertTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of TargetHttpProxy resources available to the specified @@ -428,6 +466,14 @@ class RegionTargetHttpProxiesClient { url_map_reference_resource, Options opts = {}); + StatusOr SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_http_proxy, + google::cloud::cpp::compute::v1::UrlMapReference const& + url_map_reference_resource, + Options opts = {}); + // clang-format off /// /// Changes the URL map for TargetHttpProxy. @@ -467,6 +513,17 @@ class RegionTargetHttpProxiesClient { SetUrlMapRequest const& request, Options opts = {}); + StatusOr SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_http_proxies::v1:: + SetUrlMapRequest const& request, + Options opts = {}); + + future> SetUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..27ef57cdd32f1 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,33 @@ RegionTargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( child_->DeleteTargetHttpsProxy(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionTargetHttpsProxiesTracingConnection::GetTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -72,6 +99,33 @@ RegionTargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( child_->InsertTargetHttpsProxy(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionTargetHttpsProxiesTracingConnection::ListRegionTargetHttpsProxies( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -98,6 +152,33 @@ RegionTargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( child_->PatchTargetHttpsProxy(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> RegionTargetHttpsProxiesTracingConnection::SetSslCertificates( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -110,6 +191,33 @@ RegionTargetHttpsProxiesTracingConnection::SetSslCertificates( child_->SetSslCertificates(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::SetSslCertificates( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionTargetHttpsProxiesTracingConnection::SetUrlMap( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -121,6 +229,33 @@ RegionTargetHttpsProxiesTracingConnection::SetUrlMap( return internal::EndSpan(std::move(span), child_->SetUrlMap(request)); } +StatusOr +RegionTargetHttpsProxiesTracingConnection::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetHttpsProxiesTracingConnection::SetUrlMap( + google::cloud::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(google::cloud::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..526492fce4360 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) override; + + future> + DeleteTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) override; + + future> + InsertTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) override; + + future> + PatchTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + google::cloud::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..7f46415f77f56 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetHttpsProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetHttpsProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchTargetHttpsProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslCertificates, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUrlMap, + (google::cloud::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_client.cc b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.cc index ec71932d5364d..e41e4ee23f8a0 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.cc +++ b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.cc @@ -47,6 +47,21 @@ RegionTargetHttpsProxiesClient::DeleteTargetHttpsProxy( return connection_->DeleteTargetHttpsProxy(request); } +StatusOr +RegionTargetHttpsProxiesClient::DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_https_proxy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_https_proxy(target_https_proxy); + return connection_->DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetHttpsProxiesClient::DeleteTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -56,6 +71,26 @@ RegionTargetHttpsProxiesClient::DeleteTargetHttpsProxy( return connection_->DeleteTargetHttpsProxy(request); } +StatusOr +RegionTargetHttpsProxiesClient::DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetHttpsProxiesClient::DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetHttpsProxy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionTargetHttpsProxiesClient::GetTargetHttpsProxy( std::string const& project, std::string const& region, @@ -93,6 +128,23 @@ RegionTargetHttpsProxiesClient::InsertTargetHttpsProxy( return connection_->InsertTargetHttpsProxy(request); } +StatusOr +RegionTargetHttpsProxiesClient::InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetHttpsProxy const& + target_https_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_target_https_proxy_resource() = target_https_proxy_resource; + return connection_->InsertTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetHttpsProxiesClient::InsertTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -102,6 +154,26 @@ RegionTargetHttpsProxiesClient::InsertTargetHttpsProxy( return connection_->InsertTargetHttpsProxy(request); } +StatusOr +RegionTargetHttpsProxiesClient::InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetHttpsProxiesClient::InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetHttpsProxy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionTargetHttpsProxiesClient::ListRegionTargetHttpsProxies( std::string const& project, std::string const& region, Options opts) { @@ -139,6 +211,25 @@ RegionTargetHttpsProxiesClient::PatchTargetHttpsProxy( return connection_->PatchTargetHttpsProxy(request); } +StatusOr +RegionTargetHttpsProxiesClient::PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::TargetHttpsProxy const& + target_https_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_https_proxy(target_https_proxy); + *request.mutable_target_https_proxy_resource() = target_https_proxy_resource; + return connection_->PatchTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetHttpsProxiesClient::PatchTargetHttpsProxy( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -148,6 +239,26 @@ RegionTargetHttpsProxiesClient::PatchTargetHttpsProxy( return connection_->PatchTargetHttpsProxy(request); } +StatusOr +RegionTargetHttpsProxiesClient::PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetHttpsProxiesClient::PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchTargetHttpsProxy(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionTargetHttpsProxiesClient::SetSslCertificates( std::string const& project, std::string const& region, @@ -168,6 +279,28 @@ RegionTargetHttpsProxiesClient::SetSslCertificates( return connection_->SetSslCertificates(request); } +StatusOr +RegionTargetHttpsProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_https_proxy, + google::cloud::cpp::compute::v1:: + RegionTargetHttpsProxiesSetSslCertificatesRequest const& + region_target_https_proxies_set_ssl_certificates_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_https_proxy(target_https_proxy); + *request + .mutable_region_target_https_proxies_set_ssl_certificates_request_resource() = + region_target_https_proxies_set_ssl_certificates_request_resource; + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetHttpsProxiesClient::SetSslCertificates( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -177,6 +310,26 @@ RegionTargetHttpsProxiesClient::SetSslCertificates( return connection_->SetSslCertificates(request); } +StatusOr +RegionTargetHttpsProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetHttpsProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + operation); +} + future> RegionTargetHttpsProxiesClient::SetUrlMap( std::string const& project, std::string const& region, @@ -194,6 +347,25 @@ RegionTargetHttpsProxiesClient::SetUrlMap( return connection_->SetUrlMap(request); } +StatusOr +RegionTargetHttpsProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::UrlMapReference const& + url_map_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_https_proxies::v1::SetUrlMapRequest + request; + request.set_project(project); + request.set_region(region); + request.set_target_https_proxy(target_https_proxy); + *request.mutable_url_map_reference_resource() = url_map_reference_resource; + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetHttpsProxiesClient::SetUrlMap( google::cloud::cpp::compute::region_target_https_proxies::v1:: @@ -203,6 +375,25 @@ RegionTargetHttpsProxiesClient::SetUrlMap( return connection_->SetUrlMap(request); } +StatusOr +RegionTargetHttpsProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetHttpsProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.h index 9fc11727dd97e..37fc328d8c52b 100644 --- a/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.h +++ b/google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_TARGET_HTTPS_PROXIES_V1_REGION_TARGET_HTTPS_PROXIES_CLIENT_H #include "google/cloud/compute/region_target_https_proxies/v1/region_target_https_proxies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -127,6 +129,11 @@ class RegionTargetHttpsProxiesClient { std::string const& target_https_proxy, Options opts = {}); + StatusOr DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_https_proxy, Options opts = {}); + // clang-format off /// /// Deletes the specified TargetHttpsProxy resource. @@ -167,6 +174,18 @@ class RegionTargetHttpsProxiesClient { DeleteTargetHttpsProxyRequest const& request, Options opts = {}); + StatusOr DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request, + Options opts = {}); + + future> + DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetHttpsProxy resource in the specified region. @@ -268,6 +287,13 @@ class RegionTargetHttpsProxiesClient { target_https_proxy_resource, Options opts = {}); + StatusOr InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetHttpsProxy const& + target_https_proxy_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetHttpsProxy resource in the specified project and region @@ -309,6 +335,18 @@ class RegionTargetHttpsProxiesClient { InsertTargetHttpsProxyRequest const& request, Options opts = {}); + StatusOr InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request, + Options opts = {}); + + future> + InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of TargetHttpsProxy resources available to the specified @@ -432,6 +470,14 @@ class RegionTargetHttpsProxiesClient { target_https_proxy_resource, Options opts = {}); + StatusOr PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::TargetHttpsProxy const& + target_https_proxy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified regional TargetHttpsProxy resource with the data @@ -474,6 +520,18 @@ class RegionTargetHttpsProxiesClient { PatchTargetHttpsProxyRequest const& request, Options opts = {}); + StatusOr PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request, + Options opts = {}); + + future> + PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Replaces SslCertificates for TargetHttpsProxy. @@ -516,6 +574,15 @@ class RegionTargetHttpsProxiesClient { region_target_https_proxies_set_ssl_certificates_request_resource, Options opts = {}); + StatusOr SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_https_proxy, + google::cloud::cpp::compute::v1:: + RegionTargetHttpsProxiesSetSslCertificatesRequest const& + region_target_https_proxies_set_ssl_certificates_request_resource, + Options opts = {}); + // clang-format off /// /// Replaces SslCertificates for TargetHttpsProxy. @@ -555,6 +622,18 @@ class RegionTargetHttpsProxiesClient { v1::SetSslCertificatesRequest const& request, Options opts = {}); + StatusOr SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetSslCertificatesRequest const& request, + Options opts = {}); + + future> + SetSslCertificates( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the URL map for TargetHttpsProxy. @@ -594,6 +673,14 @@ class RegionTargetHttpsProxiesClient { url_map_reference_resource, Options opts = {}); + StatusOr SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::UrlMapReference const& + url_map_reference_resource, + Options opts = {}); + // clang-format off /// /// Changes the URL map for TargetHttpsProxy. @@ -633,6 +720,17 @@ class RegionTargetHttpsProxiesClient { SetUrlMapRequest const& request, Options opts = {}); + StatusOr SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_https_proxies::v1:: + SetUrlMapRequest const& request, + Options opts = {}); + + future> SetUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..90bc579101ceb 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,33 @@ RegionTargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( child_->DeleteTargetTcpProxy(request)); } +StatusOr +RegionTargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionTargetTcpProxiesTracingConnection::GetTargetTcpProxy( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: @@ -72,6 +99,33 @@ RegionTargetTcpProxiesTracingConnection::InsertTargetTcpProxy( child_->InsertTargetTcpProxy(request)); } +StatusOr +RegionTargetTcpProxiesTracingConnection::InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionTargetTcpProxiesTracingConnection::InsertTargetTcpProxy( + google::cloud::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( + google::cloud::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..63dae1cf1347e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) override; + + future> + DeleteTargetTcpProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) override; + + future> + InsertTargetTcpProxy( + google::cloud::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..23895271ade00 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetTcpProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetTcpProxy, + (google::cloud::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_client.cc b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.cc index fd8d22336699c..a6f1b43bd04f8 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.cc +++ b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.cc @@ -46,6 +46,21 @@ RegionTargetTcpProxiesClient::DeleteTargetTcpProxy( return connection_->DeleteTargetTcpProxy(request); } +StatusOr +RegionTargetTcpProxiesClient::DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_tcp_proxy, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_tcp_proxy(target_tcp_proxy); + return connection_->DeleteTargetTcpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetTcpProxiesClient::DeleteTargetTcpProxy( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: @@ -55,6 +70,26 @@ RegionTargetTcpProxiesClient::DeleteTargetTcpProxy( return connection_->DeleteTargetTcpProxy(request); } +StatusOr +RegionTargetTcpProxiesClient::DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetTcpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetTcpProxiesClient::DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetTcpProxy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RegionTargetTcpProxiesClient::GetTargetTcpProxy( std::string const& project, std::string const& region, @@ -92,6 +127,23 @@ RegionTargetTcpProxiesClient::InsertTargetTcpProxy( return connection_->InsertTargetTcpProxy(request); } +StatusOr +RegionTargetTcpProxiesClient::InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetTcpProxy const& + target_tcp_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_target_tcp_proxy_resource() = target_tcp_proxy_resource; + return connection_->InsertTargetTcpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> RegionTargetTcpProxiesClient::InsertTargetTcpProxy( google::cloud::cpp::compute::region_target_tcp_proxies::v1:: @@ -101,6 +153,26 @@ RegionTargetTcpProxiesClient::InsertTargetTcpProxy( return connection_->InsertTargetTcpProxy(request); } +StatusOr +RegionTargetTcpProxiesClient::InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetTcpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +RegionTargetTcpProxiesClient::InsertTargetTcpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetTcpProxy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange RegionTargetTcpProxiesClient::ListRegionTargetTcpProxies( std::string const& project, std::string const& region, Options opts) { diff --git a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.h b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.h index 1780c3f4cc3c7..aec9538786ddb 100644 --- a/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.h +++ b/google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_TARGET_TCP_PROXIES_V1_REGION_TARGET_TCP_PROXIES_CLIENT_H #include "google/cloud/compute/region_target_tcp_proxies/v1/region_target_tcp_proxies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,11 @@ class RegionTargetTcpProxiesClient { DeleteTargetTcpProxy(std::string const& project, std::string const& region, std::string const& target_tcp_proxy, Options opts = {}); + StatusOr DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_tcp_proxy, Options opts = {}); + // clang-format off /// /// Deletes the specified TargetTcpProxy resource. @@ -164,6 +171,18 @@ class RegionTargetTcpProxiesClient { v1::DeleteTargetTcpProxyRequest const& request, Options opts = {}); + StatusOr DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request, + Options opts = {}); + + future> + DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetTcpProxy resource. @@ -264,6 +283,13 @@ class RegionTargetTcpProxiesClient { target_tcp_proxy_resource, Options opts = {}); + StatusOr InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetTcpProxy const& + target_tcp_proxy_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetTcpProxy resource in the specified project and region using @@ -304,6 +330,18 @@ class RegionTargetTcpProxiesClient { v1::InsertTargetTcpProxyRequest const& request, Options opts = {}); + StatusOr InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request, + Options opts = {}); + + future> + InsertTargetTcpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of TargetTcpProxy resources available to the specified 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..9144e1b58dcc7 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,31 @@ RegionUrlMapsTracingConnection::DeleteUrlMap( return internal::EndSpan(std::move(span), child_->DeleteUrlMap(request)); } +StatusOr +RegionUrlMapsTracingConnection::DeleteUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionUrlMapsTracingConnection::DeleteUrlMap( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RegionUrlMapsTracingConnection::GetUrlMap( google::cloud::cpp::compute::region_url_maps::v1::GetUrlMapRequest const& @@ -63,6 +88,31 @@ RegionUrlMapsTracingConnection::InsertUrlMap( return internal::EndSpan(std::move(span), child_->InsertUrlMap(request)); } +StatusOr +RegionUrlMapsTracingConnection::InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionUrlMapsTracingConnection::InsertUrlMap( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RegionUrlMapsTracingConnection::ListRegionUrlMaps( google::cloud::cpp::compute::region_url_maps::v1::ListRegionUrlMapsRequest @@ -85,6 +135,31 @@ RegionUrlMapsTracingConnection::PatchUrlMap( return internal::EndSpan(std::move(span), child_->PatchUrlMap(request)); } +StatusOr +RegionUrlMapsTracingConnection::PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionUrlMapsTracingConnection::PatchUrlMap( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RegionUrlMapsTracingConnection::UpdateUrlMap( google::cloud::cpp::compute::region_url_maps::v1::UpdateUrlMapRequest const& @@ -95,6 +170,31 @@ RegionUrlMapsTracingConnection::UpdateUrlMap( return internal::EndSpan(std::move(span), child_->UpdateUrlMap(request)); } +StatusOr +RegionUrlMapsTracingConnection::UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RegionUrlMapsTracingConnection::UpdateUrlMap( + google::cloud::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(google::cloud::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..ee891b7cb8f0f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const& request) override; + + future> DeleteUrlMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const& request) override; + + future> InsertUrlMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const& request) override; + + future> PatchUrlMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const& request) override; + + future> UpdateUrlMap( + google::cloud::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..336936e28e527 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteUrlMap, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertUrlMap, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchUrlMap, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateUrlMap, + (google::cloud::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_client.cc b/google/cloud/compute/region_url_maps/v1/region_url_maps_client.cc index d552a19d79b5d..dc571b459ea95 100644 --- a/google/cloud/compute/region_url_maps/v1/region_url_maps_client.cc +++ b/google/cloud/compute/region_url_maps/v1/region_url_maps_client.cc @@ -44,6 +44,21 @@ RegionUrlMapsClient::DeleteUrlMap(std::string const& project, return connection_->DeleteUrlMap(request); } +StatusOr +RegionUrlMapsClient::DeleteUrlMap(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& url_map, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_url_maps::v1::DeleteUrlMapRequest request; + request.set_project(project); + request.set_region(region); + request.set_url_map(url_map); + return connection_->DeleteUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionUrlMapsClient::DeleteUrlMap( google::cloud::cpp::compute::region_url_maps::v1::DeleteUrlMapRequest const& @@ -53,6 +68,25 @@ RegionUrlMapsClient::DeleteUrlMap( return connection_->DeleteUrlMap(request); } +StatusOr +RegionUrlMapsClient::DeleteUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::DeleteUrlMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionUrlMapsClient::DeleteUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUrlMap(google::cloud::ExperimentalTag{}, operation); +} + StatusOr RegionUrlMapsClient::GetUrlMap(std::string const& project, std::string const& region, @@ -87,6 +121,21 @@ RegionUrlMapsClient::InsertUrlMap( return connection_->InsertUrlMap(request); } +StatusOr +RegionUrlMapsClient::InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_url_maps::v1::InsertUrlMapRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_url_map_resource() = url_map_resource; + return connection_->InsertUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionUrlMapsClient::InsertUrlMap( google::cloud::cpp::compute::region_url_maps::v1::InsertUrlMapRequest const& @@ -96,6 +145,25 @@ RegionUrlMapsClient::InsertUrlMap( return connection_->InsertUrlMap(request); } +StatusOr +RegionUrlMapsClient::InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::InsertUrlMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionUrlMapsClient::InsertUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertUrlMap(google::cloud::ExperimentalTag{}, operation); +} + StreamRange RegionUrlMapsClient::ListRegionUrlMaps(std::string const& project, std::string const& region, @@ -132,6 +200,23 @@ RegionUrlMapsClient::PatchUrlMap( return connection_->PatchUrlMap(request); } +StatusOr +RegionUrlMapsClient::PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& url_map, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_url_maps::v1::PatchUrlMapRequest request; + request.set_project(project); + request.set_region(region); + request.set_url_map(url_map); + *request.mutable_url_map_resource() = url_map_resource; + return connection_->PatchUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionUrlMapsClient::PatchUrlMap( google::cloud::cpp::compute::region_url_maps::v1::PatchUrlMapRequest const& @@ -141,6 +226,25 @@ RegionUrlMapsClient::PatchUrlMap( return connection_->PatchUrlMap(request); } +StatusOr +RegionUrlMapsClient::PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::PatchUrlMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionUrlMapsClient::PatchUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchUrlMap(google::cloud::ExperimentalTag{}, operation); +} + future> RegionUrlMapsClient::UpdateUrlMap( std::string const& project, std::string const& region, @@ -156,6 +260,23 @@ RegionUrlMapsClient::UpdateUrlMap( return connection_->UpdateUrlMap(request); } +StatusOr +RegionUrlMapsClient::UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& url_map, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::region_url_maps::v1::UpdateUrlMapRequest request; + request.set_project(project); + request.set_region(region); + request.set_url_map(url_map); + *request.mutable_url_map_resource() = url_map_resource; + return connection_->UpdateUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RegionUrlMapsClient::UpdateUrlMap( google::cloud::cpp::compute::region_url_maps::v1::UpdateUrlMapRequest const& @@ -165,6 +286,25 @@ RegionUrlMapsClient::UpdateUrlMap( return connection_->UpdateUrlMap(request); } +StatusOr +RegionUrlMapsClient::UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1::UpdateUrlMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RegionUrlMapsClient::UpdateUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateUrlMap(google::cloud::ExperimentalTag{}, operation); +} + StatusOr RegionUrlMapsClient::Validate( std::string const& project, std::string const& region, diff --git a/google/cloud/compute/region_url_maps/v1/region_url_maps_client.h b/google/cloud/compute/region_url_maps/v1/region_url_maps_client.h index 10be37d087887..dd6713d903ea8 100644 --- a/google/cloud/compute/region_url_maps/v1/region_url_maps_client.h +++ b/google/cloud/compute/region_url_maps/v1/region_url_maps_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_URL_MAPS_V1_REGION_URL_MAPS_CLIENT_H #include "google/cloud/compute/region_url_maps/v1/region_url_maps_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -121,6 +123,11 @@ class RegionUrlMapsClient { std::string const& project, std::string const& region, std::string const& url_map, Options opts = {}); + StatusOr DeleteUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& url_map, Options opts = {}); + // clang-format off /// /// Deletes the specified UrlMap resource. @@ -160,6 +167,17 @@ class RegionUrlMapsClient { DeleteUrlMapRequest const& request, Options opts = {}); + StatusOr DeleteUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + DeleteUrlMapRequest const& request, + Options opts = {}); + + future> DeleteUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified UrlMap resource. @@ -259,6 +277,12 @@ class RegionUrlMapsClient { google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, Options opts = {}); + StatusOr InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts = {}); + // clang-format off /// /// Creates a UrlMap resource in the specified project using the data included @@ -299,6 +323,17 @@ class RegionUrlMapsClient { InsertUrlMapRequest const& request, Options opts = {}); + StatusOr InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + InsertUrlMapRequest const& request, + Options opts = {}); + + future> InsertUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of UrlMap resources available to the specified project @@ -419,6 +454,13 @@ class RegionUrlMapsClient { google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, Options opts = {}); + StatusOr PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& url_map, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified UrlMap resource with the data included in the @@ -460,6 +502,17 @@ class RegionUrlMapsClient { PatchUrlMapRequest const& request, Options opts = {}); + StatusOr PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + PatchUrlMapRequest const& request, + Options opts = {}); + + future> PatchUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified UrlMap resource with the data included in the @@ -499,6 +552,13 @@ class RegionUrlMapsClient { google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, Options opts = {}); + StatusOr UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& url_map, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified UrlMap resource with the data included in the @@ -539,6 +599,17 @@ class RegionUrlMapsClient { UpdateUrlMapRequest const& request, Options opts = {}); + StatusOr UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::region_url_maps::v1:: + UpdateUrlMapRequest const& request, + Options opts = {}); + + future> UpdateUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Runs static validation for the UrlMap. In particular, the tests of the 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_client.h b/google/cloud/compute/region_zones/v1/region_zones_client.h index bacc6557b8947..d84c71e6eafe4 100644 --- a/google/cloud/compute/region_zones/v1/region_zones_client.h +++ b/google/cloud/compute/region_zones/v1/region_zones_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGION_ZONES_V1_REGION_ZONES_CLIENT_H #include "google/cloud/compute/region_zones/v1/region_zones_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/compute/regions/v1/regions_client.h index ae3b69a01135d..d87218511fe3d 100644 --- a/google/cloud/compute/regions/v1/regions_client.h +++ b/google/cloud/compute/regions/v1/regions_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_REGIONS_V1_REGIONS_CLIENT_H #include "google/cloud/compute/regions/v1/regions_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..f684a2fd16787 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,31 @@ ReservationsTracingConnection::DeleteReservation( return internal::EndSpan(std::move(span), child_->DeleteReservation(request)); } +StatusOr +ReservationsTracingConnection::DeleteReservation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ReservationsTracingConnection::DeleteReservation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ReservationsTracingConnection::GetReservation( google::cloud::cpp::compute::reservations::v1::GetReservationRequest const& @@ -88,6 +113,31 @@ ReservationsTracingConnection::InsertReservation( return internal::EndSpan(std::move(span), child_->InsertReservation(request)); } +StatusOr +ReservationsTracingConnection::InsertReservation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ReservationsTracingConnection::InsertReservation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ReservationsTracingConnection::ListReservations( google::cloud::cpp::compute::reservations::v1::ListReservationsRequest @@ -111,6 +161,31 @@ ReservationsTracingConnection::Resize( return internal::EndSpan(std::move(span), child_->Resize(request)); } +StatusOr +ReservationsTracingConnection::Resize( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ReservationsTracingConnection::Resize( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ReservationsTracingConnection::SetIamPolicy( google::cloud::cpp::compute::reservations::v1::SetIamPolicyRequest const& @@ -141,6 +216,31 @@ ReservationsTracingConnection::UpdateReservation( return internal::EndSpan(std::move(span), child_->UpdateReservation(request)); } +StatusOr +ReservationsTracingConnection::UpdateReservation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ReservationsTracingConnection::UpdateReservation( + google::cloud::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(google::cloud::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..c6a4380e7f2cd 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request) override; + + future> + DeleteReservation( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request) override; + + future> + InsertReservation( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request) override; + + future> Resize( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request) override; + + future> + UpdateReservation( + google::cloud::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..601f96ce7f01b 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteReservation, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertReservation, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + Resize, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateReservation, + (google::cloud::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_client.cc b/google/cloud/compute/reservations/v1/reservations_client.cc index d7ff4582bbdb6..f72a5d7254c11 100644 --- a/google/cloud/compute/reservations/v1/reservations_client.cc +++ b/google/cloud/compute/reservations/v1/reservations_client.cc @@ -67,6 +67,23 @@ ReservationsClient::DeleteReservation(std::string const& project, return connection_->DeleteReservation(request); } +StatusOr +ReservationsClient::DeleteReservation(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& reservation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::reservations::v1::DeleteReservationRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_reservation(reservation); + return connection_->DeleteReservation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ReservationsClient::DeleteReservation( google::cloud::cpp::compute::reservations::v1:: @@ -76,6 +93,26 @@ ReservationsClient::DeleteReservation( return connection_->DeleteReservation(request); } +StatusOr +ReservationsClient::DeleteReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteReservation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ReservationsClient::DeleteReservation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteReservation(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ReservationsClient::GetReservation(std::string const& project, std::string const& zone, @@ -133,6 +170,22 @@ ReservationsClient::InsertReservation( return connection_->InsertReservation(request); } +StatusOr +ReservationsClient::InsertReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Reservation const& reservation_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::reservations::v1::InsertReservationRequest + request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_reservation_resource() = reservation_resource; + return connection_->InsertReservation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ReservationsClient::InsertReservation( google::cloud::cpp::compute::reservations::v1:: @@ -142,6 +195,26 @@ ReservationsClient::InsertReservation( return connection_->InsertReservation(request); } +StatusOr +ReservationsClient::InsertReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertReservation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ReservationsClient::InsertReservation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertReservation(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ReservationsClient::ListReservations(std::string const& project, std::string const& zone, Options opts) { @@ -179,6 +252,24 @@ ReservationsClient::Resize( return connection_->Resize(request); } +StatusOr ReservationsClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& reservation, + google::cloud::cpp::compute::v1::ReservationsResizeRequest const& + reservations_resize_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::reservations::v1::ResizeRequest request; + request.set_project(project); + request.set_zone(zone); + request.set_reservation(reservation); + *request.mutable_reservations_resize_request_resource() = + reservations_resize_request_resource; + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ReservationsClient::Resize( google::cloud::cpp::compute::reservations::v1::ResizeRequest const& request, @@ -187,6 +278,23 @@ ReservationsClient::Resize( return connection_->Resize(request); } +StatusOr ReservationsClient::Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ReservationsClient::Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->Resize(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ReservationsClient::SetIamPolicy( std::string const& project, std::string const& zone, @@ -257,6 +365,25 @@ ReservationsClient::UpdateReservation( return connection_->UpdateReservation(request); } +StatusOr +ReservationsClient::UpdateReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& reservation, std::string const& update_mask, + google::cloud::cpp::compute::v1::Reservation const& reservation_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::reservations::v1::UpdateReservationRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_reservation(reservation); + request.set_update_mask(update_mask); + *request.mutable_reservation_resource() = reservation_resource; + return connection_->UpdateReservation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ReservationsClient::UpdateReservation( google::cloud::cpp::compute::reservations::v1:: @@ -266,6 +393,26 @@ ReservationsClient::UpdateReservation( return connection_->UpdateReservation(request); } +StatusOr +ReservationsClient::UpdateReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateReservation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ReservationsClient::UpdateReservation( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateReservation(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_reservations_v1 } // namespace cloud diff --git a/google/cloud/compute/reservations/v1/reservations_client.h b/google/cloud/compute/reservations/v1/reservations_client.h index b78dd9953f7c2..c257c9c09bb86 100644 --- a/google/cloud/compute/reservations/v1/reservations_client.h +++ b/google/cloud/compute/reservations/v1/reservations_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESERVATIONS_V1_RESERVATIONS_CLIENT_H #include "google/cloud/compute/reservations/v1/reservations_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class ReservationsClient { DeleteReservation(std::string const& project, std::string const& zone, std::string const& reservation, Options opts = {}); + StatusOr DeleteReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& reservation, Options opts = {}); + // clang-format off /// /// Deletes the specified reservation. @@ -242,6 +249,17 @@ class ReservationsClient { DeleteReservationRequest const& request, Options opts = {}); + StatusOr DeleteReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + DeleteReservationRequest const& request, + Options opts = {}); + + future> + DeleteReservation(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves information about the specified reservation. @@ -406,6 +424,12 @@ class ReservationsClient { google::cloud::cpp::compute::v1::Reservation const& reservation_resource, Options opts = {}); + StatusOr InsertReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::Reservation const& reservation_resource, + Options opts = {}); + // clang-format off /// /// Creates a new reservation. For more information, read Reserving zonal @@ -446,6 +470,17 @@ class ReservationsClient { InsertReservationRequest const& request, Options opts = {}); + StatusOr InsertReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + InsertReservationRequest const& request, + Options opts = {}); + + future> + InsertReservation(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// A list of all the reservations that have been configured for the specified @@ -566,6 +601,14 @@ class ReservationsClient { reservations_resize_request_resource, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& reservation, + google::cloud::cpp::compute::v1::ReservationsResizeRequest const& + reservations_resize_request_resource, + Options opts = {}); + // clang-format off /// /// Resizes the reservation (applicable to standalone reservations only). For @@ -606,6 +649,17 @@ class ReservationsClient { request, Options opts = {}); + StatusOr Resize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1::ResizeRequest const& + request, + Options opts = {}); + + future> Resize( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -781,6 +835,13 @@ class ReservationsClient { google::cloud::cpp::compute::v1::Reservation const& reservation_resource, Options opts = {}); + StatusOr UpdateReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& reservation, std::string const& update_mask, + google::cloud::cpp::compute::v1::Reservation const& reservation_resource, + Options opts = {}); + // clang-format off /// /// Update share settings of the reservation. @@ -820,6 +881,17 @@ class ReservationsClient { UpdateReservationRequest const& request, Options opts = {}); + StatusOr UpdateReservation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::reservations::v1:: + UpdateReservationRequest const& request, + Options opts = {}); + + future> + UpdateReservation(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..d32ac847e6113 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,33 @@ ResourcePoliciesTracingConnection::DeleteResourcePolicy( child_->DeleteResourcePolicy(request)); } +StatusOr +ResourcePoliciesTracingConnection::DeleteResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ResourcePoliciesTracingConnection::DeleteResourcePolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ResourcePoliciesTracingConnection::GetResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: @@ -95,6 +122,33 @@ ResourcePoliciesTracingConnection::InsertResourcePolicy( child_->InsertResourcePolicy(request)); } +StatusOr +ResourcePoliciesTracingConnection::InsertResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ResourcePoliciesTracingConnection::InsertResourcePolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ResourcePoliciesTracingConnection::ListResourcePolicies( google::cloud::cpp::compute::resource_policies::v1:: @@ -121,6 +175,33 @@ ResourcePoliciesTracingConnection::PatchResourcePolicy( child_->PatchResourcePolicy(request)); } +StatusOr +ResourcePoliciesTracingConnection::PatchResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ResourcePoliciesTracingConnection::PatchResourcePolicy( + google::cloud::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(google::cloud::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..db40670fbe5c2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request) override; + + future> + DeleteResourcePolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request) override; + + future> + InsertResourcePolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request) override; + + future> + PatchResourcePolicy( + google::cloud::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..7699035f97a00 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteResourcePolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertResourcePolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchResourcePolicy, + (google::cloud::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_client.cc b/google/cloud/compute/resource_policies/v1/resource_policies_client.cc index 97004d78899fb..a340cee58cea4 100644 --- a/google/cloud/compute/resource_policies/v1/resource_policies_client.cc +++ b/google/cloud/compute/resource_policies/v1/resource_policies_client.cc @@ -67,6 +67,23 @@ ResourcePoliciesClient::DeleteResourcePolicy(std::string const& project, return connection_->DeleteResourcePolicy(request); } +StatusOr +ResourcePoliciesClient::DeleteResourcePolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& resource_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest request; + request.set_project(project); + request.set_region(region); + request.set_resource_policy(resource_policy); + return connection_->DeleteResourcePolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ResourcePoliciesClient::DeleteResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: @@ -76,6 +93,26 @@ ResourcePoliciesClient::DeleteResourcePolicy( return connection_->DeleteResourcePolicy(request); } +StatusOr +ResourcePoliciesClient::DeleteResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteResourcePolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ResourcePoliciesClient::DeleteResourcePolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteResourcePolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ResourcePoliciesClient::GetResourcePolicy(std::string const& project, std::string const& region, @@ -137,6 +174,23 @@ ResourcePoliciesClient::InsertResourcePolicy( return connection_->InsertResourcePolicy(request); } +StatusOr +ResourcePoliciesClient::InsertResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::ResourcePolicy const& + resource_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_resource_policy_resource() = resource_policy_resource; + return connection_->InsertResourcePolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ResourcePoliciesClient::InsertResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: @@ -146,6 +200,26 @@ ResourcePoliciesClient::InsertResourcePolicy( return connection_->InsertResourcePolicy(request); } +StatusOr +ResourcePoliciesClient::InsertResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertResourcePolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ResourcePoliciesClient::InsertResourcePolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertResourcePolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ResourcePoliciesClient::ListResourcePolicies(std::string const& project, std::string const& region, @@ -185,6 +259,26 @@ ResourcePoliciesClient::PatchResourcePolicy( return connection_->PatchResourcePolicy(request); } +StatusOr +ResourcePoliciesClient::PatchResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource_policy, std::string const& update_mask, + google::cloud::cpp::compute::v1::ResourcePolicy const& + resource_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::resource_policies::v1::PatchResourcePolicyRequest + request; + request.set_project(project); + request.set_region(region); + request.set_resource_policy(resource_policy); + request.set_update_mask(update_mask); + *request.mutable_resource_policy_resource() = resource_policy_resource; + return connection_->PatchResourcePolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ResourcePoliciesClient::PatchResourcePolicy( google::cloud::cpp::compute::resource_policies::v1:: @@ -194,6 +288,26 @@ ResourcePoliciesClient::PatchResourcePolicy( return connection_->PatchResourcePolicy(request); } +StatusOr +ResourcePoliciesClient::PatchResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchResourcePolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ResourcePoliciesClient::PatchResourcePolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchResourcePolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ResourcePoliciesClient::SetIamPolicy( std::string const& project, std::string const& region, diff --git a/google/cloud/compute/resource_policies/v1/resource_policies_client.h b/google/cloud/compute/resource_policies/v1/resource_policies_client.h index 11610a9cd7f10..548d791c9db4d 100644 --- a/google/cloud/compute/resource_policies/v1/resource_policies_client.h +++ b/google/cloud/compute/resource_policies/v1/resource_policies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_RESOURCE_POLICIES_V1_RESOURCE_POLICIES_CLIENT_H #include "google/cloud/compute/resource_policies/v1/resource_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class ResourcePoliciesClient { DeleteResourcePolicy(std::string const& project, std::string const& region, std::string const& resource_policy, Options opts = {}); + StatusOr DeleteResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource_policy, Options opts = {}); + // clang-format off /// /// Deletes the specified resource policy. @@ -246,6 +253,18 @@ class ResourcePoliciesClient { DeleteResourcePolicyRequest const& request, Options opts = {}); + StatusOr DeleteResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + DeleteResourcePolicyRequest const& request, + Options opts = {}); + + future> + DeleteResourcePolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves all information of the specified resource policy. @@ -409,6 +428,13 @@ class ResourcePoliciesClient { resource_policy_resource, Options opts = {}); + StatusOr InsertResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::ResourcePolicy const& + resource_policy_resource, + Options opts = {}); + // clang-format off /// /// Creates a new resource policy. @@ -448,6 +474,18 @@ class ResourcePoliciesClient { InsertResourcePolicyRequest const& request, Options opts = {}); + StatusOr InsertResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + InsertResourcePolicyRequest const& request, + Options opts = {}); + + future> + InsertResourcePolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// A list all the resource policies that have been configured for the @@ -570,6 +608,14 @@ class ResourcePoliciesClient { resource_policy_resource, Options opts = {}); + StatusOr PatchResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource_policy, std::string const& update_mask, + google::cloud::cpp::compute::v1::ResourcePolicy const& + resource_policy_resource, + Options opts = {}); + // clang-format off /// /// Modify the specified resource policy. @@ -609,6 +655,18 @@ class ResourcePoliciesClient { PatchResourcePolicyRequest const& request, Options opts = {}); + StatusOr PatchResourcePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::resource_policies::v1:: + PatchResourcePolicyRequest const& request, + Options opts = {}); + + future> + PatchResourcePolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any 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..191c7726804e6 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,31 @@ RoutersTracingConnection::DeleteRouter( return internal::EndSpan(std::move(span), child_->DeleteRouter(request)); } +StatusOr +RoutersTracingConnection::DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RoutersTracingConnection::DeleteRouter( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RoutersTracingConnection::GetRouter( google::cloud::cpp::compute::routers::v1::GetRouterRequest const& request) { @@ -106,6 +131,31 @@ RoutersTracingConnection::InsertRouter( return internal::EndSpan(std::move(span), child_->InsertRouter(request)); } +StatusOr +RoutersTracingConnection::InsertRouter( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RoutersTracingConnection::InsertRouter( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange RoutersTracingConnection::ListRouters( google::cloud::cpp::compute::routers::v1::ListRoutersRequest request) { @@ -127,6 +177,31 @@ RoutersTracingConnection::PatchRouter( return internal::EndSpan(std::move(span), child_->PatchRouter(request)); } +StatusOr +RoutersTracingConnection::PatchRouter( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RoutersTracingConnection::PatchRouter( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RoutersTracingConnection::Preview( google::cloud::cpp::compute::routers::v1::PreviewRequest const& request) { @@ -146,6 +221,31 @@ RoutersTracingConnection::UpdateRouter( return internal::EndSpan(std::move(span), child_->UpdateRouter(request)); } +StatusOr +RoutersTracingConnection::UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RoutersTracingConnection::UpdateRouter( + google::cloud::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(google::cloud::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..0972ca7be4bf6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request) override; + + future> DeleteRouter( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request) override; + + future> InsertRouter( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request) override; + + future> PatchRouter( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request) override; + + future> UpdateRouter( + google::cloud::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..14af34006ed07 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteRouter, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertRouter, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchRouter, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateRouter, + (google::cloud::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_client.cc b/google/cloud/compute/routers/v1/routers_client.cc index 7e0b6e6d82342..066bd9c26805a 100644 --- a/google/cloud/compute/routers/v1/routers_client.cc +++ b/google/cloud/compute/routers/v1/routers_client.cc @@ -64,6 +64,21 @@ RoutersClient::DeleteRouter(std::string const& project, return connection_->DeleteRouter(request); } +StatusOr +RoutersClient::DeleteRouter(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& router, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest request; + request.set_project(project); + request.set_region(region); + request.set_router(router); + return connection_->DeleteRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RoutersClient::DeleteRouter( google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& @@ -73,6 +88,25 @@ RoutersClient::DeleteRouter( return connection_->DeleteRouter(request); } +StatusOr +RoutersClient::DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RoutersClient::DeleteRouter( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRouter(google::cloud::ExperimentalTag{}, operation); +} + StatusOr RoutersClient::GetRouter( std::string const& project, std::string const& region, std::string const& router, Options opts) { @@ -167,6 +201,21 @@ RoutersClient::InsertRouter( return connection_->InsertRouter(request); } +StatusOr +RoutersClient::InsertRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Router const& router_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::routers::v1::InsertRouterRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_router_resource() = router_resource; + return connection_->InsertRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RoutersClient::InsertRouter( google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& @@ -176,6 +225,25 @@ RoutersClient::InsertRouter( return connection_->InsertRouter(request); } +StatusOr +RoutersClient::InsertRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RoutersClient::InsertRouter( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertRouter(google::cloud::ExperimentalTag{}, operation); +} + StreamRange RoutersClient::ListRouters( std::string const& project, std::string const& region, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -207,6 +275,22 @@ RoutersClient::PatchRouter( return connection_->PatchRouter(request); } +StatusOr RoutersClient::PatchRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& router, + google::cloud::cpp::compute::v1::Router const& router_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::routers::v1::PatchRouterRequest request; + request.set_project(project); + request.set_region(region); + request.set_router(router); + *request.mutable_router_resource() = router_resource; + return connection_->PatchRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RoutersClient::PatchRouter( google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& request, @@ -215,6 +299,23 @@ RoutersClient::PatchRouter( return connection_->PatchRouter(request); } +StatusOr RoutersClient::PatchRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RoutersClient::PatchRouter( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRouter(google::cloud::ExperimentalTag{}, operation); +} + StatusOr RoutersClient::Preview( std::string const& project, std::string const& region, @@ -253,6 +354,23 @@ RoutersClient::UpdateRouter( return connection_->UpdateRouter(request); } +StatusOr +RoutersClient::UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& router, + google::cloud::cpp::compute::v1::Router const& router_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest request; + request.set_project(project); + request.set_region(region); + request.set_router(router); + *request.mutable_router_resource() = router_resource; + return connection_->UpdateRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RoutersClient::UpdateRouter( google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& @@ -262,6 +380,25 @@ RoutersClient::UpdateRouter( return connection_->UpdateRouter(request); } +StatusOr +RoutersClient::UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RoutersClient::UpdateRouter( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRouter(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_routers_v1 } // namespace cloud diff --git a/google/cloud/compute/routers/v1/routers_client.h b/google/cloud/compute/routers/v1/routers_client.h index a191ae8a8a9f8..a1fcdc1051ce9 100644 --- a/google/cloud/compute/routers/v1/routers_client.h +++ b/google/cloud/compute/routers/v1/routers_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ROUTERS_V1_ROUTERS_CLIENT_H #include "google/cloud/compute/routers/v1/routers_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,6 +204,11 @@ class RoutersClient { std::string const& project, std::string const& region, std::string const& router, Options opts = {}); + StatusOr DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& router, Options opts = {}); + // clang-format off /// /// Deletes the specified Router resource. @@ -241,6 +248,17 @@ class RoutersClient { request, Options opts = {}); + StatusOr DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::DeleteRouterRequest const& + request, + Options opts = {}); + + future> DeleteRouter( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified Router resource. @@ -529,6 +547,12 @@ class RoutersClient { google::cloud::cpp::compute::v1::Router const& router_resource, Options opts = {}); + StatusOr InsertRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Router const& router_resource, + Options opts = {}); + // clang-format off /// /// Creates a Router resource in the specified project and region using the @@ -569,6 +593,17 @@ class RoutersClient { request, Options opts = {}); + StatusOr InsertRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::InsertRouterRequest const& + request, + Options opts = {}); + + future> InsertRouter( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of Router resources available to the specified project. @@ -686,6 +721,13 @@ class RoutersClient { google::cloud::cpp::compute::v1::Router const& router_resource, Options opts = {}); + StatusOr PatchRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& router, + google::cloud::cpp::compute::v1::Router const& router_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified Router resource with the data included in the @@ -727,6 +769,17 @@ class RoutersClient { request, Options opts = {}); + StatusOr PatchRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::PatchRouterRequest const& + request, + Options opts = {}); + + future> PatchRouter( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Preview fields auto-generated during router create and update operations. @@ -834,6 +887,13 @@ class RoutersClient { google::cloud::cpp::compute::v1::Router const& router_resource, Options opts = {}); + StatusOr UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& router, + google::cloud::cpp::compute::v1::Router const& router_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified Router resource with the data included in the @@ -876,6 +936,17 @@ class RoutersClient { request, Options opts = {}); + StatusOr UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routers::v1::UpdateRouterRequest const& + request, + Options opts = {}); + + future> UpdateRouter( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..b62474f6df08e 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,31 @@ RoutesTracingConnection::DeleteRoute( return internal::EndSpan(std::move(span), child_->DeleteRoute(request)); } +StatusOr +RoutesTracingConnection::DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RoutesTracingConnection::DeleteRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RoutesTracingConnection::GetRoute( google::cloud::cpp::compute::routes::v1::GetRouteRequest const& request) { @@ -62,6 +87,31 @@ RoutesTracingConnection::InsertRoute( return internal::EndSpan(std::move(span), child_->InsertRoute(request)); } +StatusOr +RoutesTracingConnection::InsertRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RoutesTracingConnection::InsertRoute( + google::cloud::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(google::cloud::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..8c673aa569a08 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request) override; + + future> DeleteRoute( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request) override; + + future> InsertRoute( + google::cloud::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..38334e3aec8d6 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteRoute, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertRoute, + (google::cloud::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_client.cc b/google/cloud/compute/routes/v1/routes_client.cc index 98dfc0f72c94d..14ddfdef6caa5 100644 --- a/google/cloud/compute/routes/v1/routes_client.cc +++ b/google/cloud/compute/routes/v1/routes_client.cc @@ -42,6 +42,17 @@ RoutesClient::DeleteRoute(std::string const& project, std::string const& route, return connection_->DeleteRoute(request); } +StatusOr RoutesClient::DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& route, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest request; + request.set_project(project); + request.set_route(route); + return connection_->DeleteRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RoutesClient::DeleteRoute( google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& request, @@ -50,6 +61,23 @@ RoutesClient::DeleteRoute( return connection_->DeleteRoute(request); } +StatusOr RoutesClient::DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RoutesClient::DeleteRoute( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRoute(google::cloud::ExperimentalTag{}, operation); +} + StatusOr RoutesClient::GetRoute( std::string const& project, std::string const& route, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -78,6 +106,19 @@ RoutesClient::InsertRoute( return connection_->InsertRoute(request); } +StatusOr RoutesClient::InsertRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Route const& route_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::routes::v1::InsertRouteRequest request; + request.set_project(project); + *request.mutable_route_resource() = route_resource; + return connection_->InsertRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RoutesClient::InsertRoute( google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& request, @@ -86,6 +127,23 @@ RoutesClient::InsertRoute( return connection_->InsertRoute(request); } +StatusOr RoutesClient::InsertRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RoutesClient::InsertRoute( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertRoute(google::cloud::ExperimentalTag{}, operation); +} + StreamRange RoutesClient::ListRoutes( std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/compute/routes/v1/routes_client.h b/google/cloud/compute/routes/v1/routes_client.h index ecfb501e16ad2..a39daf3243f47 100644 --- a/google/cloud/compute/routes/v1/routes_client.h +++ b/google/cloud/compute/routes/v1/routes_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ROUTES_V1_ROUTES_CLIENT_H #include "google/cloud/compute/routes/v1/routes_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -117,6 +119,10 @@ class RoutesClient { future> DeleteRoute( std::string const& project, std::string const& route, Options opts = {}); + StatusOr DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& route, Options opts = {}); + // clang-format off /// /// Deletes the specified Route resource. @@ -156,6 +162,17 @@ class RoutesClient { request, Options opts = {}); + StatusOr DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routes::v1::DeleteRouteRequest const& + request, + Options opts = {}); + + future> DeleteRoute( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified Route resource. @@ -251,6 +268,12 @@ class RoutesClient { google::cloud::cpp::compute::v1::Route const& route_resource, Options opts = {}); + StatusOr InsertRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Route const& route_resource, + Options opts = {}); + // clang-format off /// /// Creates a Route resource in the specified project using the data included @@ -291,6 +314,17 @@ class RoutesClient { request, Options opts = {}); + StatusOr InsertRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::routes::v1::InsertRouteRequest const& + request, + Options opts = {}); + + future> InsertRoute( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of Route resources available to the specified project. 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..cb9bc2403276c 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,31 @@ SecurityPoliciesTracingConnection::AddRule( return internal::EndSpan(std::move(span), child_->AddRule(request)); } +StatusOr +SecurityPoliciesTracingConnection::AddRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::AddRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange> SecurityPoliciesTracingConnection::AggregatedListSecurityPolicies( @@ -72,6 +97,33 @@ SecurityPoliciesTracingConnection::DeleteSecurityPolicy( child_->DeleteSecurityPolicy(request)); } +StatusOr +SecurityPoliciesTracingConnection::DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::DeleteSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SecurityPoliciesTracingConnection::GetSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: @@ -105,6 +157,33 @@ SecurityPoliciesTracingConnection::InsertSecurityPolicy( child_->InsertSecurityPolicy(request)); } +StatusOr +SecurityPoliciesTracingConnection::InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::InsertSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SecurityPoliciesTracingConnection::ListSecurityPolicies( google::cloud::cpp::compute::security_policies::v1:: @@ -144,6 +223,33 @@ SecurityPoliciesTracingConnection::PatchSecurityPolicy( child_->PatchSecurityPolicy(request)); } +StatusOr +SecurityPoliciesTracingConnection::PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::PatchSecurityPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SecurityPoliciesTracingConnection::PatchRule( google::cloud::cpp::compute::security_policies::v1::PatchRuleRequest const& @@ -154,6 +260,31 @@ SecurityPoliciesTracingConnection::PatchRule( return internal::EndSpan(std::move(span), child_->PatchRule(request)); } +StatusOr +SecurityPoliciesTracingConnection::PatchRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::PatchRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SecurityPoliciesTracingConnection::RemoveRule( google::cloud::cpp::compute::security_policies::v1::RemoveRuleRequest const& @@ -164,6 +295,31 @@ SecurityPoliciesTracingConnection::RemoveRule( return internal::EndSpan(std::move(span), child_->RemoveRule(request)); } +StatusOr +SecurityPoliciesTracingConnection::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::RemoveRule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SecurityPoliciesTracingConnection::SetLabels( google::cloud::cpp::compute::security_policies::v1::SetLabelsRequest const& @@ -174,6 +330,31 @@ SecurityPoliciesTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +SecurityPoliciesTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityPoliciesTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..3d4b189cfcc22 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request) override; + + future> AddRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request) override; + + future> + DeleteSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request) override; + + future> + InsertSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request) override; + + future> + PatchSecurityPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const& request) override; + + future> PatchRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const& request) override; + + future> RemoveRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + google::cloud::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..3812132218d16 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSecurityPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveRule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.cc b/google/cloud/compute/security_policies/v1/security_policies_client.cc index 76c53daae549f..c1ed10fffec60 100644 --- a/google/cloud/compute/security_policies/v1/security_policies_client.cc +++ b/google/cloud/compute/security_policies/v1/security_policies_client.cc @@ -47,6 +47,23 @@ SecurityPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +SecurityPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& security_policy, + google::cloud::cpp::compute::v1::SecurityPolicyRule const& + security_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest request; + request.set_project(project); + request.set_security_policy(security_policy); + *request.mutable_security_policy_rule_resource() = + security_policy_rule_resource; + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecurityPoliciesClient::AddRule( google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& @@ -56,6 +73,25 @@ SecurityPoliciesClient::AddRule( return connection_->AddRule(request); } +StatusOr +SecurityPoliciesClient::AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityPoliciesClient::AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddRule(google::cloud::ExperimentalTag{}, operation); +} + StreamRange> SecurityPoliciesClient::AggregatedListSecurityPolicies( @@ -89,6 +125,21 @@ SecurityPoliciesClient::DeleteSecurityPolicy(std::string const& project, return connection_->DeleteSecurityPolicy(request); } +StatusOr +SecurityPoliciesClient::DeleteSecurityPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& security_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest request; + request.set_project(project); + request.set_security_policy(security_policy); + return connection_->DeleteSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SecurityPoliciesClient::DeleteSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: @@ -98,6 +149,26 @@ SecurityPoliciesClient::DeleteSecurityPolicy( return connection_->DeleteSecurityPolicy(request); } +StatusOr +SecurityPoliciesClient::DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityPoliciesClient::DeleteSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SecurityPoliciesClient::GetSecurityPolicy(std::string const& project, std::string const& security_policy, @@ -153,6 +224,22 @@ SecurityPoliciesClient::InsertSecurityPolicy( return connection_->InsertSecurityPolicy(request); } +StatusOr +SecurityPoliciesClient::InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::SecurityPolicy const& + security_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest request; + request.set_project(project); + *request.mutable_security_policy_resource() = security_policy_resource; + return connection_->InsertSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SecurityPoliciesClient::InsertSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: @@ -162,6 +249,26 @@ SecurityPoliciesClient::InsertSecurityPolicy( return connection_->InsertSecurityPolicy(request); } +StatusOr +SecurityPoliciesClient::InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSecurityPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityPoliciesClient::InsertSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SecurityPoliciesClient::ListSecurityPolicies(std::string const& project, Options opts) { @@ -219,6 +326,25 @@ SecurityPoliciesClient::PatchSecurityPolicy( return connection_->PatchSecurityPolicy(request); } +StatusOr +SecurityPoliciesClient::PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& security_policy, + std::string const& update_mask, + google::cloud::cpp::compute::v1::SecurityPolicy const& + security_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::security_policies::v1::PatchSecurityPolicyRequest + request; + request.set_project(project); + request.set_security_policy(security_policy); + request.set_update_mask(update_mask); + *request.mutable_security_policy_resource() = security_policy_resource; + return connection_->PatchSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecurityPoliciesClient::PatchSecurityPolicy( google::cloud::cpp::compute::security_policies::v1:: @@ -228,6 +354,26 @@ SecurityPoliciesClient::PatchSecurityPolicy( return connection_->PatchSecurityPolicy(request); } +StatusOr +SecurityPoliciesClient::PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityPoliciesClient::PatchSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> SecurityPoliciesClient::PatchRule( std::string const& project, std::string const& security_policy, @@ -243,6 +389,23 @@ SecurityPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +SecurityPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& security_policy, + google::cloud::cpp::compute::v1::SecurityPolicyRule const& + security_policy_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::security_policies::v1::PatchRuleRequest request; + request.set_project(project); + request.set_security_policy(security_policy); + *request.mutable_security_policy_rule_resource() = + security_policy_rule_resource; + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecurityPoliciesClient::PatchRule( google::cloud::cpp::compute::security_policies::v1::PatchRuleRequest const& @@ -252,6 +415,25 @@ SecurityPoliciesClient::PatchRule( return connection_->PatchRule(request); } +StatusOr +SecurityPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::PatchRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityPoliciesClient::PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchRule(google::cloud::ExperimentalTag{}, operation); +} + future> SecurityPoliciesClient::RemoveRule(std::string const& project, std::string const& security_policy, @@ -263,6 +445,20 @@ SecurityPoliciesClient::RemoveRule(std::string const& project, return connection_->RemoveRule(request); } +StatusOr +SecurityPoliciesClient::RemoveRule(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& security_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::security_policies::v1::RemoveRuleRequest request; + request.set_project(project); + request.set_security_policy(security_policy); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecurityPoliciesClient::RemoveRule( google::cloud::cpp::compute::security_policies::v1::RemoveRuleRequest const& @@ -272,6 +468,25 @@ SecurityPoliciesClient::RemoveRule( return connection_->RemoveRule(request); } +StatusOr +SecurityPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::RemoveRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityPoliciesClient::RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveRule(google::cloud::ExperimentalTag{}, operation); +} + future> SecurityPoliciesClient::SetLabels( std::string const& project, std::string const& resource, @@ -287,6 +502,23 @@ SecurityPoliciesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +SecurityPoliciesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::security_policies::v1::SetLabelsRequest request; + request.set_project(project); + request.set_resource(resource); + *request.mutable_global_set_labels_request_resource() = + global_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecurityPoliciesClient::SetLabels( google::cloud::cpp::compute::security_policies::v1::SetLabelsRequest const& @@ -296,6 +528,25 @@ SecurityPoliciesClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +SecurityPoliciesClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::SetLabelsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityPoliciesClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_security_policies_v1 } // namespace cloud diff --git a/google/cloud/compute/security_policies/v1/security_policies_client.h b/google/cloud/compute/security_policies/v1/security_policies_client.h index ee09385de913b..983e9a8d9a4b6 100644 --- a/google/cloud/compute/security_policies/v1/security_policies_client.h +++ b/google/cloud/compute/security_policies/v1/security_policies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SECURITY_POLICIES_V1_SECURITY_POLICIES_CLIENT_H #include "google/cloud/compute/security_policies/v1/security_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,13 @@ class SecurityPoliciesClient { security_policy_rule_resource, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& security_policy, + google::cloud::cpp::compute::v1::SecurityPolicyRule const& + security_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Inserts a rule into a security policy. @@ -164,6 +173,17 @@ class SecurityPoliciesClient { request, Options opts = {}); + StatusOr AddRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1::AddRuleRequest const& + request, + Options opts = {}); + + future> AddRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of all SecurityPolicy resources, regional and global, @@ -282,6 +302,11 @@ class SecurityPoliciesClient { DeleteSecurityPolicy(std::string const& project, std::string const& security_policy, Options opts = {}); + StatusOr DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& security_policy, + Options opts = {}); + // clang-format off /// /// Deletes the specified policy. @@ -321,6 +346,18 @@ class SecurityPoliciesClient { DeleteSecurityPolicyRequest const& request, Options opts = {}); + StatusOr DeleteSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + DeleteSecurityPolicyRequest const& request, + Options opts = {}); + + future> + DeleteSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// List all of the ordered rules present in a single specified policy. @@ -480,6 +517,13 @@ class SecurityPoliciesClient { security_policy_resource, Options opts = {}); + StatusOr InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::SecurityPolicy const& + security_policy_resource, + Options opts = {}); + // clang-format off /// /// Creates a new policy in the specified project using the data included in @@ -520,6 +564,18 @@ class SecurityPoliciesClient { InsertSecurityPolicyRequest const& request, Options opts = {}); + StatusOr InsertSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + InsertSecurityPolicyRequest const& request, + Options opts = {}); + + future> + InsertSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// List all the policies that have been configured for the specified project. @@ -706,6 +762,14 @@ class SecurityPoliciesClient { security_policy_resource, Options opts = {}); + StatusOr PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& security_policy, + std::string const& update_mask, + google::cloud::cpp::compute::v1::SecurityPolicy const& + security_policy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified policy with the data included in the request. To @@ -749,6 +813,18 @@ class SecurityPoliciesClient { PatchSecurityPolicyRequest const& request, Options opts = {}); + StatusOr PatchSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchSecurityPolicyRequest const& request, + Options opts = {}); + + future> + PatchSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Patches a rule at the specified priority. To clear fields in the rule, @@ -787,6 +863,13 @@ class SecurityPoliciesClient { security_policy_rule_resource, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& security_policy, + google::cloud::cpp::compute::v1::SecurityPolicyRule const& + security_policy_rule_resource, + Options opts = {}); + // clang-format off /// /// Patches a rule at the specified priority. To clear fields in the rule, @@ -827,6 +910,17 @@ class SecurityPoliciesClient { PatchRuleRequest const& request, Options opts = {}); + StatusOr PatchRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + PatchRuleRequest const& request, + Options opts = {}); + + future> PatchRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a rule at the specified priority. @@ -861,6 +955,11 @@ class SecurityPoliciesClient { std::string const& project, std::string const& security_policy, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& security_policy, + Options opts = {}); + // clang-format off /// /// Deletes a rule at the specified priority. @@ -900,6 +999,17 @@ class SecurityPoliciesClient { RemoveRuleRequest const& request, Options opts = {}); + StatusOr RemoveRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + RemoveRuleRequest const& request, + Options opts = {}); + + future> RemoveRule( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the labels on a security policy. To learn more about labels, read the @@ -938,6 +1048,13 @@ class SecurityPoliciesClient { global_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on a security policy. To learn more about labels, read the @@ -978,6 +1095,17 @@ class SecurityPoliciesClient { SetLabelsRequest const& request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::security_policies::v1:: + SetLabelsRequest const& request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..55f1a60fffafc 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,33 @@ ServiceAttachmentsTracingConnection::DeleteServiceAttachment( child_->DeleteServiceAttachment(request)); } +StatusOr +ServiceAttachmentsTracingConnection::DeleteServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceAttachmentsTracingConnection::DeleteServiceAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ServiceAttachmentsTracingConnection::GetServiceAttachment( google::cloud::cpp::compute::service_attachments::v1:: @@ -97,6 +124,33 @@ ServiceAttachmentsTracingConnection::InsertServiceAttachment( child_->InsertServiceAttachment(request)); } +StatusOr +ServiceAttachmentsTracingConnection::InsertServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceAttachmentsTracingConnection::InsertServiceAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ServiceAttachmentsTracingConnection::ListServiceAttachments( google::cloud::cpp::compute::service_attachments::v1:: @@ -123,6 +177,33 @@ ServiceAttachmentsTracingConnection::PatchServiceAttachment( child_->PatchServiceAttachment(request)); } +StatusOr +ServiceAttachmentsTracingConnection::PatchServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceAttachmentsTracingConnection::PatchServiceAttachment( + google::cloud::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( + google::cloud::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..22941467e4dda 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request) override; + + future> + DeleteServiceAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request) override; + + future> + InsertServiceAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request) override; + + future> + PatchServiceAttachment( + google::cloud::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..4ae7f35118e7e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteServiceAttachment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertServiceAttachment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchServiceAttachment, + (google::cloud::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_client.cc b/google/cloud/compute/service_attachments/v1/service_attachments_client.cc index 7dcf20bc2424d..12e85ad57d08f 100644 --- a/google/cloud/compute/service_attachments/v1/service_attachments_client.cc +++ b/google/cloud/compute/service_attachments/v1/service_attachments_client.cc @@ -66,6 +66,21 @@ ServiceAttachmentsClient::DeleteServiceAttachment( return connection_->DeleteServiceAttachment(request); } +StatusOr +ServiceAttachmentsClient::DeleteServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& service_attachment, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest request; + request.set_project(project); + request.set_region(region); + request.set_service_attachment(service_attachment); + return connection_->DeleteServiceAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ServiceAttachmentsClient::DeleteServiceAttachment( google::cloud::cpp::compute::service_attachments::v1:: @@ -75,6 +90,26 @@ ServiceAttachmentsClient::DeleteServiceAttachment( return connection_->DeleteServiceAttachment(request); } +StatusOr +ServiceAttachmentsClient::DeleteServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServiceAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceAttachmentsClient::DeleteServiceAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServiceAttachment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ServiceAttachmentsClient::GetServiceAttachment( std::string const& project, std::string const& region, @@ -135,6 +170,23 @@ ServiceAttachmentsClient::InsertServiceAttachment( return connection_->InsertServiceAttachment(request); } +StatusOr +ServiceAttachmentsClient::InsertServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::ServiceAttachment const& + service_attachment_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_service_attachment_resource() = service_attachment_resource; + return connection_->InsertServiceAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ServiceAttachmentsClient::InsertServiceAttachment( google::cloud::cpp::compute::service_attachments::v1:: @@ -144,6 +196,26 @@ ServiceAttachmentsClient::InsertServiceAttachment( return connection_->InsertServiceAttachment(request); } +StatusOr +ServiceAttachmentsClient::InsertServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertServiceAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceAttachmentsClient::InsertServiceAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertServiceAttachment(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ServiceAttachmentsClient::ListServiceAttachments(std::string const& project, std::string const& region, @@ -182,6 +254,25 @@ ServiceAttachmentsClient::PatchServiceAttachment( return connection_->PatchServiceAttachment(request); } +StatusOr +ServiceAttachmentsClient::PatchServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& service_attachment, + google::cloud::cpp::compute::v1::ServiceAttachment const& + service_attachment_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest request; + request.set_project(project); + request.set_region(region); + request.set_service_attachment(service_attachment); + *request.mutable_service_attachment_resource() = service_attachment_resource; + return connection_->PatchServiceAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ServiceAttachmentsClient::PatchServiceAttachment( google::cloud::cpp::compute::service_attachments::v1:: @@ -191,6 +282,26 @@ ServiceAttachmentsClient::PatchServiceAttachment( return connection_->PatchServiceAttachment(request); } +StatusOr +ServiceAttachmentsClient::PatchServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchServiceAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceAttachmentsClient::PatchServiceAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchServiceAttachment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ServiceAttachmentsClient::SetIamPolicy( std::string const& project, std::string const& region, diff --git a/google/cloud/compute/service_attachments/v1/service_attachments_client.h b/google/cloud/compute/service_attachments/v1/service_attachments_client.h index 2f267c0e9a1b8..f4b83c6cbdec7 100644 --- a/google/cloud/compute/service_attachments/v1/service_attachments_client.h +++ b/google/cloud/compute/service_attachments/v1/service_attachments_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SERVICE_ATTACHMENTS_V1_SERVICE_ATTACHMENTS_CLIENT_H #include "google/cloud/compute/service_attachments/v1/service_attachments_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class ServiceAttachmentsClient { std::string const& service_attachment, Options opts = {}); + StatusOr DeleteServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& service_attachment, Options opts = {}); + // clang-format off /// /// Deletes the specified ServiceAttachment in the given scope @@ -251,6 +258,18 @@ class ServiceAttachmentsClient { DeleteServiceAttachmentRequest const& request, Options opts = {}); + StatusOr DeleteServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + DeleteServiceAttachmentRequest const& request, + Options opts = {}); + + future> + DeleteServiceAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified ServiceAttachment resource in the given scope. @@ -417,6 +436,13 @@ class ServiceAttachmentsClient { service_attachment_resource, Options opts = {}); + StatusOr InsertServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::ServiceAttachment const& + service_attachment_resource, + Options opts = {}); + // clang-format off /// /// Creates a ServiceAttachment in the specified project in the given scope @@ -457,6 +483,18 @@ class ServiceAttachmentsClient { InsertServiceAttachmentRequest const& request, Options opts = {}); + StatusOr InsertServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + InsertServiceAttachmentRequest const& request, + Options opts = {}); + + future> + InsertServiceAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the ServiceAttachments for a project in the given scope. @@ -579,6 +617,14 @@ class ServiceAttachmentsClient { service_attachment_resource, Options opts = {}); + StatusOr PatchServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& service_attachment, + google::cloud::cpp::compute::v1::ServiceAttachment const& + service_attachment_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified ServiceAttachment resource with the data included in @@ -620,6 +666,18 @@ class ServiceAttachmentsClient { PatchServiceAttachmentRequest const& request, Options opts = {}); + StatusOr PatchServiceAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::service_attachments::v1:: + PatchServiceAttachmentRequest const& request, + Options opts = {}); + + future> + PatchServiceAttachment( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any 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..43b03d45f2adc 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,33 @@ SnapshotSettingsTracingConnection::PatchSnapshotSettings( child_->PatchSnapshotSettings(request)); } +StatusOr +SnapshotSettingsTracingConnection::PatchSnapshotSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SnapshotSettingsTracingConnection::PatchSnapshotSettings( + google::cloud::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( + google::cloud::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..fba77b029742c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request) override; + + future> + PatchSnapshotSettings( + google::cloud::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..c2d260c5a0682 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSnapshotSettings, + (google::cloud::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_client.cc b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.cc index b2a7ba36c171a..d920248aaa1df 100644 --- a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.cc +++ b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.cc @@ -66,6 +66,23 @@ SnapshotSettingsClient::PatchSnapshotSettings( return connection_->PatchSnapshotSettings(request); } +StatusOr +SnapshotSettingsClient::PatchSnapshotSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& update_mask, + google::cloud::cpp::compute::v1::SnapshotSettings const& + snapshot_settings_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest request; + request.set_project(project); + request.set_update_mask(update_mask); + *request.mutable_snapshot_settings_resource() = snapshot_settings_resource; + return connection_->PatchSnapshotSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SnapshotSettingsClient::PatchSnapshotSettings( google::cloud::cpp::compute::snapshot_settings::v1:: @@ -75,6 +92,26 @@ SnapshotSettingsClient::PatchSnapshotSettings( return connection_->PatchSnapshotSettings(request); } +StatusOr +SnapshotSettingsClient::PatchSnapshotSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSnapshotSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SnapshotSettingsClient::PatchSnapshotSettings( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSnapshotSettings(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_snapshot_settings_v1 } // namespace cloud diff --git a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.h b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.h index 263586efdf24d..b71b9a1e0cbd8 100644 --- a/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.h +++ b/google/cloud/compute/snapshot_settings/v1/snapshot_settings_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SNAPSHOT_SETTINGS_V1_SNAPSHOT_SETTINGS_CLIENT_H #include "google/cloud/compute/snapshot_settings/v1/snapshot_settings_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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 SnapshotSettingsClient { snapshot_settings_resource, Options opts = {}); + StatusOr PatchSnapshotSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& update_mask, + google::cloud::cpp::compute::v1::SnapshotSettings const& + snapshot_settings_resource, + Options opts = {}); + // clang-format off /// /// Patch snapshot settings. @@ -223,6 +232,18 @@ class SnapshotSettingsClient { PatchSnapshotSettingsRequest const& request, Options opts = {}); + StatusOr PatchSnapshotSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshot_settings::v1:: + PatchSnapshotSettingsRequest const& request, + Options opts = {}); + + future> + PatchSnapshotSettings( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..e0d0d9c6fbc25 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,31 @@ SnapshotsTracingConnection::DeleteSnapshot( return internal::EndSpan(std::move(span), child_->DeleteSnapshot(request)); } +StatusOr +SnapshotsTracingConnection::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SnapshotsTracingConnection::DeleteSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SnapshotsTracingConnection::GetSnapshot( google::cloud::cpp::compute::snapshots::v1::GetSnapshotRequest const& @@ -73,6 +98,31 @@ SnapshotsTracingConnection::InsertSnapshot( return internal::EndSpan(std::move(span), child_->InsertSnapshot(request)); } +StatusOr +SnapshotsTracingConnection::InsertSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SnapshotsTracingConnection::InsertSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SnapshotsTracingConnection::ListSnapshots( google::cloud::cpp::compute::snapshots::v1::ListSnapshotsRequest request) { @@ -105,6 +155,31 @@ SnapshotsTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +SnapshotsTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SnapshotsTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..69b4cee95016b 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request) override; + + future> DeleteSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request) override; + + future> InsertSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::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..4f5b0e84e8896 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteSnapshot, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertSnapshot, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/snapshots/v1/snapshots_client.cc b/google/cloud/compute/snapshots/v1/snapshots_client.cc index a2300f8b0358f..80d023795824a 100644 --- a/google/cloud/compute/snapshots/v1/snapshots_client.cc +++ b/google/cloud/compute/snapshots/v1/snapshots_client.cc @@ -42,6 +42,19 @@ SnapshotsClient::DeleteSnapshot(std::string const& project, return connection_->DeleteSnapshot(request); } +StatusOr +SnapshotsClient::DeleteSnapshot(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& snapshot, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest request; + request.set_project(project); + request.set_snapshot(snapshot); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SnapshotsClient::DeleteSnapshot( google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& @@ -51,6 +64,26 @@ SnapshotsClient::DeleteSnapshot( return connection_->DeleteSnapshot(request); } +StatusOr +SnapshotsClient::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SnapshotsClient::DeleteSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SnapshotsClient::GetSnapshot(std::string const& project, std::string const& snapshot, Options opts) { @@ -99,6 +132,20 @@ SnapshotsClient::InsertSnapshot( return connection_->InsertSnapshot(request); } +StatusOr +SnapshotsClient::InsertSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest request; + request.set_project(project); + *request.mutable_snapshot_resource() = snapshot_resource; + return connection_->InsertSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SnapshotsClient::InsertSnapshot( google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& @@ -108,6 +155,26 @@ SnapshotsClient::InsertSnapshot( return connection_->InsertSnapshot(request); } +StatusOr +SnapshotsClient::InsertSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SnapshotsClient::InsertSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SnapshotsClient::ListSnapshots(std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -161,6 +228,22 @@ SnapshotsClient::SetLabels( return connection_->SetLabels(request); } +StatusOr SnapshotsClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest request; + request.set_project(project); + request.set_resource(resource); + *request.mutable_global_set_labels_request_resource() = + global_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SnapshotsClient::SetLabels( google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& request, @@ -169,6 +252,23 @@ SnapshotsClient::SetLabels( return connection_->SetLabels(request); } +StatusOr SnapshotsClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SnapshotsClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + StatusOr SnapshotsClient::TestIamPermissions( std::string const& project, std::string const& resource, diff --git a/google/cloud/compute/snapshots/v1/snapshots_client.h b/google/cloud/compute/snapshots/v1/snapshots_client.h index 940de1f9bfe9f..e0de1429b8d5c 100644 --- a/google/cloud/compute/snapshots/v1/snapshots_client.h +++ b/google/cloud/compute/snapshots/v1/snapshots_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SNAPSHOTS_V1_SNAPSHOTS_CLIENT_H #include "google/cloud/compute/snapshots/v1/snapshots_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -123,6 +125,11 @@ class SnapshotsClient { std::string const& project, std::string const& snapshot, Options opts = {}); + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& snapshot, + Options opts = {}); + // clang-format off /// /// Deletes the specified Snapshot resource. Keep in mind that deleting a @@ -166,6 +173,17 @@ class SnapshotsClient { request, Options opts = {}); + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::DeleteSnapshotRequest const& + request, + Options opts = {}); + + future> DeleteSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified Snapshot resource. @@ -328,6 +346,12 @@ class SnapshotsClient { google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, Options opts = {}); + StatusOr InsertSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::Snapshot const& snapshot_resource, + Options opts = {}); + // clang-format off /// /// Creates a snapshot in the specified project using the data included in the @@ -370,6 +394,17 @@ class SnapshotsClient { request, Options opts = {}); + StatusOr InsertSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::InsertSnapshotRequest const& + request, + Options opts = {}); + + future> InsertSnapshot( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of Snapshot resources contained within the specified @@ -552,6 +587,13 @@ class SnapshotsClient { global_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& resource, + google::cloud::cpp::compute::v1::GlobalSetLabelsRequest const& + global_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on a snapshot. To learn more about labels, read the @@ -592,6 +634,17 @@ class SnapshotsClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::snapshots::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. 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..5b029f9adc288 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,33 @@ SslCertificatesTracingConnection::DeleteSslCertificate( child_->DeleteSslCertificate(request)); } +StatusOr +SslCertificatesTracingConnection::DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SslCertificatesTracingConnection::DeleteSslCertificate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SslCertificatesTracingConnection::GetSslCertificate( google::cloud::cpp::compute::ssl_certificates::v1:: @@ -84,6 +111,33 @@ SslCertificatesTracingConnection::InsertSslCertificate( child_->InsertSslCertificate(request)); } +StatusOr +SslCertificatesTracingConnection::InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SslCertificatesTracingConnection::InsertSslCertificate( + google::cloud::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( + google::cloud::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..e096de607c44f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request) override; + + future> + DeleteSslCertificate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request) override; + + future> + InsertSslCertificate( + google::cloud::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..e0e8586681450 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSslCertificate, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSslCertificate, + (google::cloud::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_client.cc b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.cc index bd8ed0719e50e..729470c2f85d5 100644 --- a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.cc +++ b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.cc @@ -65,6 +65,21 @@ SslCertificatesClient::DeleteSslCertificate(std::string const& project, return connection_->DeleteSslCertificate(request); } +StatusOr +SslCertificatesClient::DeleteSslCertificate(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& ssl_certificate, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::ssl_certificates::v1::DeleteSslCertificateRequest + request; + request.set_project(project); + request.set_ssl_certificate(ssl_certificate); + return connection_->DeleteSslCertificate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SslCertificatesClient::DeleteSslCertificate( google::cloud::cpp::compute::ssl_certificates::v1:: @@ -74,6 +89,26 @@ SslCertificatesClient::DeleteSslCertificate( return connection_->DeleteSslCertificate(request); } +StatusOr +SslCertificatesClient::DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSslCertificate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SslCertificatesClient::DeleteSslCertificate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSslCertificate(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SslCertificatesClient::GetSslCertificate(std::string const& project, std::string const& ssl_certificate, @@ -109,6 +144,22 @@ SslCertificatesClient::InsertSslCertificate( return connection_->InsertSslCertificate(request); } +StatusOr +SslCertificatesClient::InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::SslCertificate const& + ssl_certificate_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::ssl_certificates::v1::InsertSslCertificateRequest + request; + request.set_project(project); + *request.mutable_ssl_certificate_resource() = ssl_certificate_resource; + return connection_->InsertSslCertificate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SslCertificatesClient::InsertSslCertificate( google::cloud::cpp::compute::ssl_certificates::v1:: @@ -118,6 +169,26 @@ SslCertificatesClient::InsertSslCertificate( return connection_->InsertSslCertificate(request); } +StatusOr +SslCertificatesClient::InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSslCertificate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SslCertificatesClient::InsertSslCertificate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSslCertificate(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SslCertificatesClient::ListSslCertificates(std::string const& project, Options opts) { diff --git a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.h b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.h index 602ae266d5f7b..dd7b6809550ed 100644 --- a/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.h +++ b/google/cloud/compute/ssl_certificates/v1/ssl_certificates_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SSL_CERTIFICATES_V1_SSL_CERTIFICATES_CLIENT_H #include "google/cloud/compute/ssl_certificates/v1/ssl_certificates_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class SslCertificatesClient { DeleteSslCertificate(std::string const& project, std::string const& ssl_certificate, Options opts = {}); + StatusOr DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& ssl_certificate, + Options opts = {}); + // clang-format off /// /// Deletes the specified SslCertificate resource. @@ -244,6 +251,18 @@ class SslCertificatesClient { DeleteSslCertificateRequest const& request, Options opts = {}); + StatusOr DeleteSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + DeleteSslCertificateRequest const& request, + Options opts = {}); + + future> + DeleteSslCertificate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified SslCertificate resource. @@ -342,6 +361,13 @@ class SslCertificatesClient { ssl_certificate_resource, Options opts = {}); + StatusOr InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::SslCertificate const& + ssl_certificate_resource, + Options opts = {}); + // clang-format off /// /// Creates a SslCertificate resource in the specified project using the data @@ -382,6 +408,18 @@ class SslCertificatesClient { InsertSslCertificateRequest const& request, Options opts = {}); + StatusOr InsertSslCertificate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_certificates::v1:: + InsertSslCertificateRequest const& request, + Options opts = {}); + + future> + InsertSslCertificate( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of SslCertificate resources available to the specified 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..005893f3d3135 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,31 @@ SslPoliciesTracingConnection::DeleteSslPolicy( return internal::EndSpan(std::move(span), child_->DeleteSslPolicy(request)); } +StatusOr +SslPoliciesTracingConnection::DeleteSslPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SslPoliciesTracingConnection::DeleteSslPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SslPoliciesTracingConnection::GetSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::GetSslPolicyRequest const& @@ -78,6 +103,31 @@ SslPoliciesTracingConnection::InsertSslPolicy( return internal::EndSpan(std::move(span), child_->InsertSslPolicy(request)); } +StatusOr +SslPoliciesTracingConnection::InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SslPoliciesTracingConnection::InsertSslPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SslPoliciesTracingConnection::ListSslPolicies( google::cloud::cpp::compute::ssl_policies::v1::ListSslPoliciesRequest @@ -112,6 +162,31 @@ SslPoliciesTracingConnection::PatchSslPolicy( return internal::EndSpan(std::move(span), child_->PatchSslPolicy(request)); } +StatusOr +SslPoliciesTracingConnection::PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SslPoliciesTracingConnection::PatchSslPolicy( + google::cloud::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(google::cloud::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..f4d27582518ca 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const& request) override; + + future> DeleteSslPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const& request) override; + + future> InsertSslPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const& request) override; + + future> PatchSslPolicy( + google::cloud::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..68b63538dccec 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSslPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSslPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSslPolicy, + (google::cloud::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_client.cc b/google/cloud/compute/ssl_policies/v1/ssl_policies_client.cc index 3a4148ab837af..2f118d7c1e5ac 100644 --- a/google/cloud/compute/ssl_policies/v1/ssl_policies_client.cc +++ b/google/cloud/compute/ssl_policies/v1/ssl_policies_client.cc @@ -64,6 +64,20 @@ SslPoliciesClient::DeleteSslPolicy(std::string const& project, return connection_->DeleteSslPolicy(request); } +StatusOr +SslPoliciesClient::DeleteSslPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& ssl_policy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::ssl_policies::v1::DeleteSslPolicyRequest request; + request.set_project(project); + request.set_ssl_policy(ssl_policy); + return connection_->DeleteSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SslPoliciesClient::DeleteSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::DeleteSslPolicyRequest const& @@ -73,6 +87,26 @@ SslPoliciesClient::DeleteSslPolicy( return connection_->DeleteSslPolicy(request); } +StatusOr +SslPoliciesClient::DeleteSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::DeleteSslPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SslPoliciesClient::DeleteSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSslPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SslPoliciesClient::GetSslPolicy(std::string const& project, std::string const& ssl_policy, Options opts) { @@ -104,6 +138,20 @@ SslPoliciesClient::InsertSslPolicy( return connection_->InsertSslPolicy(request); } +StatusOr +SslPoliciesClient::InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::ssl_policies::v1::InsertSslPolicyRequest request; + request.set_project(project); + *request.mutable_ssl_policy_resource() = ssl_policy_resource; + return connection_->InsertSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SslPoliciesClient::InsertSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::InsertSslPolicyRequest const& @@ -113,6 +161,26 @@ SslPoliciesClient::InsertSslPolicy( return connection_->InsertSslPolicy(request); } +StatusOr +SslPoliciesClient::InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::InsertSslPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SslPoliciesClient::InsertSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSslPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SslPoliciesClient::ListSslPolicies(std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -164,6 +232,21 @@ SslPoliciesClient::PatchSslPolicy( return connection_->PatchSslPolicy(request); } +StatusOr +SslPoliciesClient::PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& ssl_policy, + google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::ssl_policies::v1::PatchSslPolicyRequest request; + request.set_project(project); + request.set_ssl_policy(ssl_policy); + *request.mutable_ssl_policy_resource() = ssl_policy_resource; + return connection_->PatchSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SslPoliciesClient::PatchSslPolicy( google::cloud::cpp::compute::ssl_policies::v1::PatchSslPolicyRequest const& @@ -173,6 +256,26 @@ SslPoliciesClient::PatchSslPolicy( return connection_->PatchSslPolicy(request); } +StatusOr +SslPoliciesClient::PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1::PatchSslPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SslPoliciesClient::PatchSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSslPolicy(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_ssl_policies_v1 } // namespace cloud diff --git a/google/cloud/compute/ssl_policies/v1/ssl_policies_client.h b/google/cloud/compute/ssl_policies/v1/ssl_policies_client.h index 0f165e48c1fa7..18a307c4c1a51 100644 --- a/google/cloud/compute/ssl_policies/v1/ssl_policies_client.h +++ b/google/cloud/compute/ssl_policies/v1/ssl_policies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SSL_POLICIES_V1_SSL_POLICIES_CLIENT_H #include "google/cloud/compute/ssl_policies/v1/ssl_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class SslPoliciesClient { std::string const& project, std::string const& ssl_policy, Options opts = {}); + StatusOr DeleteSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& ssl_policy, + Options opts = {}); + // clang-format off /// /// Deletes the specified SSL policy. The SSL policy resource can be deleted @@ -248,6 +255,17 @@ class SslPoliciesClient { DeleteSslPolicyRequest const& request, Options opts = {}); + StatusOr DeleteSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + DeleteSslPolicyRequest const& request, + Options opts = {}); + + future> DeleteSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all of the ordered rules present in a single specified policy. @@ -345,6 +363,12 @@ class SslPoliciesClient { google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, Options opts = {}); + StatusOr InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, + Options opts = {}); + // clang-format off /// /// Returns the specified SSL policy resource. @@ -384,6 +408,17 @@ class SslPoliciesClient { InsertSslPolicyRequest const& request, Options opts = {}); + StatusOr InsertSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + InsertSslPolicyRequest const& request, + Options opts = {}); + + future> InsertSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all the SSL policies that have been configured for the specified @@ -563,6 +598,12 @@ class SslPoliciesClient { google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, Options opts = {}); + StatusOr PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& ssl_policy, + google::cloud::cpp::compute::v1::SslPolicy const& ssl_policy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified SSL policy with the data included in the request. @@ -602,6 +643,17 @@ class SslPoliciesClient { PatchSslPolicyRequest const& request, Options opts = {}); + StatusOr PatchSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::ssl_policies::v1:: + PatchSslPolicyRequest const& request, + Options opts = {}); + + future> PatchSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/compute/storage_pool_types/v1/storage_pool_types_client.h index 0d81dbdc3e77b..cf7c628cef529 100644 --- a/google/cloud/compute/storage_pool_types/v1/storage_pool_types_client.h +++ b/google/cloud/compute/storage_pool_types/v1/storage_pool_types_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_STORAGE_POOL_TYPES_V1_STORAGE_POOL_TYPES_CLIENT_H #include "google/cloud/compute/storage_pool_types/v1/storage_pool_types_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..dbeb4b54bc545 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,31 @@ StoragePoolsTracingConnection::DeleteStoragePool( return internal::EndSpan(std::move(span), child_->DeleteStoragePool(request)); } +StatusOr +StoragePoolsTracingConnection::DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +StoragePoolsTracingConnection::DeleteStoragePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr StoragePoolsTracingConnection::GetStoragePool( google::cloud::cpp::compute::storage_pools::v1::GetStoragePoolRequest const& @@ -88,6 +113,31 @@ StoragePoolsTracingConnection::InsertStoragePool( return internal::EndSpan(std::move(span), child_->InsertStoragePool(request)); } +StatusOr +StoragePoolsTracingConnection::InsertStoragePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +StoragePoolsTracingConnection::InsertStoragePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange StoragePoolsTracingConnection::ListStoragePools( google::cloud::cpp::compute::storage_pools::v1::ListStoragePoolsRequest @@ -143,6 +193,31 @@ StoragePoolsTracingConnection::UpdateStoragePool( return internal::EndSpan(std::move(span), child_->UpdateStoragePool(request)); } +StatusOr +StoragePoolsTracingConnection::UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +StoragePoolsTracingConnection::UpdateStoragePool( + google::cloud::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(google::cloud::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..326e92bad0054 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request) override; + + future> + DeleteStoragePool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request) override; + + future> + InsertStoragePool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request) override; + + future> + UpdateStoragePool( + google::cloud::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..cd2df449fc400 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteStoragePool, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertStoragePool, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateStoragePool, + (google::cloud::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_client.cc b/google/cloud/compute/storage_pools/v1/storage_pools_client.cc index 53ce2d5be33a3..6197c421b388c 100644 --- a/google/cloud/compute/storage_pools/v1/storage_pools_client.cc +++ b/google/cloud/compute/storage_pools/v1/storage_pools_client.cc @@ -67,6 +67,23 @@ StoragePoolsClient::DeleteStoragePool(std::string const& project, return connection_->DeleteStoragePool(request); } +StatusOr +StoragePoolsClient::DeleteStoragePool(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& storage_pool, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::storage_pools::v1::DeleteStoragePoolRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_storage_pool(storage_pool); + return connection_->DeleteStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> StoragePoolsClient::DeleteStoragePool( google::cloud::cpp::compute::storage_pools::v1:: @@ -76,6 +93,26 @@ StoragePoolsClient::DeleteStoragePool( return connection_->DeleteStoragePool(request); } +StatusOr +StoragePoolsClient::DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +StoragePoolsClient::DeleteStoragePool( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteStoragePool(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr StoragePoolsClient::GetStoragePool(std::string const& project, std::string const& zone, @@ -133,6 +170,22 @@ StoragePoolsClient::InsertStoragePool( return connection_->InsertStoragePool(request); } +StatusOr +StoragePoolsClient::InsertStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::StoragePool const& storage_pool_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::storage_pools::v1::InsertStoragePoolRequest + request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_storage_pool_resource() = storage_pool_resource; + return connection_->InsertStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> StoragePoolsClient::InsertStoragePool( google::cloud::cpp::compute::storage_pools::v1:: @@ -142,6 +195,26 @@ StoragePoolsClient::InsertStoragePool( return connection_->InsertStoragePool(request); } +StatusOr +StoragePoolsClient::InsertStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +StoragePoolsClient::InsertStoragePool( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertStoragePool(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange StoragePoolsClient::ListStoragePools(std::string const& project, std::string const& zone, Options opts) { @@ -252,6 +325,25 @@ StoragePoolsClient::UpdateStoragePool( return connection_->UpdateStoragePool(request); } +StatusOr +StoragePoolsClient::UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& storage_pool, std::string const& update_mask, + google::cloud::cpp::compute::v1::StoragePool const& storage_pool_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::storage_pools::v1::UpdateStoragePoolRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_storage_pool(storage_pool); + request.set_update_mask(update_mask); + *request.mutable_storage_pool_resource() = storage_pool_resource; + return connection_->UpdateStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> StoragePoolsClient::UpdateStoragePool( google::cloud::cpp::compute::storage_pools::v1:: @@ -261,6 +353,26 @@ StoragePoolsClient::UpdateStoragePool( return connection_->UpdateStoragePool(request); } +StatusOr +StoragePoolsClient::UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +StoragePoolsClient::UpdateStoragePool( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateStoragePool(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_storage_pools_v1 } // namespace cloud diff --git a/google/cloud/compute/storage_pools/v1/storage_pools_client.h b/google/cloud/compute/storage_pools/v1/storage_pools_client.h index fff3a1685a956..98777ee20e7c9 100644 --- a/google/cloud/compute/storage_pools/v1/storage_pools_client.h +++ b/google/cloud/compute/storage_pools/v1/storage_pools_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_STORAGE_POOLS_V1_STORAGE_POOLS_CLIENT_H #include "google/cloud/compute/storage_pools/v1/storage_pools_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class StoragePoolsClient { DeleteStoragePool(std::string const& project, std::string const& zone, std::string const& storage_pool, Options opts = {}); + StatusOr DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& storage_pool, Options opts = {}); + // clang-format off /// /// Deletes the specified storage pool. Deleting a storagePool removes its data @@ -248,6 +255,17 @@ class StoragePoolsClient { DeleteStoragePoolRequest const& request, Options opts = {}); + StatusOr DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + DeleteStoragePoolRequest const& request, + Options opts = {}); + + future> + DeleteStoragePool(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns a specified storage pool. Gets a list of available storage pools by @@ -414,6 +432,12 @@ class StoragePoolsClient { google::cloud::cpp::compute::v1::StoragePool const& storage_pool_resource, Options opts = {}); + StatusOr InsertStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::StoragePool const& storage_pool_resource, + Options opts = {}); + // clang-format off /// /// Creates a storage pool in the specified project using the data in the @@ -454,6 +478,17 @@ class StoragePoolsClient { InsertStoragePoolRequest const& request, Options opts = {}); + StatusOr InsertStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + InsertStoragePoolRequest const& request, + Options opts = {}); + + future> + InsertStoragePool(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of storage pools contained within the specified zone. @@ -789,6 +824,13 @@ class StoragePoolsClient { google::cloud::cpp::compute::v1::StoragePool const& storage_pool_resource, Options opts = {}); + StatusOr UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& storage_pool, std::string const& update_mask, + google::cloud::cpp::compute::v1::StoragePool const& storage_pool_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified storagePool with the data included in the request. @@ -831,6 +873,17 @@ class StoragePoolsClient { UpdateStoragePoolRequest const& request, Options opts = {}); + StatusOr UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::storage_pools::v1:: + UpdateStoragePoolRequest const& request, + Options opts = {}); + + future> + UpdateStoragePool(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..ea878df29080b 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,31 @@ SubnetworksTracingConnection::DeleteSubnetwork( return internal::EndSpan(std::move(span), child_->DeleteSubnetwork(request)); } +StatusOr +SubnetworksTracingConnection::DeleteSubnetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::DeleteSubnetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SubnetworksTracingConnection::ExpandIpCidrRange( google::cloud::cpp::compute::subnetworks::v1:: @@ -68,6 +93,31 @@ SubnetworksTracingConnection::ExpandIpCidrRange( return internal::EndSpan(std::move(span), child_->ExpandIpCidrRange(request)); } +StatusOr +SubnetworksTracingConnection::ExpandIpCidrRange( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::ExpandIpCidrRange( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SubnetworksTracingConnection::GetSubnetwork( google::cloud::cpp::compute::subnetworks::v1::GetSubnetworkRequest const& @@ -98,6 +148,31 @@ SubnetworksTracingConnection::InsertSubnetwork( return internal::EndSpan(std::move(span), child_->InsertSubnetwork(request)); } +StatusOr +SubnetworksTracingConnection::InsertSubnetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::InsertSubnetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SubnetworksTracingConnection::ListSubnetworks( google::cloud::cpp::compute::subnetworks::v1::ListSubnetworksRequest @@ -133,6 +208,31 @@ SubnetworksTracingConnection::PatchSubnetwork( return internal::EndSpan(std::move(span), child_->PatchSubnetwork(request)); } +StatusOr +SubnetworksTracingConnection::PatchSubnetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::PatchSubnetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SubnetworksTracingConnection::SetIamPolicy( google::cloud::cpp::compute::subnetworks::v1::SetIamPolicyRequest const& @@ -155,6 +255,33 @@ SubnetworksTracingConnection::SetPrivateIpGoogleAccess( child_->SetPrivateIpGoogleAccess(request)); } +StatusOr +SubnetworksTracingConnection::SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SubnetworksTracingConnection::SetPrivateIpGoogleAccess( + google::cloud::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( + google::cloud::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..b23b3651bda54 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const& request) override; + + future> DeleteSubnetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation) override; + future> ExpandIpCidrRange(google::cloud::cpp::compute::subnetworks::v1:: ExpandIpCidrRangeRequest const& request) override; + StatusOr ExpandIpCidrRange( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request) override; + + future> + ExpandIpCidrRange( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const& request) override; + + future> InsertSubnetwork( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const& request) override; + + future> PatchSubnetwork( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request) override; + + future> + SetPrivateIpGoogleAccess( + google::cloud::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..cebbc8a55e269 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSubnetwork, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExpandIpCidrRange, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertSubnetwork, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchSubnetwork, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetPrivateIpGoogleAccess, + (google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, TestIamPermissions, diff --git a/google/cloud/compute/subnetworks/v1/subnetworks_client.cc b/google/cloud/compute/subnetworks/v1/subnetworks_client.cc index d8211a4f84d88..0cdbfc46181e2 100644 --- a/google/cloud/compute/subnetworks/v1/subnetworks_client.cc +++ b/google/cloud/compute/subnetworks/v1/subnetworks_client.cc @@ -66,6 +66,22 @@ SubnetworksClient::DeleteSubnetwork(std::string const& project, return connection_->DeleteSubnetwork(request); } +StatusOr +SubnetworksClient::DeleteSubnetwork(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& subnetwork, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::subnetworks::v1::DeleteSubnetworkRequest request; + request.set_project(project); + request.set_region(region); + request.set_subnetwork(subnetwork); + return connection_->DeleteSubnetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SubnetworksClient::DeleteSubnetwork( google::cloud::cpp::compute::subnetworks::v1::DeleteSubnetworkRequest const& @@ -75,6 +91,26 @@ SubnetworksClient::DeleteSubnetwork( return connection_->DeleteSubnetwork(request); } +StatusOr +SubnetworksClient::DeleteSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::DeleteSubnetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSubnetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SubnetworksClient::DeleteSubnetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSubnetwork(google::cloud::ExperimentalTag{}, + operation); +} + future> SubnetworksClient::ExpandIpCidrRange( std::string const& project, std::string const& region, @@ -93,6 +129,26 @@ SubnetworksClient::ExpandIpCidrRange( return connection_->ExpandIpCidrRange(request); } +StatusOr +SubnetworksClient::ExpandIpCidrRange( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& subnetwork, + google::cloud::cpp::compute::v1::SubnetworksExpandIpCidrRangeRequest const& + subnetworks_expand_ip_cidr_range_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::subnetworks::v1::ExpandIpCidrRangeRequest + request; + request.set_project(project); + request.set_region(region); + request.set_subnetwork(subnetwork); + *request.mutable_subnetworks_expand_ip_cidr_range_request_resource() = + subnetworks_expand_ip_cidr_range_request_resource; + return connection_->ExpandIpCidrRange(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SubnetworksClient::ExpandIpCidrRange( google::cloud::cpp::compute::subnetworks::v1:: @@ -102,6 +158,26 @@ SubnetworksClient::ExpandIpCidrRange( return connection_->ExpandIpCidrRange(request); } +StatusOr +SubnetworksClient::ExpandIpCidrRange( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExpandIpCidrRange(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SubnetworksClient::ExpandIpCidrRange( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExpandIpCidrRange(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SubnetworksClient::GetSubnetwork(std::string const& project, std::string const& region, @@ -157,6 +233,21 @@ SubnetworksClient::InsertSubnetwork( return connection_->InsertSubnetwork(request); } +StatusOr +SubnetworksClient::InsertSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Subnetwork const& subnetwork_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::subnetworks::v1::InsertSubnetworkRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_subnetwork_resource() = subnetwork_resource; + return connection_->InsertSubnetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SubnetworksClient::InsertSubnetwork( google::cloud::cpp::compute::subnetworks::v1::InsertSubnetworkRequest const& @@ -166,6 +257,26 @@ SubnetworksClient::InsertSubnetwork( return connection_->InsertSubnetwork(request); } +StatusOr +SubnetworksClient::InsertSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::InsertSubnetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSubnetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SubnetworksClient::InsertSubnetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertSubnetwork(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SubnetworksClient::ListSubnetworks(std::string const& project, std::string const& region, Options opts) { @@ -216,6 +327,23 @@ SubnetworksClient::PatchSubnetwork( return connection_->PatchSubnetwork(request); } +StatusOr +SubnetworksClient::PatchSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& subnetwork, + google::cloud::cpp::compute::v1::Subnetwork const& subnetwork_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::subnetworks::v1::PatchSubnetworkRequest request; + request.set_project(project); + request.set_region(region); + request.set_subnetwork(subnetwork); + *request.mutable_subnetwork_resource() = subnetwork_resource; + return connection_->PatchSubnetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SubnetworksClient::PatchSubnetwork( google::cloud::cpp::compute::subnetworks::v1::PatchSubnetworkRequest const& @@ -225,6 +353,26 @@ SubnetworksClient::PatchSubnetwork( return connection_->PatchSubnetwork(request); } +StatusOr +SubnetworksClient::PatchSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1::PatchSubnetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSubnetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SubnetworksClient::PatchSubnetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchSubnetwork(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SubnetworksClient::SetIamPolicy( std::string const& project, std::string const& region, @@ -270,6 +418,27 @@ SubnetworksClient::SetPrivateIpGoogleAccess( return connection_->SetPrivateIpGoogleAccess(request); } +StatusOr +SubnetworksClient::SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& subnetwork, + google::cloud::cpp::compute::v1:: + SubnetworksSetPrivateIpGoogleAccessRequest const& + subnetworks_set_private_ip_google_access_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::subnetworks::v1::SetPrivateIpGoogleAccessRequest + request; + request.set_project(project); + request.set_region(region); + request.set_subnetwork(subnetwork); + *request.mutable_subnetworks_set_private_ip_google_access_request_resource() = + subnetworks_set_private_ip_google_access_request_resource; + return connection_->SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SubnetworksClient::SetPrivateIpGoogleAccess( google::cloud::cpp::compute::subnetworks::v1:: @@ -279,6 +448,26 @@ SubnetworksClient::SetPrivateIpGoogleAccess( return connection_->SetPrivateIpGoogleAccess(request); } +StatusOr +SubnetworksClient::SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SubnetworksClient::SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetPrivateIpGoogleAccess(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SubnetworksClient::TestIamPermissions( std::string const& project, std::string const& region, diff --git a/google/cloud/compute/subnetworks/v1/subnetworks_client.h b/google/cloud/compute/subnetworks/v1/subnetworks_client.h index 9913c03f4b61a..ac70e379a0da4 100644 --- a/google/cloud/compute/subnetworks/v1/subnetworks_client.h +++ b/google/cloud/compute/subnetworks/v1/subnetworks_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_SUBNETWORKS_V1_SUBNETWORKS_CLIENT_H #include "google/cloud/compute/subnetworks/v1/subnetworks_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class SubnetworksClient { std::string const& project, std::string const& region, std::string const& subnetwork, Options opts = {}); + StatusOr DeleteSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& subnetwork, Options opts = {}); + // clang-format off /// /// Deletes the specified subnetwork. @@ -242,6 +249,17 @@ class SubnetworksClient { DeleteSubnetworkRequest const& request, Options opts = {}); + StatusOr DeleteSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + DeleteSubnetworkRequest const& request, + Options opts = {}); + + future> DeleteSubnetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Expands the IP CIDR range of the subnetwork to a specified value. @@ -282,6 +300,15 @@ class SubnetworksClient { subnetworks_expand_ip_cidr_range_request_resource, Options opts = {}); + StatusOr ExpandIpCidrRange( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& subnetwork, + google::cloud::cpp::compute::v1:: + SubnetworksExpandIpCidrRangeRequest const& + subnetworks_expand_ip_cidr_range_request_resource, + Options opts = {}); + // clang-format off /// /// Expands the IP CIDR range of the subnetwork to a specified value. @@ -321,6 +348,17 @@ class SubnetworksClient { ExpandIpCidrRangeRequest const& request, Options opts = {}); + StatusOr ExpandIpCidrRange( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + ExpandIpCidrRangeRequest const& request, + Options opts = {}); + + future> + ExpandIpCidrRange(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified subnetwork. @@ -484,6 +522,12 @@ class SubnetworksClient { google::cloud::cpp::compute::v1::Subnetwork const& subnetwork_resource, Options opts = {}); + StatusOr InsertSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::Subnetwork const& subnetwork_resource, + Options opts = {}); + // clang-format off /// /// Creates a subnetwork in the specified project using the data included in @@ -524,6 +568,17 @@ class SubnetworksClient { InsertSubnetworkRequest const& request, Options opts = {}); + StatusOr InsertSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + InsertSubnetworkRequest const& request, + Options opts = {}); + + future> InsertSubnetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of subnetworks available to the specified project. @@ -719,6 +774,13 @@ class SubnetworksClient { google::cloud::cpp::compute::v1::Subnetwork const& subnetwork_resource, Options opts = {}); + StatusOr PatchSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& subnetwork, + google::cloud::cpp::compute::v1::Subnetwork const& subnetwork_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified subnetwork with the data included in the request. @@ -761,6 +823,17 @@ class SubnetworksClient { PatchSubnetworkRequest const& request, Options opts = {}); + StatusOr PatchSubnetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + PatchSubnetworkRequest const& request, + Options opts = {}); + + future> PatchSubnetwork( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the access control policy on the specified resource. Replaces any @@ -871,6 +944,15 @@ class SubnetworksClient { subnetworks_set_private_ip_google_access_request_resource, Options opts = {}); + StatusOr SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& subnetwork, + google::cloud::cpp::compute::v1:: + SubnetworksSetPrivateIpGoogleAccessRequest const& + subnetworks_set_private_ip_google_access_request_resource, + Options opts = {}); + // clang-format off /// /// Set whether VMs in this subnet can access Google services without assigning @@ -911,6 +993,18 @@ class SubnetworksClient { SetPrivateIpGoogleAccessRequest const& request, Options opts = {}); + StatusOr SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::subnetworks::v1:: + SetPrivateIpGoogleAccessRequest const& request, + Options opts = {}); + + future> + SetPrivateIpGoogleAccess( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. 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..26c89e23324c2 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,33 @@ TargetGrpcProxiesTracingConnection::DeleteTargetGrpcProxy( child_->DeleteTargetGrpcProxy(request)); } +StatusOr +TargetGrpcProxiesTracingConnection::DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetGrpcProxiesTracingConnection::DeleteTargetGrpcProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TargetGrpcProxiesTracingConnection::GetTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -69,6 +96,33 @@ TargetGrpcProxiesTracingConnection::InsertTargetGrpcProxy( child_->InsertTargetGrpcProxy(request)); } +StatusOr +TargetGrpcProxiesTracingConnection::InsertTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetGrpcProxiesTracingConnection::InsertTargetGrpcProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TargetGrpcProxiesTracingConnection::ListTargetGrpcProxies( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -95,6 +149,33 @@ TargetGrpcProxiesTracingConnection::PatchTargetGrpcProxy( child_->PatchTargetGrpcProxy(request)); } +StatusOr +TargetGrpcProxiesTracingConnection::PatchTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetGrpcProxiesTracingConnection::PatchTargetGrpcProxy( + google::cloud::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( + google::cloud::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..aa93dee6269f2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request) override; + + future> + DeleteTargetGrpcProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request) override; + + future> + InsertTargetGrpcProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request) override; + + future> + PatchTargetGrpcProxy( + google::cloud::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..6cca4af02e56d 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetGrpcProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetGrpcProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchTargetGrpcProxy, + (google::cloud::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_client.cc b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.cc index 2153e41cbb68b..8b69ffb98b2d9 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.cc +++ b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.cc @@ -44,6 +44,20 @@ TargetGrpcProxiesClient::DeleteTargetGrpcProxy( return connection_->DeleteTargetGrpcProxy(request); } +StatusOr +TargetGrpcProxiesClient::DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_grpc_proxy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest request; + request.set_project(project); + request.set_target_grpc_proxy(target_grpc_proxy); + return connection_->DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetGrpcProxiesClient::DeleteTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -53,6 +67,26 @@ TargetGrpcProxiesClient::DeleteTargetGrpcProxy( return connection_->DeleteTargetGrpcProxy(request); } +StatusOr +TargetGrpcProxiesClient::DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetGrpcProxiesClient::DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetGrpcProxy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TargetGrpcProxiesClient::GetTargetGrpcProxy( std::string const& project, std::string const& target_grpc_proxy, @@ -88,6 +122,22 @@ TargetGrpcProxiesClient::InsertTargetGrpcProxy( return connection_->InsertTargetGrpcProxy(request); } +StatusOr +TargetGrpcProxiesClient::InsertTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetGrpcProxy const& + target_grpc_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest request; + request.set_project(project); + *request.mutable_target_grpc_proxy_resource() = target_grpc_proxy_resource; + return connection_->InsertTargetGrpcProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetGrpcProxiesClient::InsertTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -97,6 +147,26 @@ TargetGrpcProxiesClient::InsertTargetGrpcProxy( return connection_->InsertTargetGrpcProxy(request); } +StatusOr +TargetGrpcProxiesClient::InsertTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetGrpcProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetGrpcProxiesClient::InsertTargetGrpcProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetGrpcProxy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TargetGrpcProxiesClient::ListTargetGrpcProxies(std::string const& project, Options opts) { @@ -131,6 +201,23 @@ TargetGrpcProxiesClient::PatchTargetGrpcProxy( return connection_->PatchTargetGrpcProxy(request); } +StatusOr +TargetGrpcProxiesClient::PatchTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_grpc_proxy, + google::cloud::cpp::compute::v1::TargetGrpcProxy const& + target_grpc_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest request; + request.set_project(project); + request.set_target_grpc_proxy(target_grpc_proxy); + *request.mutable_target_grpc_proxy_resource() = target_grpc_proxy_resource; + return connection_->PatchTargetGrpcProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetGrpcProxiesClient::PatchTargetGrpcProxy( google::cloud::cpp::compute::target_grpc_proxies::v1:: @@ -140,6 +227,26 @@ TargetGrpcProxiesClient::PatchTargetGrpcProxy( return connection_->PatchTargetGrpcProxy(request); } +StatusOr +TargetGrpcProxiesClient::PatchTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchTargetGrpcProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetGrpcProxiesClient::PatchTargetGrpcProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchTargetGrpcProxy(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.h index 8efe50d4a1365..705524c230f8e 100644 --- a/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.h +++ b/google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_GRPC_PROXIES_V1_TARGET_GRPC_PROXIES_CLIENT_H #include "google/cloud/compute/target_grpc_proxies/v1/target_grpc_proxies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -122,6 +124,11 @@ class TargetGrpcProxiesClient { std::string const& target_grpc_proxy, Options opts = {}); + StatusOr DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_grpc_proxy, + Options opts = {}); + // clang-format off /// /// Deletes the specified TargetGrpcProxy in the given scope @@ -161,6 +168,18 @@ class TargetGrpcProxiesClient { DeleteTargetGrpcProxyRequest const& request, Options opts = {}); + StatusOr DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + DeleteTargetGrpcProxyRequest const& request, + Options opts = {}); + + future> + DeleteTargetGrpcProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetGrpcProxy resource in the given scope. @@ -259,6 +278,13 @@ class TargetGrpcProxiesClient { target_grpc_proxy_resource, Options opts = {}); + StatusOr InsertTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetGrpcProxy const& + target_grpc_proxy_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetGrpcProxy in the specified project in the given scope using @@ -299,6 +325,18 @@ class TargetGrpcProxiesClient { InsertTargetGrpcProxyRequest const& request, Options opts = {}); + StatusOr InsertTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + InsertTargetGrpcProxyRequest const& request, + Options opts = {}); + + future> + InsertTargetGrpcProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the TargetGrpcProxies for a project in the given scope. @@ -416,6 +454,13 @@ class TargetGrpcProxiesClient { target_grpc_proxy_resource, Options opts = {}); + StatusOr PatchTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_grpc_proxy, + google::cloud::cpp::compute::v1::TargetGrpcProxy const& + target_grpc_proxy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified TargetGrpcProxy resource with the data included in @@ -457,6 +502,18 @@ class TargetGrpcProxiesClient { PatchTargetGrpcProxyRequest const& request, Options opts = {}); + StatusOr PatchTargetGrpcProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_grpc_proxies::v1:: + PatchTargetGrpcProxyRequest const& request, + Options opts = {}); + + future> + PatchTargetGrpcProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..dfe328a95368d 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,33 @@ TargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( child_->DeleteTargetHttpProxy(request)); } +StatusOr +TargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpProxiesTracingConnection::DeleteTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TargetHttpProxiesTracingConnection::GetTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -85,6 +112,33 @@ TargetHttpProxiesTracingConnection::InsertTargetHttpProxy( child_->InsertTargetHttpProxy(request)); } +StatusOr +TargetHttpProxiesTracingConnection::InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpProxiesTracingConnection::InsertTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TargetHttpProxiesTracingConnection::ListTargetHttpProxies( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -111,6 +165,33 @@ TargetHttpProxiesTracingConnection::PatchTargetHttpProxy( child_->PatchTargetHttpProxy(request)); } +StatusOr +TargetHttpProxiesTracingConnection::PatchTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpProxiesTracingConnection::PatchTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> TargetHttpProxiesTracingConnection::SetUrlMap( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -121,6 +202,31 @@ TargetHttpProxiesTracingConnection::SetUrlMap( return internal::EndSpan(std::move(span), child_->SetUrlMap(request)); } +StatusOr +TargetHttpProxiesTracingConnection::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpProxiesTracingConnection::SetUrlMap( + google::cloud::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(google::cloud::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..9cdfc2647df2e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request) override; + + future> + DeleteTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request) override; + + future> + InsertTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request) override; + + future> + PatchTargetHttpProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + google::cloud::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..a4c28472384e5 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetHttpProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetHttpProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchTargetHttpProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUrlMap, + (google::cloud::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_client.cc b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.cc index 1aeab9f6a468d..b5ec4026f8c3b 100644 --- a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.cc +++ b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.cc @@ -65,6 +65,20 @@ TargetHttpProxiesClient::DeleteTargetHttpProxy( return connection_->DeleteTargetHttpProxy(request); } +StatusOr +TargetHttpProxiesClient::DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_http_proxy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest request; + request.set_project(project); + request.set_target_http_proxy(target_http_proxy); + return connection_->DeleteTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpProxiesClient::DeleteTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -74,6 +88,26 @@ TargetHttpProxiesClient::DeleteTargetHttpProxy( return connection_->DeleteTargetHttpProxy(request); } +StatusOr +TargetHttpProxiesClient::DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpProxiesClient::DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetHttpProxy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TargetHttpProxiesClient::GetTargetHttpProxy( std::string const& project, std::string const& target_http_proxy, @@ -109,6 +143,22 @@ TargetHttpProxiesClient::InsertTargetHttpProxy( return connection_->InsertTargetHttpProxy(request); } +StatusOr +TargetHttpProxiesClient::InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetHttpProxy const& + target_http_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest request; + request.set_project(project); + *request.mutable_target_http_proxy_resource() = target_http_proxy_resource; + return connection_->InsertTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpProxiesClient::InsertTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -118,6 +168,26 @@ TargetHttpProxiesClient::InsertTargetHttpProxy( return connection_->InsertTargetHttpProxy(request); } +StatusOr +TargetHttpProxiesClient::InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpProxiesClient::InsertTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetHttpProxy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TargetHttpProxiesClient::ListTargetHttpProxies(std::string const& project, Options opts) { @@ -152,6 +222,23 @@ TargetHttpProxiesClient::PatchTargetHttpProxy( return connection_->PatchTargetHttpProxy(request); } +StatusOr +TargetHttpProxiesClient::PatchTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_http_proxy, + google::cloud::cpp::compute::v1::TargetHttpProxy const& + target_http_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest request; + request.set_project(project); + request.set_target_http_proxy(target_http_proxy); + *request.mutable_target_http_proxy_resource() = target_http_proxy_resource; + return connection_->PatchTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpProxiesClient::PatchTargetHttpProxy( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -161,6 +248,26 @@ TargetHttpProxiesClient::PatchTargetHttpProxy( return connection_->PatchTargetHttpProxy(request); } +StatusOr +TargetHttpProxiesClient::PatchTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchTargetHttpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpProxiesClient::PatchTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchTargetHttpProxy(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetHttpProxiesClient::SetUrlMap( std::string const& project, std::string const& target_http_proxy, @@ -176,6 +283,23 @@ TargetHttpProxiesClient::SetUrlMap( return connection_->SetUrlMap(request); } +StatusOr +TargetHttpProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_http_proxy, + google::cloud::cpp::compute::v1::UrlMapReference const& + url_map_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_http_proxies::v1::SetUrlMapRequest + request; + request.set_project(project); + request.set_target_http_proxy(target_http_proxy); + *request.mutable_url_map_reference_resource() = url_map_reference_resource; + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpProxiesClient::SetUrlMap( google::cloud::cpp::compute::target_http_proxies::v1:: @@ -185,6 +309,25 @@ TargetHttpProxiesClient::SetUrlMap( return connection_->SetUrlMap(request); } +StatusOr +TargetHttpProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.h index b79aed2e5cf4c..6b65a1594e825 100644 --- a/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.h +++ b/google/cloud/compute/target_http_proxies/v1/target_http_proxies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_HTTP_PROXIES_V1_TARGET_HTTP_PROXIES_CLIENT_H #include "google/cloud/compute/target_http_proxies/v1/target_http_proxies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class TargetHttpProxiesClient { std::string const& target_http_proxy, Options opts = {}); + StatusOr DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_http_proxy, + Options opts = {}); + // clang-format off /// /// Deletes the specified TargetHttpProxy resource. @@ -249,6 +256,18 @@ class TargetHttpProxiesClient { DeleteTargetHttpProxyRequest const& request, Options opts = {}); + StatusOr DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + DeleteTargetHttpProxyRequest const& request, + Options opts = {}); + + future> + DeleteTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetHttpProxy resource. @@ -347,6 +366,13 @@ class TargetHttpProxiesClient { target_http_proxy_resource, Options opts = {}); + StatusOr InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetHttpProxy const& + target_http_proxy_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetHttpProxy resource in the specified project using the data @@ -387,6 +413,18 @@ class TargetHttpProxiesClient { InsertTargetHttpProxyRequest const& request, Options opts = {}); + StatusOr InsertTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + InsertTargetHttpProxyRequest const& request, + Options opts = {}); + + future> + InsertTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of TargetHttpProxy resources available to the specified @@ -506,6 +544,13 @@ class TargetHttpProxiesClient { target_http_proxy_resource, Options opts = {}); + StatusOr PatchTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_http_proxy, + google::cloud::cpp::compute::v1::TargetHttpProxy const& + target_http_proxy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified TargetHttpProxy resource with the data included in @@ -547,6 +592,18 @@ class TargetHttpProxiesClient { PatchTargetHttpProxyRequest const& request, Options opts = {}); + StatusOr PatchTargetHttpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + PatchTargetHttpProxyRequest const& request, + Options opts = {}); + + future> + PatchTargetHttpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the URL map for TargetHttpProxy. @@ -584,6 +641,13 @@ class TargetHttpProxiesClient { url_map_reference_resource, Options opts = {}); + StatusOr SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_http_proxy, + google::cloud::cpp::compute::v1::UrlMapReference const& + url_map_reference_resource, + Options opts = {}); + // clang-format off /// /// Changes the URL map for TargetHttpProxy. @@ -623,6 +687,17 @@ class TargetHttpProxiesClient { SetUrlMapRequest const& request, Options opts = {}); + StatusOr SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_http_proxies::v1:: + SetUrlMapRequest const& request, + Options opts = {}); + + future> SetUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..a5e15e43834e2 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,33 @@ TargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( child_->DeleteTargetHttpsProxy(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::DeleteTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TargetHttpsProxiesTracingConnection::GetTargetHttpsProxy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -87,6 +114,33 @@ TargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( child_->InsertTargetHttpsProxy(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::InsertTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TargetHttpsProxiesTracingConnection::ListTargetHttpsProxies( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -113,6 +167,33 @@ TargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( child_->PatchTargetHttpsProxy(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::PatchTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetCertificateMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -124,6 +205,33 @@ TargetHttpsProxiesTracingConnection::SetCertificateMap( return internal::EndSpan(std::move(span), child_->SetCertificateMap(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetCertificateMap( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetQuicOverride( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -135,6 +243,33 @@ TargetHttpsProxiesTracingConnection::SetQuicOverride( return internal::EndSpan(std::move(span), child_->SetQuicOverride(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetQuicOverride( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetQuicOverride( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetSslCertificates( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -147,6 +282,33 @@ TargetHttpsProxiesTracingConnection::SetSslCertificates( child_->SetSslCertificates(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetSslCertificates( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetSslPolicy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -158,6 +320,33 @@ TargetHttpsProxiesTracingConnection::SetSslPolicy( return internal::EndSpan(std::move(span), child_->SetSslPolicy(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetSslPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetHttpsProxiesTracingConnection::SetUrlMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -169,6 +358,33 @@ TargetHttpsProxiesTracingConnection::SetUrlMap( return internal::EndSpan(std::move(span), child_->SetUrlMap(request)); } +StatusOr +TargetHttpsProxiesTracingConnection::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetHttpsProxiesTracingConnection::SetUrlMap( + google::cloud::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(google::cloud::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..a31407d46b54b 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request) override; + + future> + DeleteTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request) override; + + future> + InsertTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request) override; + + future> + PatchTargetHttpsProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request) override; + + future> + SetCertificateMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request) override; + + future> SetQuicOverride( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request) override; + + future> SetSslPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request) override; + + future> SetUrlMap( + google::cloud::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..cb15faaab5f9e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetHttpsProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetHttpsProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + PatchTargetHttpsProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetCertificateMap, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetQuicOverride, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslCertificates, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetUrlMap, + (google::cloud::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_client.cc b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.cc index b17b5d0b969f5..99fa9c09cc962 100644 --- a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.cc +++ b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.cc @@ -66,6 +66,20 @@ TargetHttpsProxiesClient::DeleteTargetHttpsProxy( return connection_->DeleteTargetHttpsProxy(request); } +StatusOr +TargetHttpsProxiesClient::DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest request; + request.set_project(project); + request.set_target_https_proxy(target_https_proxy); + return connection_->DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpsProxiesClient::DeleteTargetHttpsProxy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -75,6 +89,26 @@ TargetHttpsProxiesClient::DeleteTargetHttpsProxy( return connection_->DeleteTargetHttpsProxy(request); } +StatusOr +TargetHttpsProxiesClient::DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpsProxiesClient::DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetHttpsProxy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TargetHttpsProxiesClient::GetTargetHttpsProxy( std::string const& project, std::string const& target_https_proxy, @@ -110,6 +144,22 @@ TargetHttpsProxiesClient::InsertTargetHttpsProxy( return connection_->InsertTargetHttpsProxy(request); } +StatusOr +TargetHttpsProxiesClient::InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetHttpsProxy const& + target_https_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest request; + request.set_project(project); + *request.mutable_target_https_proxy_resource() = target_https_proxy_resource; + return connection_->InsertTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpsProxiesClient::InsertTargetHttpsProxy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -119,6 +169,26 @@ TargetHttpsProxiesClient::InsertTargetHttpsProxy( return connection_->InsertTargetHttpsProxy(request); } +StatusOr +TargetHttpsProxiesClient::InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpsProxiesClient::InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetHttpsProxy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TargetHttpsProxiesClient::ListTargetHttpsProxies(std::string const& project, Options opts) { @@ -153,6 +223,23 @@ TargetHttpsProxiesClient::PatchTargetHttpsProxy( return connection_->PatchTargetHttpsProxy(request); } +StatusOr +TargetHttpsProxiesClient::PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::TargetHttpsProxy const& + target_https_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest request; + request.set_project(project); + request.set_target_https_proxy(target_https_proxy); + *request.mutable_target_https_proxy_resource() = target_https_proxy_resource; + return connection_->PatchTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpsProxiesClient::PatchTargetHttpsProxy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -162,6 +249,26 @@ TargetHttpsProxiesClient::PatchTargetHttpsProxy( return connection_->PatchTargetHttpsProxy(request); } +StatusOr +TargetHttpsProxiesClient::PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchTargetHttpsProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpsProxiesClient::PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchTargetHttpsProxy(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetHttpsProxiesClient::SetCertificateMap( std::string const& project, std::string const& target_https_proxy, @@ -179,6 +286,25 @@ TargetHttpsProxiesClient::SetCertificateMap( return connection_->SetCertificateMap(request); } +StatusOr +TargetHttpsProxiesClient::SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1:: + TargetHttpsProxiesSetCertificateMapRequest const& + target_https_proxies_set_certificate_map_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest request; + request.set_project(project); + request.set_target_https_proxy(target_https_proxy); + *request.mutable_target_https_proxies_set_certificate_map_request_resource() = + target_https_proxies_set_certificate_map_request_resource; + return connection_->SetCertificateMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpsProxiesClient::SetCertificateMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -188,6 +314,26 @@ TargetHttpsProxiesClient::SetCertificateMap( return connection_->SetCertificateMap(request); } +StatusOr +TargetHttpsProxiesClient::SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetCertificateMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpsProxiesClient::SetCertificateMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetCertificateMap(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetHttpsProxiesClient::SetQuicOverride( std::string const& project, std::string const& target_https_proxy, @@ -205,6 +351,25 @@ TargetHttpsProxiesClient::SetQuicOverride( return connection_->SetQuicOverride(request); } +StatusOr +TargetHttpsProxiesClient::SetQuicOverride( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1:: + TargetHttpsProxiesSetQuicOverrideRequest const& + target_https_proxies_set_quic_override_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_https_proxies::v1::SetQuicOverrideRequest + request; + request.set_project(project); + request.set_target_https_proxy(target_https_proxy); + *request.mutable_target_https_proxies_set_quic_override_request_resource() = + target_https_proxies_set_quic_override_request_resource; + return connection_->SetQuicOverride(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpsProxiesClient::SetQuicOverride( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -214,6 +379,26 @@ TargetHttpsProxiesClient::SetQuicOverride( return connection_->SetQuicOverride(request); } +StatusOr +TargetHttpsProxiesClient::SetQuicOverride( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetQuicOverride(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpsProxiesClient::SetQuicOverride( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetQuicOverride(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetHttpsProxiesClient::SetSslCertificates( std::string const& project, std::string const& target_https_proxy, @@ -232,6 +417,26 @@ TargetHttpsProxiesClient::SetSslCertificates( return connection_->SetSslCertificates(request); } +StatusOr +TargetHttpsProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1:: + TargetHttpsProxiesSetSslCertificatesRequest const& + target_https_proxies_set_ssl_certificates_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest request; + request.set_project(project); + request.set_target_https_proxy(target_https_proxy); + *request + .mutable_target_https_proxies_set_ssl_certificates_request_resource() = + target_https_proxies_set_ssl_certificates_request_resource; + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpsProxiesClient::SetSslCertificates( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -241,6 +446,26 @@ TargetHttpsProxiesClient::SetSslCertificates( return connection_->SetSslCertificates(request); } +StatusOr +TargetHttpsProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpsProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetHttpsProxiesClient::SetSslPolicy( std::string const& project, std::string const& target_https_proxy, @@ -257,6 +482,24 @@ TargetHttpsProxiesClient::SetSslPolicy( return connection_->SetSslPolicy(request); } +StatusOr +TargetHttpsProxiesClient::SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::SslPolicyReference const& + ssl_policy_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_https_proxies::v1::SetSslPolicyRequest + request; + request.set_project(project); + request.set_target_https_proxy(target_https_proxy); + *request.mutable_ssl_policy_reference_resource() = + ssl_policy_reference_resource; + return connection_->SetSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpsProxiesClient::SetSslPolicy( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -266,6 +509,25 @@ TargetHttpsProxiesClient::SetSslPolicy( return connection_->SetSslPolicy(request); } +StatusOr +TargetHttpsProxiesClient::SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpsProxiesClient::SetSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslPolicy(google::cloud::ExperimentalTag{}, operation); +} + future> TargetHttpsProxiesClient::SetUrlMap( std::string const& project, std::string const& target_https_proxy, @@ -281,6 +543,23 @@ TargetHttpsProxiesClient::SetUrlMap( return connection_->SetUrlMap(request); } +StatusOr +TargetHttpsProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::UrlMapReference const& + url_map_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_https_proxies::v1::SetUrlMapRequest + request; + request.set_project(project); + request.set_target_https_proxy(target_https_proxy); + *request.mutable_url_map_reference_resource() = url_map_reference_resource; + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetHttpsProxiesClient::SetUrlMap( google::cloud::cpp::compute::target_https_proxies::v1:: @@ -290,6 +569,25 @@ TargetHttpsProxiesClient::SetUrlMap( return connection_->SetUrlMap(request); } +StatusOr +TargetHttpsProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetHttpsProxiesClient::SetUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetUrlMap(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.h index 1fccd61b8a56e..63e6cf18e1d59 100644 --- a/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.h +++ b/google/cloud/compute/target_https_proxies/v1/target_https_proxies_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_HTTPS_PROXIES_V1_TARGET_HTTPS_PROXIES_CLIENT_H #include "google/cloud/compute/target_https_proxies/v1/target_https_proxies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class TargetHttpsProxiesClient { std::string const& target_https_proxy, Options opts = {}); + StatusOr DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + Options opts = {}); + // clang-format off /// /// Deletes the specified TargetHttpsProxy resource. @@ -251,6 +258,18 @@ class TargetHttpsProxiesClient { DeleteTargetHttpsProxyRequest const& request, Options opts = {}); + StatusOr DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + DeleteTargetHttpsProxyRequest const& request, + Options opts = {}); + + future> + DeleteTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetHttpsProxy resource. @@ -350,6 +369,13 @@ class TargetHttpsProxiesClient { target_https_proxy_resource, Options opts = {}); + StatusOr InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetHttpsProxy const& + target_https_proxy_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetHttpsProxy resource in the specified project using the data @@ -390,6 +416,18 @@ class TargetHttpsProxiesClient { InsertTargetHttpsProxyRequest const& request, Options opts = {}); + StatusOr InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + InsertTargetHttpsProxyRequest const& request, + Options opts = {}); + + future> + InsertTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of TargetHttpsProxy resources available to the specified @@ -509,6 +547,13 @@ class TargetHttpsProxiesClient { target_https_proxy_resource, Options opts = {}); + StatusOr PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::TargetHttpsProxy const& + target_https_proxy_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified TargetHttpsProxy resource with the data included in @@ -550,6 +595,18 @@ class TargetHttpsProxiesClient { PatchTargetHttpsProxyRequest const& request, Options opts = {}); + StatusOr PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + PatchTargetHttpsProxyRequest const& request, + Options opts = {}); + + future> + PatchTargetHttpsProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the Certificate Map for TargetHttpsProxy. @@ -590,6 +647,14 @@ class TargetHttpsProxiesClient { target_https_proxies_set_certificate_map_request_resource, Options opts = {}); + StatusOr SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1:: + TargetHttpsProxiesSetCertificateMapRequest const& + target_https_proxies_set_certificate_map_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the Certificate Map for TargetHttpsProxy. @@ -629,6 +694,17 @@ class TargetHttpsProxiesClient { SetCertificateMapRequest const& request, Options opts = {}); + StatusOr SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetCertificateMapRequest const& request, + Options opts = {}); + + future> + SetCertificateMap(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the QUIC override policy for TargetHttpsProxy. @@ -668,6 +744,14 @@ class TargetHttpsProxiesClient { target_https_proxies_set_quic_override_request_resource, Options opts = {}); + StatusOr SetQuicOverride( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1:: + TargetHttpsProxiesSetQuicOverrideRequest const& + target_https_proxies_set_quic_override_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the QUIC override policy for TargetHttpsProxy. @@ -707,6 +791,17 @@ class TargetHttpsProxiesClient { SetQuicOverrideRequest const& request, Options opts = {}); + StatusOr SetQuicOverride( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetQuicOverrideRequest const& request, + Options opts = {}); + + future> SetQuicOverride( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Replaces SslCertificates for TargetHttpsProxy. @@ -747,6 +842,14 @@ class TargetHttpsProxiesClient { target_https_proxies_set_ssl_certificates_request_resource, Options opts = {}); + StatusOr SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1:: + TargetHttpsProxiesSetSslCertificatesRequest const& + target_https_proxies_set_ssl_certificates_request_resource, + Options opts = {}); + // clang-format off /// /// Replaces SslCertificates for TargetHttpsProxy. @@ -786,6 +889,18 @@ class TargetHttpsProxiesClient { SetSslCertificatesRequest const& request, Options opts = {}); + StatusOr SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslCertificatesRequest const& request, + Options opts = {}); + + future> + SetSslCertificates( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the @@ -827,6 +942,13 @@ class TargetHttpsProxiesClient { ssl_policy_reference_resource, Options opts = {}); + StatusOr SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::SslPolicyReference const& + ssl_policy_reference_resource, + Options opts = {}); + // clang-format off /// /// Sets the SSL policy for TargetHttpsProxy. The SSL policy specifies the @@ -869,6 +991,17 @@ class TargetHttpsProxiesClient { SetSslPolicyRequest const& request, Options opts = {}); + StatusOr SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetSslPolicyRequest const& request, + Options opts = {}); + + future> SetSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the URL map for TargetHttpsProxy. @@ -906,6 +1039,13 @@ class TargetHttpsProxiesClient { url_map_reference_resource, Options opts = {}); + StatusOr SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_https_proxy, + google::cloud::cpp::compute::v1::UrlMapReference const& + url_map_reference_resource, + Options opts = {}); + // clang-format off /// /// Changes the URL map for TargetHttpsProxy. @@ -945,6 +1085,17 @@ class TargetHttpsProxiesClient { SetUrlMapRequest const& request, Options opts = {}); + StatusOr SetUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_https_proxies::v1:: + SetUrlMapRequest const& request, + Options opts = {}); + + future> SetUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..3c9aa1c336300 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,33 @@ TargetInstancesTracingConnection::DeleteTargetInstance( child_->DeleteTargetInstance(request)); } +StatusOr +TargetInstancesTracingConnection::DeleteTargetInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetInstancesTracingConnection::DeleteTargetInstance( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TargetInstancesTracingConnection::GetTargetInstance( google::cloud::cpp::compute::target_instances::v1:: @@ -84,6 +111,33 @@ TargetInstancesTracingConnection::InsertTargetInstance( child_->InsertTargetInstance(request)); } +StatusOr +TargetInstancesTracingConnection::InsertTargetInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetInstancesTracingConnection::InsertTargetInstance( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TargetInstancesTracingConnection::ListTargetInstances( google::cloud::cpp::compute::target_instances::v1:: @@ -109,6 +163,33 @@ TargetInstancesTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +TargetInstancesTracingConnection::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetInstancesTracingConnection::SetSecurityPolicy( + google::cloud::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(google::cloud::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..f7ee2c0b6c335 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request) override; + + future> + DeleteTargetInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request) override; + + future> + InsertTargetInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + google::cloud::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..4318219215b76 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (google::cloud::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_client.cc b/google/cloud/compute/target_instances/v1/target_instances_client.cc index 7b4f45fcbb6dd..afe639f1622ff 100644 --- a/google/cloud/compute/target_instances/v1/target_instances_client.cc +++ b/google/cloud/compute/target_instances/v1/target_instances_client.cc @@ -67,6 +67,23 @@ TargetInstancesClient::DeleteTargetInstance(std::string const& project, return connection_->DeleteTargetInstance(request); } +StatusOr +TargetInstancesClient::DeleteTargetInstance(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& zone, + std::string const& target_instance, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_instances::v1::DeleteTargetInstanceRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_target_instance(target_instance); + return connection_->DeleteTargetInstance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetInstancesClient::DeleteTargetInstance( google::cloud::cpp::compute::target_instances::v1:: @@ -76,6 +93,26 @@ TargetInstancesClient::DeleteTargetInstance( return connection_->DeleteTargetInstance(request); } +StatusOr +TargetInstancesClient::DeleteTargetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetInstance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetInstancesClient::DeleteTargetInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetInstance(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TargetInstancesClient::GetTargetInstance(std::string const& project, std::string const& zone, @@ -114,6 +151,23 @@ TargetInstancesClient::InsertTargetInstance( return connection_->InsertTargetInstance(request); } +StatusOr +TargetInstancesClient::InsertTargetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::TargetInstance const& + target_instance_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_instances::v1::InsertTargetInstanceRequest + request; + request.set_project(project); + request.set_zone(zone); + *request.mutable_target_instance_resource() = target_instance_resource; + return connection_->InsertTargetInstance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetInstancesClient::InsertTargetInstance( google::cloud::cpp::compute::target_instances::v1:: @@ -123,6 +177,26 @@ TargetInstancesClient::InsertTargetInstance( return connection_->InsertTargetInstance(request); } +StatusOr +TargetInstancesClient::InsertTargetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetInstance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetInstancesClient::InsertTargetInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetInstance(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TargetInstancesClient::ListTargetInstances(std::string const& project, std::string const& zone, @@ -162,6 +236,26 @@ TargetInstancesClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +TargetInstancesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& target_instance, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_instances::v1::SetSecurityPolicyRequest + request; + request.set_project(project); + request.set_zone(zone); + request.set_target_instance(target_instance); + *request.mutable_security_policy_reference_resource() = + security_policy_reference_resource; + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetInstancesClient::SetSecurityPolicy( google::cloud::cpp::compute::target_instances::v1:: @@ -171,6 +265,26 @@ TargetInstancesClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +TargetInstancesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetInstancesClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_instances_v1 } // namespace cloud diff --git a/google/cloud/compute/target_instances/v1/target_instances_client.h b/google/cloud/compute/target_instances/v1/target_instances_client.h index 62c7653ec1d1a..b4b3930a86d2e 100644 --- a/google/cloud/compute/target_instances/v1/target_instances_client.h +++ b/google/cloud/compute/target_instances/v1/target_instances_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_INSTANCES_V1_TARGET_INSTANCES_CLIENT_H #include "google/cloud/compute/target_instances/v1/target_instances_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class TargetInstancesClient { DeleteTargetInstance(std::string const& project, std::string const& zone, std::string const& target_instance, Options opts = {}); + StatusOr DeleteTargetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& target_instance, Options opts = {}); + // clang-format off /// /// Deletes the specified TargetInstance resource. @@ -245,6 +252,18 @@ class TargetInstancesClient { DeleteTargetInstanceRequest const& request, Options opts = {}); + StatusOr DeleteTargetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + DeleteTargetInstanceRequest const& request, + Options opts = {}); + + future> + DeleteTargetInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetInstance resource. @@ -345,6 +364,13 @@ class TargetInstancesClient { target_instance_resource, Options opts = {}); + StatusOr InsertTargetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + google::cloud::cpp::compute::v1::TargetInstance const& + target_instance_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetInstance resource in the specified project and zone using @@ -385,6 +411,18 @@ class TargetInstancesClient { InsertTargetInstanceRequest const& request, Options opts = {}); + StatusOr InsertTargetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + InsertTargetInstanceRequest const& request, + Options opts = {}); + + future> + InsertTargetInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of TargetInstance resources available to the specified @@ -508,6 +546,14 @@ class TargetInstancesClient { security_policy_reference_resource, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& zone, + std::string const& target_instance, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts = {}); + // clang-format off /// /// Sets the Google Cloud Armor security policy for the specified target @@ -548,6 +594,17 @@ class TargetInstancesClient { SetSecurityPolicyRequest const& request, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_instances::v1:: + SetSecurityPolicyRequest const& request, + Options opts = {}); + + future> + SetSecurityPolicy(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..dc82695fbf55e 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,31 @@ TargetPoolsTracingConnection::AddHealthCheck( return internal::EndSpan(std::move(span), child_->AddHealthCheck(request)); } +StatusOr +TargetPoolsTracingConnection::AddHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::AddHealthCheck( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetPoolsTracingConnection::AddInstance( google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& @@ -53,6 +78,31 @@ TargetPoolsTracingConnection::AddInstance( return internal::EndSpan(std::move(span), child_->AddInstance(request)); } +StatusOr +TargetPoolsTracingConnection::AddInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::AddInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange> TargetPoolsTracingConnection::AggregatedListTargetPools( @@ -78,6 +128,31 @@ TargetPoolsTracingConnection::DeleteTargetPool( return internal::EndSpan(std::move(span), child_->DeleteTargetPool(request)); } +StatusOr +TargetPoolsTracingConnection::DeleteTargetPool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::DeleteTargetPool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TargetPoolsTracingConnection::GetTargetPool( google::cloud::cpp::compute::target_pools::v1::GetTargetPoolRequest const& @@ -108,6 +183,31 @@ TargetPoolsTracingConnection::InsertTargetPool( return internal::EndSpan(std::move(span), child_->InsertTargetPool(request)); } +StatusOr +TargetPoolsTracingConnection::InsertTargetPool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::InsertTargetPool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TargetPoolsTracingConnection::ListTargetPools( google::cloud::cpp::compute::target_pools::v1::ListTargetPoolsRequest @@ -131,6 +231,31 @@ TargetPoolsTracingConnection::RemoveHealthCheck( return internal::EndSpan(std::move(span), child_->RemoveHealthCheck(request)); } +StatusOr +TargetPoolsTracingConnection::RemoveHealthCheck( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::RemoveHealthCheck( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetPoolsTracingConnection::RemoveInstance( google::cloud::cpp::compute::target_pools::v1::RemoveInstanceRequest const& @@ -141,6 +266,31 @@ TargetPoolsTracingConnection::RemoveInstance( return internal::EndSpan(std::move(span), child_->RemoveInstance(request)); } +StatusOr +TargetPoolsTracingConnection::RemoveInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::RemoveInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetPoolsTracingConnection::SetBackup( google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& @@ -151,6 +301,31 @@ TargetPoolsTracingConnection::SetBackup( return internal::EndSpan(std::move(span), child_->SetBackup(request)); } +StatusOr +TargetPoolsTracingConnection::SetBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::SetBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetPoolsTracingConnection::SetSecurityPolicy( google::cloud::cpp::compute::target_pools::v1:: @@ -161,6 +336,31 @@ TargetPoolsTracingConnection::SetSecurityPolicy( return internal::EndSpan(std::move(span), child_->SetSecurityPolicy(request)); } +StatusOr +TargetPoolsTracingConnection::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetPoolsTracingConnection::SetSecurityPolicy( + google::cloud::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(google::cloud::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..6b47eb7918209 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const& request) override; + + future> AddHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request) override; + + future> AddInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request) override; + + future> DeleteTargetPool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request) override; + + future> InsertTargetPool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request) override; + + future> + RemoveHealthCheck( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const& request) override; + + future> RemoveInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request) override; + + future> SetBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request) override; + + future> + SetSecurityPolicy( + google::cloud::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..02932a9a2c529 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddInstance, + (google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange< std::pair, + DeleteTargetPool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetPool, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetPool, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveHealthCheck, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RemoveInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetBackup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSecurityPolicy, + (google::cloud::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_client.cc b/google/cloud/compute/target_pools/v1/target_pools_client.cc index 50559f9487bf0..ffb2e2529eb2f 100644 --- a/google/cloud/compute/target_pools/v1/target_pools_client.cc +++ b/google/cloud/compute/target_pools/v1/target_pools_client.cc @@ -49,6 +49,25 @@ TargetPoolsClient::AddHealthCheck( return connection_->AddHealthCheck(request); } +StatusOr +TargetPoolsClient::AddHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetPoolsAddHealthCheckRequest const& + target_pools_add_health_check_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_pools::v1::AddHealthCheckRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_pool(target_pool); + *request.mutable_target_pools_add_health_check_request_resource() = + target_pools_add_health_check_request_resource; + return connection_->AddHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetPoolsClient::AddHealthCheck( google::cloud::cpp::compute::target_pools::v1::AddHealthCheckRequest const& @@ -58,6 +77,26 @@ TargetPoolsClient::AddHealthCheck( return connection_->AddHealthCheck(request); } +StatusOr +TargetPoolsClient::AddHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddHealthCheckRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetPoolsClient::AddHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetPoolsClient::AddInstance( std::string const& project, std::string const& region, @@ -75,6 +114,25 @@ TargetPoolsClient::AddInstance( return connection_->AddInstance(request); } +StatusOr +TargetPoolsClient::AddInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetPoolsAddInstanceRequest const& + target_pools_add_instance_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_pool(target_pool); + *request.mutable_target_pools_add_instance_request_resource() = + target_pools_add_instance_request_resource; + return connection_->AddInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetPoolsClient::AddInstance( google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& @@ -84,6 +142,25 @@ TargetPoolsClient::AddInstance( return connection_->AddInstance(request); } +StatusOr +TargetPoolsClient::AddInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetPoolsClient::AddInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddInstance(google::cloud::ExperimentalTag{}, operation); +} + StreamRange> TargetPoolsClient::AggregatedListTargetPools(std::string const& project, @@ -119,6 +196,23 @@ TargetPoolsClient::DeleteTargetPool(std::string const& project, return connection_->DeleteTargetPool(request); } +StatusOr +TargetPoolsClient::DeleteTargetPool(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& target_pool, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_pools::v1::DeleteTargetPoolRequest + request; + request.set_project(project); + request.set_region(region); + request.set_target_pool(target_pool); + return connection_->DeleteTargetPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetPoolsClient::DeleteTargetPool( google::cloud::cpp::compute::target_pools::v1:: @@ -128,6 +222,26 @@ TargetPoolsClient::DeleteTargetPool( return connection_->DeleteTargetPool(request); } +StatusOr +TargetPoolsClient::DeleteTargetPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetPoolsClient::DeleteTargetPool( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetPool(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TargetPoolsClient::GetTargetPool(std::string const& project, std::string const& region, @@ -188,6 +302,22 @@ TargetPoolsClient::InsertTargetPool( return connection_->InsertTargetPool(request); } +StatusOr +TargetPoolsClient::InsertTargetPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetPool const& target_pool_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_pools::v1::InsertTargetPoolRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_target_pool_resource() = target_pool_resource; + return connection_->InsertTargetPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetPoolsClient::InsertTargetPool( google::cloud::cpp::compute::target_pools::v1:: @@ -197,6 +327,26 @@ TargetPoolsClient::InsertTargetPool( return connection_->InsertTargetPool(request); } +StatusOr +TargetPoolsClient::InsertTargetPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetPoolsClient::InsertTargetPool( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetPool(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TargetPoolsClient::ListTargetPools(std::string const& project, std::string const& region, Options opts) { @@ -234,6 +384,26 @@ TargetPoolsClient::RemoveHealthCheck( return connection_->RemoveHealthCheck(request); } +StatusOr +TargetPoolsClient::RemoveHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetPoolsRemoveHealthCheckRequest const& + target_pools_remove_health_check_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_pools::v1::RemoveHealthCheckRequest + request; + request.set_project(project); + request.set_region(region); + request.set_target_pool(target_pool); + *request.mutable_target_pools_remove_health_check_request_resource() = + target_pools_remove_health_check_request_resource; + return connection_->RemoveHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetPoolsClient::RemoveHealthCheck( google::cloud::cpp::compute::target_pools::v1:: @@ -243,6 +413,26 @@ TargetPoolsClient::RemoveHealthCheck( return connection_->RemoveHealthCheck(request); } +StatusOr +TargetPoolsClient::RemoveHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveHealthCheck(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetPoolsClient::RemoveHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveHealthCheck(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetPoolsClient::RemoveInstance( std::string const& project, std::string const& region, @@ -260,6 +450,25 @@ TargetPoolsClient::RemoveInstance( return connection_->RemoveInstance(request); } +StatusOr +TargetPoolsClient::RemoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetPoolsRemoveInstanceRequest const& + target_pools_remove_instance_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_pools::v1::RemoveInstanceRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_pool(target_pool); + *request.mutable_target_pools_remove_instance_request_resource() = + target_pools_remove_instance_request_resource; + return connection_->RemoveInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetPoolsClient::RemoveInstance( google::cloud::cpp::compute::target_pools::v1::RemoveInstanceRequest const& @@ -269,6 +478,26 @@ TargetPoolsClient::RemoveInstance( return connection_->RemoveInstance(request); } +StatusOr +TargetPoolsClient::RemoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::RemoveInstanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetPoolsClient::RemoveInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetPoolsClient::SetBackup( std::string const& project, std::string const& region, @@ -285,6 +514,24 @@ TargetPoolsClient::SetBackup( return connection_->SetBackup(request); } +StatusOr +TargetPoolsClient::SetBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetReference const& + target_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_pool(target_pool); + *request.mutable_target_reference_resource() = target_reference_resource; + return connection_->SetBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetPoolsClient::SetBackup( google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& @@ -294,6 +541,25 @@ TargetPoolsClient::SetBackup( return connection_->SetBackup(request); } +StatusOr +TargetPoolsClient::SetBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetPoolsClient::SetBackup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetBackup(google::cloud::ExperimentalTag{}, operation); +} + future> TargetPoolsClient::SetSecurityPolicy( std::string const& project, std::string const& region, @@ -312,6 +578,26 @@ TargetPoolsClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +TargetPoolsClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_pools::v1::SetSecurityPolicyRequest + request; + request.set_project(project); + request.set_region(region); + request.set_target_pool(target_pool); + *request.mutable_security_policy_reference_resource() = + security_policy_reference_resource; + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetPoolsClient::SetSecurityPolicy( google::cloud::cpp::compute::target_pools::v1:: @@ -321,6 +607,26 @@ TargetPoolsClient::SetSecurityPolicy( return connection_->SetSecurityPolicy(request); } +StatusOr +TargetPoolsClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetPoolsClient::SetSecurityPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSecurityPolicy(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_pools_v1 } // namespace cloud diff --git a/google/cloud/compute/target_pools/v1/target_pools_client.h b/google/cloud/compute/target_pools/v1/target_pools_client.h index 12615834273bf..1e6017dc3149c 100644 --- a/google/cloud/compute/target_pools/v1/target_pools_client.h +++ b/google/cloud/compute/target_pools/v1/target_pools_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_POOLS_V1_TARGET_POOLS_CLIENT_H #include "google/cloud/compute/target_pools/v1/target_pools_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,14 @@ class TargetPoolsClient { target_pools_add_health_check_request_resource, Options opts = {}); + StatusOr AddHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetPoolsAddHealthCheckRequest const& + target_pools_add_health_check_request_resource, + Options opts = {}); + // clang-format off /// /// Adds health check URLs to a target pool. @@ -165,6 +175,17 @@ class TargetPoolsClient { AddHealthCheckRequest const& request, Options opts = {}); + StatusOr AddHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + AddHealthCheckRequest const& request, + Options opts = {}); + + future> AddHealthCheck( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds an instance to a target pool. @@ -204,6 +225,14 @@ class TargetPoolsClient { target_pools_add_instance_request_resource, Options opts = {}); + StatusOr AddInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetPoolsAddInstanceRequest const& + target_pools_add_instance_request_resource, + Options opts = {}); + // clang-format off /// /// Adds an instance to a target pool. @@ -243,6 +272,17 @@ class TargetPoolsClient { request, Options opts = {}); + StatusOr AddInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::AddInstanceRequest const& + request, + Options opts = {}); + + future> AddInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves an aggregated list of target pools. To prevent failure, Google @@ -359,6 +399,11 @@ class TargetPoolsClient { std::string const& project, std::string const& region, std::string const& target_pool, Options opts = {}); + StatusOr DeleteTargetPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, Options opts = {}); + // clang-format off /// /// Deletes the specified target pool. @@ -398,6 +443,17 @@ class TargetPoolsClient { DeleteTargetPoolRequest const& request, Options opts = {}); + StatusOr DeleteTargetPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + DeleteTargetPoolRequest const& request, + Options opts = {}); + + future> DeleteTargetPool( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified target pool. @@ -565,6 +621,12 @@ class TargetPoolsClient { google::cloud::cpp::compute::v1::TargetPool const& target_pool_resource, Options opts = {}); + StatusOr InsertTargetPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetPool const& target_pool_resource, + Options opts = {}); + // clang-format off /// /// Creates a target pool in the specified project and region using the data @@ -605,6 +667,17 @@ class TargetPoolsClient { InsertTargetPoolRequest const& request, Options opts = {}); + StatusOr InsertTargetPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + InsertTargetPoolRequest const& request, + Options opts = {}); + + future> InsertTargetPool( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of target pools available to the specified project and @@ -725,6 +798,15 @@ class TargetPoolsClient { target_pools_remove_health_check_request_resource, Options opts = {}); + StatusOr RemoveHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1:: + TargetPoolsRemoveHealthCheckRequest const& + target_pools_remove_health_check_request_resource, + Options opts = {}); + // clang-format off /// /// Removes health check URL from a target pool. @@ -764,6 +846,17 @@ class TargetPoolsClient { RemoveHealthCheckRequest const& request, Options opts = {}); + StatusOr RemoveHealthCheck( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveHealthCheckRequest const& request, + Options opts = {}); + + future> + RemoveHealthCheck(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes instance URL from a target pool. @@ -803,6 +896,14 @@ class TargetPoolsClient { target_pools_remove_instance_request_resource, Options opts = {}); + StatusOr RemoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetPoolsRemoveInstanceRequest const& + target_pools_remove_instance_request_resource, + Options opts = {}); + // clang-format off /// /// Removes instance URL from a target pool. @@ -842,6 +943,17 @@ class TargetPoolsClient { RemoveInstanceRequest const& request, Options opts = {}); + StatusOr RemoveInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + RemoveInstanceRequest const& request, + Options opts = {}); + + future> RemoveInstance( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes a backup target pool's configurations. @@ -881,6 +993,14 @@ class TargetPoolsClient { target_reference_resource, Options opts = {}); + StatusOr SetBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::TargetReference const& + target_reference_resource, + Options opts = {}); + // clang-format off /// /// Changes a backup target pool's configurations. @@ -920,6 +1040,17 @@ class TargetPoolsClient { request, Options opts = {}); + StatusOr SetBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1::SetBackupRequest const& + request, + Options opts = {}); + + future> SetBackup( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the Google Cloud Armor security policy for the specified target pool. @@ -962,6 +1093,14 @@ class TargetPoolsClient { security_policy_reference_resource, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_pool, + google::cloud::cpp::compute::v1::SecurityPolicyReference const& + security_policy_reference_resource, + Options opts = {}); + // clang-format off /// /// Sets the Google Cloud Armor security policy for the specified target pool. @@ -1002,6 +1141,17 @@ class TargetPoolsClient { SetSecurityPolicyRequest const& request, Options opts = {}); + StatusOr SetSecurityPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_pools::v1:: + SetSecurityPolicyRequest const& request, + Options opts = {}); + + future> + SetSecurityPolicy(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..956ab446bb41e 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,33 @@ TargetSslProxiesTracingConnection::DeleteTargetSslProxy( child_->DeleteTargetSslProxy(request)); } +StatusOr +TargetSslProxiesTracingConnection::DeleteTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::DeleteTargetSslProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TargetSslProxiesTracingConnection::GetTargetSslProxy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -69,6 +96,33 @@ TargetSslProxiesTracingConnection::InsertTargetSslProxy( child_->InsertTargetSslProxy(request)); } +StatusOr +TargetSslProxiesTracingConnection::InsertTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::InsertTargetSslProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TargetSslProxiesTracingConnection::ListTargetSslProxies( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -94,6 +148,33 @@ TargetSslProxiesTracingConnection::SetBackendService( return internal::EndSpan(std::move(span), child_->SetBackendService(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetBackendService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetBackendService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetSslProxiesTracingConnection::SetCertificateMap( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -105,6 +186,33 @@ TargetSslProxiesTracingConnection::SetCertificateMap( return internal::EndSpan(std::move(span), child_->SetCertificateMap(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetCertificateMap( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetSslProxiesTracingConnection::SetProxyHeader( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -116,6 +224,33 @@ TargetSslProxiesTracingConnection::SetProxyHeader( return internal::EndSpan(std::move(span), child_->SetProxyHeader(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetProxyHeader( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetSslProxiesTracingConnection::SetSslCertificates( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -128,6 +263,33 @@ TargetSslProxiesTracingConnection::SetSslCertificates( child_->SetSslCertificates(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetSslCertificates( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetSslProxiesTracingConnection::SetSslPolicy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -139,6 +301,33 @@ TargetSslProxiesTracingConnection::SetSslPolicy( return internal::EndSpan(std::move(span), child_->SetSslPolicy(request)); } +StatusOr +TargetSslProxiesTracingConnection::SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetSslProxiesTracingConnection::SetSslPolicy( + google::cloud::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(google::cloud::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..df882e54c10fd 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request) override; + + future> + DeleteTargetSslProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request) override; + + future> + InsertTargetSslProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request) override; + + future> + SetBackendService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request) override; + + future> + SetCertificateMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request) override; + + future> SetProxyHeader( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request) override; + + future> + SetSslCertificates( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request) override; + + future> SetSslPolicy( + google::cloud::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..28c44646a0c7d 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetSslProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetSslProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetBackendService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetCertificateMap, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetProxyHeader, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslCertificates, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetSslPolicy, + (google::cloud::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_client.cc b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.cc index a4a9055dbee13..c0f0e2ad911f9 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.cc +++ b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.cc @@ -44,6 +44,20 @@ TargetSslProxiesClient::DeleteTargetSslProxy( return connection_->DeleteTargetSslProxy(request); } +StatusOr +TargetSslProxiesClient::DeleteTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest request; + request.set_project(project); + request.set_target_ssl_proxy(target_ssl_proxy); + return connection_->DeleteTargetSslProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetSslProxiesClient::DeleteTargetSslProxy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -53,6 +67,26 @@ TargetSslProxiesClient::DeleteTargetSslProxy( return connection_->DeleteTargetSslProxy(request); } +StatusOr +TargetSslProxiesClient::DeleteTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetSslProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetSslProxiesClient::DeleteTargetSslProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetSslProxy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TargetSslProxiesClient::GetTargetSslProxy(std::string const& project, std::string const& target_ssl_proxy, @@ -88,6 +122,22 @@ TargetSslProxiesClient::InsertTargetSslProxy( return connection_->InsertTargetSslProxy(request); } +StatusOr +TargetSslProxiesClient::InsertTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetSslProxy const& + target_ssl_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest request; + request.set_project(project); + *request.mutable_target_ssl_proxy_resource() = target_ssl_proxy_resource; + return connection_->InsertTargetSslProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetSslProxiesClient::InsertTargetSslProxy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -97,6 +147,26 @@ TargetSslProxiesClient::InsertTargetSslProxy( return connection_->InsertTargetSslProxy(request); } +StatusOr +TargetSslProxiesClient::InsertTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetSslProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetSslProxiesClient::InsertTargetSslProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetSslProxy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TargetSslProxiesClient::ListTargetSslProxies(std::string const& project, Options opts) { @@ -133,6 +203,25 @@ TargetSslProxiesClient::SetBackendService( return connection_->SetBackendService(request); } +StatusOr +TargetSslProxiesClient::SetBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1:: + TargetSslProxiesSetBackendServiceRequest const& + target_ssl_proxies_set_backend_service_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_ssl_proxies::v1::SetBackendServiceRequest + request; + request.set_project(project); + request.set_target_ssl_proxy(target_ssl_proxy); + *request.mutable_target_ssl_proxies_set_backend_service_request_resource() = + target_ssl_proxies_set_backend_service_request_resource; + return connection_->SetBackendService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetSslProxiesClient::SetBackendService( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -142,6 +231,26 @@ TargetSslProxiesClient::SetBackendService( return connection_->SetBackendService(request); } +StatusOr +TargetSslProxiesClient::SetBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetBackendService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetSslProxiesClient::SetBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetBackendService(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetSslProxiesClient::SetCertificateMap( std::string const& project, std::string const& target_ssl_proxy, @@ -159,6 +268,25 @@ TargetSslProxiesClient::SetCertificateMap( return connection_->SetCertificateMap(request); } +StatusOr +TargetSslProxiesClient::SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1:: + TargetSslProxiesSetCertificateMapRequest const& + target_ssl_proxies_set_certificate_map_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_ssl_proxies::v1::SetCertificateMapRequest + request; + request.set_project(project); + request.set_target_ssl_proxy(target_ssl_proxy); + *request.mutable_target_ssl_proxies_set_certificate_map_request_resource() = + target_ssl_proxies_set_certificate_map_request_resource; + return connection_->SetCertificateMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetSslProxiesClient::SetCertificateMap( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -168,6 +296,26 @@ TargetSslProxiesClient::SetCertificateMap( return connection_->SetCertificateMap(request); } +StatusOr +TargetSslProxiesClient::SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetCertificateMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetSslProxiesClient::SetCertificateMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetCertificateMap(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetSslProxiesClient::SetProxyHeader( std::string const& project, std::string const& target_ssl_proxy, @@ -185,6 +333,25 @@ TargetSslProxiesClient::SetProxyHeader( return connection_->SetProxyHeader(request); } +StatusOr +TargetSslProxiesClient::SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1:: + TargetSslProxiesSetProxyHeaderRequest const& + target_ssl_proxies_set_proxy_header_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_ssl_proxies::v1::SetProxyHeaderRequest + request; + request.set_project(project); + request.set_target_ssl_proxy(target_ssl_proxy); + *request.mutable_target_ssl_proxies_set_proxy_header_request_resource() = + target_ssl_proxies_set_proxy_header_request_resource; + return connection_->SetProxyHeader(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetSslProxiesClient::SetProxyHeader( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -194,6 +361,26 @@ TargetSslProxiesClient::SetProxyHeader( return connection_->SetProxyHeader(request); } +StatusOr +TargetSslProxiesClient::SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetProxyHeader(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetSslProxiesClient::SetProxyHeader( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetProxyHeader(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetSslProxiesClient::SetSslCertificates( std::string const& project, std::string const& target_ssl_proxy, @@ -211,6 +398,25 @@ TargetSslProxiesClient::SetSslCertificates( return connection_->SetSslCertificates(request); } +StatusOr +TargetSslProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1:: + TargetSslProxiesSetSslCertificatesRequest const& + target_ssl_proxies_set_ssl_certificates_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_ssl_proxies::v1::SetSslCertificatesRequest + request; + request.set_project(project); + request.set_target_ssl_proxy(target_ssl_proxy); + *request.mutable_target_ssl_proxies_set_ssl_certificates_request_resource() = + target_ssl_proxies_set_ssl_certificates_request_resource; + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetSslProxiesClient::SetSslCertificates( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -220,6 +426,26 @@ TargetSslProxiesClient::SetSslCertificates( return connection_->SetSslCertificates(request); } +StatusOr +TargetSslProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetSslProxiesClient::SetSslCertificates( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslCertificates(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetSslProxiesClient::SetSslPolicy( std::string const& project, std::string const& target_ssl_proxy, @@ -236,6 +462,24 @@ TargetSslProxiesClient::SetSslPolicy( return connection_->SetSslPolicy(request); } +StatusOr +TargetSslProxiesClient::SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1::SslPolicyReference const& + ssl_policy_reference_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_ssl_proxies::v1::SetSslPolicyRequest + request; + request.set_project(project); + request.set_target_ssl_proxy(target_ssl_proxy); + *request.mutable_ssl_policy_reference_resource() = + ssl_policy_reference_resource; + return connection_->SetSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetSslProxiesClient::SetSslPolicy( google::cloud::cpp::compute::target_ssl_proxies::v1:: @@ -245,6 +489,25 @@ TargetSslProxiesClient::SetSslPolicy( return connection_->SetSslPolicy(request); } +StatusOr +TargetSslProxiesClient::SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetSslProxiesClient::SetSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSslPolicy(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_target_ssl_proxies_v1 } // namespace cloud diff --git a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.h b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.h index d5ef193b60520..55fa72075ffb7 100644 --- a/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.h +++ b/google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_SSL_PROXIES_V1_TARGET_SSL_PROXIES_CLIENT_H #include "google/cloud/compute/target_ssl_proxies/v1/target_ssl_proxies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -121,6 +123,11 @@ class TargetSslProxiesClient { DeleteTargetSslProxy(std::string const& project, std::string const& target_ssl_proxy, Options opts = {}); + StatusOr DeleteTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + Options opts = {}); + // clang-format off /// /// Deletes the specified TargetSslProxy resource. @@ -160,6 +167,18 @@ class TargetSslProxiesClient { DeleteTargetSslProxyRequest const& request, Options opts = {}); + StatusOr DeleteTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + DeleteTargetSslProxyRequest const& request, + Options opts = {}); + + future> + DeleteTargetSslProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetSslProxy resource. @@ -258,6 +277,13 @@ class TargetSslProxiesClient { target_ssl_proxy_resource, Options opts = {}); + StatusOr InsertTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetSslProxy const& + target_ssl_proxy_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetSslProxy resource in the specified project using the data @@ -298,6 +324,18 @@ class TargetSslProxiesClient { InsertTargetSslProxyRequest const& request, Options opts = {}); + StatusOr InsertTargetSslProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + InsertTargetSslProxyRequest const& request, + Options opts = {}); + + future> + InsertTargetSslProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of TargetSslProxy resources available to the specified @@ -417,6 +455,14 @@ class TargetSslProxiesClient { target_ssl_proxies_set_backend_service_request_resource, Options opts = {}); + StatusOr SetBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1:: + TargetSslProxiesSetBackendServiceRequest const& + target_ssl_proxies_set_backend_service_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the BackendService for TargetSslProxy. @@ -456,6 +502,17 @@ class TargetSslProxiesClient { SetBackendServiceRequest const& request, Options opts = {}); + StatusOr SetBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetBackendServiceRequest const& request, + Options opts = {}); + + future> + SetBackendService(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the Certificate Map for TargetSslProxy. @@ -496,6 +553,14 @@ class TargetSslProxiesClient { target_ssl_proxies_set_certificate_map_request_resource, Options opts = {}); + StatusOr SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1:: + TargetSslProxiesSetCertificateMapRequest const& + target_ssl_proxies_set_certificate_map_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the Certificate Map for TargetSslProxy. @@ -535,6 +600,17 @@ class TargetSslProxiesClient { SetCertificateMapRequest const& request, Options opts = {}); + StatusOr SetCertificateMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetCertificateMapRequest const& request, + Options opts = {}); + + future> + SetCertificateMap(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the ProxyHeaderType for TargetSslProxy. @@ -573,6 +649,14 @@ class TargetSslProxiesClient { target_ssl_proxies_set_proxy_header_request_resource, Options opts = {}); + StatusOr SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1:: + TargetSslProxiesSetProxyHeaderRequest const& + target_ssl_proxies_set_proxy_header_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the ProxyHeaderType for TargetSslProxy. @@ -612,6 +696,17 @@ class TargetSslProxiesClient { SetProxyHeaderRequest const& request, Options opts = {}); + StatusOr SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetProxyHeaderRequest const& request, + Options opts = {}); + + future> SetProxyHeader( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes SslCertificates for TargetSslProxy. @@ -652,6 +747,14 @@ class TargetSslProxiesClient { target_ssl_proxies_set_ssl_certificates_request_resource, Options opts = {}); + StatusOr SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1:: + TargetSslProxiesSetSslCertificatesRequest const& + target_ssl_proxies_set_ssl_certificates_request_resource, + Options opts = {}); + // clang-format off /// /// Changes SslCertificates for TargetSslProxy. @@ -691,6 +794,18 @@ class TargetSslProxiesClient { SetSslCertificatesRequest const& request, Options opts = {}); + StatusOr SetSslCertificates( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslCertificatesRequest const& request, + Options opts = {}); + + future> + SetSslCertificates( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sets the SSL policy for TargetSslProxy. The SSL policy specifies the @@ -732,6 +847,13 @@ class TargetSslProxiesClient { ssl_policy_reference_resource, Options opts = {}); + StatusOr SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_ssl_proxy, + google::cloud::cpp::compute::v1::SslPolicyReference const& + ssl_policy_reference_resource, + Options opts = {}); + // clang-format off /// /// Sets the SSL policy for TargetSslProxy. The SSL policy specifies the @@ -774,6 +896,17 @@ class TargetSslProxiesClient { SetSslPolicyRequest const& request, Options opts = {}); + StatusOr SetSslPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_ssl_proxies::v1:: + SetSslPolicyRequest const& request, + Options opts = {}); + + future> SetSslPolicy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..9a6ac22bb7536 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,33 @@ TargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( child_->DeleteTargetTcpProxy(request)); } +StatusOr +TargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetTcpProxiesTracingConnection::DeleteTargetTcpProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TargetTcpProxiesTracingConnection::GetTargetTcpProxy( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -85,6 +112,33 @@ TargetTcpProxiesTracingConnection::InsertTargetTcpProxy( child_->InsertTargetTcpProxy(request)); } +StatusOr +TargetTcpProxiesTracingConnection::InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetTcpProxiesTracingConnection::InsertTargetTcpProxy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TargetTcpProxiesTracingConnection::ListTargetTcpProxies( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -110,6 +164,33 @@ TargetTcpProxiesTracingConnection::SetBackendService( return internal::EndSpan(std::move(span), child_->SetBackendService(request)); } +StatusOr +TargetTcpProxiesTracingConnection::SetBackendService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetTcpProxiesTracingConnection::SetBackendService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TargetTcpProxiesTracingConnection::SetProxyHeader( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -121,6 +202,33 @@ TargetTcpProxiesTracingConnection::SetProxyHeader( return internal::EndSpan(std::move(span), child_->SetProxyHeader(request)); } +StatusOr +TargetTcpProxiesTracingConnection::SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetTcpProxiesTracingConnection::SetProxyHeader( + google::cloud::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(google::cloud::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..edca94792512f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request) override; + + future> + DeleteTargetTcpProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request) override; + + future> + InsertTargetTcpProxy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request) override; + + future> + SetBackendService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request) override; + + future> SetProxyHeader( + google::cloud::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..a5f9f04ca336a 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetTcpProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetTcpProxy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetBackendService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetProxyHeader, + (google::cloud::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_client.cc b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.cc index c5ab68b748926..8a2f5a7a48274 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.cc +++ b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.cc @@ -65,6 +65,20 @@ TargetTcpProxiesClient::DeleteTargetTcpProxy( return connection_->DeleteTargetTcpProxy(request); } +StatusOr +TargetTcpProxiesClient::DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_tcp_proxy, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest request; + request.set_project(project); + request.set_target_tcp_proxy(target_tcp_proxy); + return connection_->DeleteTargetTcpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetTcpProxiesClient::DeleteTargetTcpProxy( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -74,6 +88,26 @@ TargetTcpProxiesClient::DeleteTargetTcpProxy( return connection_->DeleteTargetTcpProxy(request); } +StatusOr +TargetTcpProxiesClient::DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetTcpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetTcpProxiesClient::DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetTcpProxy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TargetTcpProxiesClient::GetTargetTcpProxy(std::string const& project, std::string const& target_tcp_proxy, @@ -109,6 +143,22 @@ TargetTcpProxiesClient::InsertTargetTcpProxy( return connection_->InsertTargetTcpProxy(request); } +StatusOr +TargetTcpProxiesClient::InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetTcpProxy const& + target_tcp_proxy_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest request; + request.set_project(project); + *request.mutable_target_tcp_proxy_resource() = target_tcp_proxy_resource; + return connection_->InsertTargetTcpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetTcpProxiesClient::InsertTargetTcpProxy( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -118,6 +168,26 @@ TargetTcpProxiesClient::InsertTargetTcpProxy( return connection_->InsertTargetTcpProxy(request); } +StatusOr +TargetTcpProxiesClient::InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetTcpProxy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetTcpProxiesClient::InsertTargetTcpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetTcpProxy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TargetTcpProxiesClient::ListTargetTcpProxies(std::string const& project, Options opts) { @@ -154,6 +224,25 @@ TargetTcpProxiesClient::SetBackendService( return connection_->SetBackendService(request); } +StatusOr +TargetTcpProxiesClient::SetBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_tcp_proxy, + google::cloud::cpp::compute::v1:: + TargetTcpProxiesSetBackendServiceRequest const& + target_tcp_proxies_set_backend_service_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_tcp_proxies::v1::SetBackendServiceRequest + request; + request.set_project(project); + request.set_target_tcp_proxy(target_tcp_proxy); + *request.mutable_target_tcp_proxies_set_backend_service_request_resource() = + target_tcp_proxies_set_backend_service_request_resource; + return connection_->SetBackendService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetTcpProxiesClient::SetBackendService( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -163,6 +252,26 @@ TargetTcpProxiesClient::SetBackendService( return connection_->SetBackendService(request); } +StatusOr +TargetTcpProxiesClient::SetBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetBackendService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetTcpProxiesClient::SetBackendService( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetBackendService(google::cloud::ExperimentalTag{}, + operation); +} + future> TargetTcpProxiesClient::SetProxyHeader( std::string const& project, std::string const& target_tcp_proxy, @@ -180,6 +289,25 @@ TargetTcpProxiesClient::SetProxyHeader( return connection_->SetProxyHeader(request); } +StatusOr +TargetTcpProxiesClient::SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_tcp_proxy, + google::cloud::cpp::compute::v1:: + TargetTcpProxiesSetProxyHeaderRequest const& + target_tcp_proxies_set_proxy_header_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_tcp_proxies::v1::SetProxyHeaderRequest + request; + request.set_project(project); + request.set_target_tcp_proxy(target_tcp_proxy); + *request.mutable_target_tcp_proxies_set_proxy_header_request_resource() = + target_tcp_proxies_set_proxy_header_request_resource; + return connection_->SetProxyHeader(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetTcpProxiesClient::SetProxyHeader( google::cloud::cpp::compute::target_tcp_proxies::v1:: @@ -189,6 +317,26 @@ TargetTcpProxiesClient::SetProxyHeader( return connection_->SetProxyHeader(request); } +StatusOr +TargetTcpProxiesClient::SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetProxyHeader(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetTcpProxiesClient::SetProxyHeader( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetProxyHeader(google::cloud::ExperimentalTag{}, + operation); +} + 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_client.h b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.h index 00be49145385c..5b725e414fddd 100644 --- a/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.h +++ b/google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_TCP_PROXIES_V1_TARGET_TCP_PROXIES_CLIENT_H #include "google/cloud/compute/target_tcp_proxies/v1/target_tcp_proxies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class TargetTcpProxiesClient { DeleteTargetTcpProxy(std::string const& project, std::string const& target_tcp_proxy, Options opts = {}); + StatusOr DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_tcp_proxy, + Options opts = {}); + // clang-format off /// /// Deletes the specified TargetTcpProxy resource. @@ -245,6 +252,18 @@ class TargetTcpProxiesClient { DeleteTargetTcpProxyRequest const& request, Options opts = {}); + StatusOr DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + DeleteTargetTcpProxyRequest const& request, + Options opts = {}); + + future> + DeleteTargetTcpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified TargetTcpProxy resource. @@ -343,6 +362,13 @@ class TargetTcpProxiesClient { target_tcp_proxy_resource, Options opts = {}); + StatusOr InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::TargetTcpProxy const& + target_tcp_proxy_resource, + Options opts = {}); + // clang-format off /// /// Creates a TargetTcpProxy resource in the specified project using the data @@ -383,6 +409,18 @@ class TargetTcpProxiesClient { InsertTargetTcpProxyRequest const& request, Options opts = {}); + StatusOr InsertTargetTcpProxy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + InsertTargetTcpProxyRequest const& request, + Options opts = {}); + + future> + InsertTargetTcpProxy( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of TargetTcpProxy resources available to the specified @@ -502,6 +540,14 @@ class TargetTcpProxiesClient { target_tcp_proxies_set_backend_service_request_resource, Options opts = {}); + StatusOr SetBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_tcp_proxy, + google::cloud::cpp::compute::v1:: + TargetTcpProxiesSetBackendServiceRequest const& + target_tcp_proxies_set_backend_service_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the BackendService for TargetTcpProxy. @@ -541,6 +587,17 @@ class TargetTcpProxiesClient { SetBackendServiceRequest const& request, Options opts = {}); + StatusOr SetBackendService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetBackendServiceRequest const& request, + Options opts = {}); + + future> + SetBackendService(google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Changes the ProxyHeaderType for TargetTcpProxy. @@ -579,6 +636,14 @@ class TargetTcpProxiesClient { target_tcp_proxies_set_proxy_header_request_resource, Options opts = {}); + StatusOr SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& target_tcp_proxy, + google::cloud::cpp::compute::v1:: + TargetTcpProxiesSetProxyHeaderRequest const& + target_tcp_proxies_set_proxy_header_request_resource, + Options opts = {}); + // clang-format off /// /// Changes the ProxyHeaderType for TargetTcpProxy. @@ -618,6 +683,17 @@ class TargetTcpProxiesClient { SetProxyHeaderRequest const& request, Options opts = {}); + StatusOr SetProxyHeader( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_tcp_proxies::v1:: + SetProxyHeaderRequest const& request, + Options opts = {}); + + future> SetProxyHeader( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..8979579824eb4 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,33 @@ TargetVpnGatewaysTracingConnection::DeleteTargetVpnGateway( child_->DeleteTargetVpnGateway(request)); } +StatusOr +TargetVpnGatewaysTracingConnection::DeleteTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetVpnGatewaysTracingConnection::DeleteTargetVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TargetVpnGatewaysTracingConnection::GetTargetVpnGateway( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -85,6 +112,33 @@ TargetVpnGatewaysTracingConnection::InsertTargetVpnGateway( child_->InsertTargetVpnGateway(request)); } +StatusOr +TargetVpnGatewaysTracingConnection::InsertTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetVpnGatewaysTracingConnection::InsertTargetVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TargetVpnGatewaysTracingConnection::ListTargetVpnGateways( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -109,6 +163,31 @@ TargetVpnGatewaysTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +TargetVpnGatewaysTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TargetVpnGatewaysTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..844bee84bace6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request) override; + + future> + DeleteTargetVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request) override; + + future> + InsertTargetVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request) override; + + future> SetLabels( + google::cloud::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..486a688f02da0 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTargetVpnGateway, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertTargetVpnGateway, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.cc b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.cc index 4e175e2b09ee3..18360af38ff76 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.cc +++ b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.cc @@ -66,6 +66,21 @@ TargetVpnGatewaysClient::DeleteTargetVpnGateway( return connection_->DeleteTargetVpnGateway(request); } +StatusOr +TargetVpnGatewaysClient::DeleteTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_vpn_gateway, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest request; + request.set_project(project); + request.set_region(region); + request.set_target_vpn_gateway(target_vpn_gateway); + return connection_->DeleteTargetVpnGateway( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetVpnGatewaysClient::DeleteTargetVpnGateway( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -75,6 +90,26 @@ TargetVpnGatewaysClient::DeleteTargetVpnGateway( return connection_->DeleteTargetVpnGateway(request); } +StatusOr +TargetVpnGatewaysClient::DeleteTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetVpnGateway( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetVpnGatewaysClient::DeleteTargetVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetVpnGateway(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TargetVpnGatewaysClient::GetTargetVpnGateway( std::string const& project, std::string const& region, @@ -112,6 +147,23 @@ TargetVpnGatewaysClient::InsertTargetVpnGateway( return connection_->InsertTargetVpnGateway(request); } +StatusOr +TargetVpnGatewaysClient::InsertTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetVpnGateway const& + target_vpn_gateway_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_target_vpn_gateway_resource() = target_vpn_gateway_resource; + return connection_->InsertTargetVpnGateway( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TargetVpnGatewaysClient::InsertTargetVpnGateway( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -121,6 +173,26 @@ TargetVpnGatewaysClient::InsertTargetVpnGateway( return connection_->InsertTargetVpnGateway(request); } +StatusOr +TargetVpnGatewaysClient::InsertTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetVpnGateway( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TargetVpnGatewaysClient::InsertTargetVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertTargetVpnGateway(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TargetVpnGatewaysClient::ListTargetVpnGateways(std::string const& project, std::string const& region, @@ -160,6 +232,26 @@ TargetVpnGatewaysClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +TargetVpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::target_vpn_gateways::v1::SetLabelsRequest + request; + request.set_project(project); + request.set_region(region); + request.set_resource(resource); + *request.mutable_region_set_labels_request_resource() = + region_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TargetVpnGatewaysClient::SetLabels( google::cloud::cpp::compute::target_vpn_gateways::v1:: @@ -169,6 +261,25 @@ TargetVpnGatewaysClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +TargetVpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TargetVpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + 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_client.h b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.h index 5e61d9e09160e..7067796d25f1b 100644 --- a/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.h +++ b/google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_TARGET_VPN_GATEWAYS_V1_TARGET_VPN_GATEWAYS_CLIENT_H #include "google/cloud/compute/target_vpn_gateways/v1/target_vpn_gateways_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,6 +213,11 @@ class TargetVpnGatewaysClient { std::string const& target_vpn_gateway, Options opts = {}); + StatusOr DeleteTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& target_vpn_gateway, Options opts = {}); + // clang-format off /// /// Deletes the specified target VPN gateway. @@ -250,6 +257,18 @@ class TargetVpnGatewaysClient { DeleteTargetVpnGatewayRequest const& request, Options opts = {}); + StatusOr DeleteTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + DeleteTargetVpnGatewayRequest const& request, + Options opts = {}); + + future> + DeleteTargetVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified target VPN gateway. @@ -351,6 +370,13 @@ class TargetVpnGatewaysClient { target_vpn_gateway_resource, Options opts = {}); + StatusOr InsertTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::TargetVpnGateway const& + target_vpn_gateway_resource, + Options opts = {}); + // clang-format off /// /// Creates a target VPN gateway in the specified project and region using the @@ -391,6 +417,18 @@ class TargetVpnGatewaysClient { InsertTargetVpnGatewayRequest const& request, Options opts = {}); + StatusOr InsertTargetVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + InsertTargetVpnGatewayRequest const& request, + Options opts = {}); + + future> + InsertTargetVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of target VPN gateways available to the specified project @@ -512,6 +550,14 @@ class TargetVpnGatewaysClient { region_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on a TargetVpnGateway. To learn more about labels, read the @@ -552,6 +598,17 @@ class TargetVpnGatewaysClient { SetLabelsRequest const& request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::target_vpn_gateways::v1:: + SetLabelsRequest const& request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..8ee7e0d4532cc 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,31 @@ UrlMapsTracingConnection::DeleteUrlMap( return internal::EndSpan(std::move(span), child_->DeleteUrlMap(request)); } +StatusOr +UrlMapsTracingConnection::DeleteUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::DeleteUrlMap( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr UrlMapsTracingConnection::GetUrlMap( google::cloud::cpp::compute::url_maps::v1::GetUrlMapRequest const& @@ -77,6 +102,31 @@ UrlMapsTracingConnection::InsertUrlMap( return internal::EndSpan(std::move(span), child_->InsertUrlMap(request)); } +StatusOr +UrlMapsTracingConnection::InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::InsertUrlMap( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> UrlMapsTracingConnection::InvalidateCache( google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& @@ -87,6 +137,31 @@ UrlMapsTracingConnection::InvalidateCache( return internal::EndSpan(std::move(span), child_->InvalidateCache(request)); } +StatusOr +UrlMapsTracingConnection::InvalidateCache( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::InvalidateCache( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange UrlMapsTracingConnection::ListUrlMaps( google::cloud::cpp::compute::url_maps::v1::ListUrlMapsRequest request) { @@ -108,6 +183,31 @@ UrlMapsTracingConnection::PatchUrlMap( return internal::EndSpan(std::move(span), child_->PatchUrlMap(request)); } +StatusOr +UrlMapsTracingConnection::PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::PatchUrlMap( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> UrlMapsTracingConnection::UpdateUrlMap( google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& @@ -118,6 +218,31 @@ UrlMapsTracingConnection::UpdateUrlMap( return internal::EndSpan(std::move(span), child_->UpdateUrlMap(request)); } +StatusOr +UrlMapsTracingConnection::UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UrlMapsTracingConnection::UpdateUrlMap( + google::cloud::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(google::cloud::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..80ee8edb31688 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request) override; + + future> DeleteUrlMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request) override; + + future> InsertUrlMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request) override; + + future> InvalidateCache( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request) override; + + future> PatchUrlMap( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request) override; + + future> UpdateUrlMap( + google::cloud::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..c4aa097b31c4f 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteUrlMap, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InsertUrlMap, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InvalidateCache, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request), + (override)); + + MOCK_METHOD(future>, + PatchUrlMap, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateUrlMap, + (google::cloud::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_client.cc b/google/cloud/compute/url_maps/v1/url_maps_client.cc index c543c74bd8545..70d566085948f 100644 --- a/google/cloud/compute/url_maps/v1/url_maps_client.cc +++ b/google/cloud/compute/url_maps/v1/url_maps_client.cc @@ -62,6 +62,19 @@ UrlMapsClient::DeleteUrlMap(std::string const& project, return connection_->DeleteUrlMap(request); } +StatusOr +UrlMapsClient::DeleteUrlMap(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& url_map, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest request; + request.set_project(project); + request.set_url_map(url_map); + return connection_->DeleteUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> UrlMapsClient::DeleteUrlMap( google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& @@ -71,6 +84,25 @@ UrlMapsClient::DeleteUrlMap( return connection_->DeleteUrlMap(request); } +StatusOr +UrlMapsClient::DeleteUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UrlMapsClient::DeleteUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUrlMap(google::cloud::ExperimentalTag{}, operation); +} + StatusOr UrlMapsClient::GetUrlMap( std::string const& project, std::string const& url_map, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -99,6 +131,20 @@ UrlMapsClient::InsertUrlMap( return connection_->InsertUrlMap(request); } +StatusOr +UrlMapsClient::InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest request; + request.set_project(project); + *request.mutable_url_map_resource() = url_map_resource; + return connection_->InsertUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> UrlMapsClient::InsertUrlMap( google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& @@ -108,6 +154,25 @@ UrlMapsClient::InsertUrlMap( return connection_->InsertUrlMap(request); } +StatusOr +UrlMapsClient::InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UrlMapsClient::InsertUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertUrlMap(google::cloud::ExperimentalTag{}, operation); +} + future> UrlMapsClient::InvalidateCache( std::string const& project, std::string const& url_map, @@ -123,6 +188,23 @@ UrlMapsClient::InvalidateCache( return connection_->InvalidateCache(request); } +StatusOr +UrlMapsClient::InvalidateCache( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& url_map, + google::cloud::cpp::compute::v1::CacheInvalidationRule const& + cache_invalidation_rule_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest request; + request.set_project(project); + request.set_url_map(url_map); + *request.mutable_cache_invalidation_rule_resource() = + cache_invalidation_rule_resource; + return connection_->InvalidateCache(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> UrlMapsClient::InvalidateCache( google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& @@ -132,6 +214,26 @@ UrlMapsClient::InvalidateCache( return connection_->InvalidateCache(request); } +StatusOr +UrlMapsClient::InvalidateCache( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InvalidateCache(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UrlMapsClient::InvalidateCache( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InvalidateCache(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange UrlMapsClient::ListUrlMaps( std::string const& project, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -160,6 +262,20 @@ UrlMapsClient::PatchUrlMap( return connection_->PatchUrlMap(request); } +StatusOr UrlMapsClient::PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& url_map, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest request; + request.set_project(project); + request.set_url_map(url_map); + *request.mutable_url_map_resource() = url_map_resource; + return connection_->PatchUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> UrlMapsClient::PatchUrlMap( google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& @@ -169,6 +285,24 @@ UrlMapsClient::PatchUrlMap( return connection_->PatchUrlMap(request); } +StatusOr UrlMapsClient::PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UrlMapsClient::PatchUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PatchUrlMap(google::cloud::ExperimentalTag{}, operation); +} + future> UrlMapsClient::UpdateUrlMap( std::string const& project, std::string const& url_map, @@ -182,6 +316,21 @@ UrlMapsClient::UpdateUrlMap( return connection_->UpdateUrlMap(request); } +StatusOr +UrlMapsClient::UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& url_map, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest request; + request.set_project(project); + request.set_url_map(url_map); + *request.mutable_url_map_resource() = url_map_resource; + return connection_->UpdateUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> UrlMapsClient::UpdateUrlMap( google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& @@ -191,6 +340,25 @@ UrlMapsClient::UpdateUrlMap( return connection_->UpdateUrlMap(request); } +StatusOr +UrlMapsClient::UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateUrlMap(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UrlMapsClient::UpdateUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateUrlMap(google::cloud::ExperimentalTag{}, operation); +} + StatusOr UrlMapsClient::Validate( std::string const& project, std::string const& url_map, diff --git a/google/cloud/compute/url_maps/v1/url_maps_client.h b/google/cloud/compute/url_maps/v1/url_maps_client.h index 36b2649bd5038..3ca9be2115476 100644 --- a/google/cloud/compute/url_maps/v1/url_maps_client.h +++ b/google/cloud/compute/url_maps/v1/url_maps_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_URL_MAPS_V1_URL_MAPS_CLIENT_H #include "google/cloud/compute/url_maps/v1/url_maps_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class UrlMapsClient { std::string const& project, std::string const& url_map, Options opts = {}); + StatusOr DeleteUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& url_map, + Options opts = {}); + // clang-format off /// /// Deletes the specified UrlMap resource. @@ -242,6 +249,17 @@ class UrlMapsClient { request, Options opts = {}); + StatusOr DeleteUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::DeleteUrlMapRequest const& + request, + Options opts = {}); + + future> DeleteUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified UrlMap resource. @@ -339,6 +357,12 @@ class UrlMapsClient { google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, Options opts = {}); + StatusOr InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts = {}); + // clang-format off /// /// Creates a UrlMap resource in the specified project using the data included @@ -379,6 +403,17 @@ class UrlMapsClient { request, Options opts = {}); + StatusOr InsertUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InsertUrlMapRequest const& + request, + Options opts = {}); + + future> InsertUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Initiates a cache invalidation operation, invalidating the specified path, @@ -418,6 +453,13 @@ class UrlMapsClient { cache_invalidation_rule_resource, Options opts = {}); + StatusOr InvalidateCache( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& url_map, + google::cloud::cpp::compute::v1::CacheInvalidationRule const& + cache_invalidation_rule_resource, + Options opts = {}); + // clang-format off /// /// Initiates a cache invalidation operation, invalidating the specified path, @@ -459,6 +501,17 @@ class UrlMapsClient { request, Options opts = {}); + StatusOr InvalidateCache( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::InvalidateCacheRequest const& + request, + Options opts = {}); + + future> InvalidateCache( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the list of UrlMap resources available to the specified project. @@ -573,6 +626,12 @@ class UrlMapsClient { google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, Options opts = {}); + StatusOr PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& url_map, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts = {}); + // clang-format off /// /// Patches the specified UrlMap resource with the data included in the @@ -614,6 +673,17 @@ class UrlMapsClient { request, Options opts = {}); + StatusOr PatchUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::PatchUrlMapRequest const& + request, + Options opts = {}); + + future> PatchUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified UrlMap resource with the data included in the @@ -651,6 +721,12 @@ class UrlMapsClient { google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, Options opts = {}); + StatusOr UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& url_map, + google::cloud::cpp::compute::v1::UrlMap const& url_map_resource, + Options opts = {}); + // clang-format off /// /// Updates the specified UrlMap resource with the data included in the @@ -691,6 +767,17 @@ class UrlMapsClient { request, Options opts = {}); + StatusOr UpdateUrlMap( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::url_maps::v1::UpdateUrlMapRequest const& + request, + Options opts = {}); + + future> UpdateUrlMap( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Runs static validation for the UrlMap. In particular, the tests of the 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..f27d725305952 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,31 @@ VpnGatewaysTracingConnection::DeleteVpnGateway( return internal::EndSpan(std::move(span), child_->DeleteVpnGateway(request)); } +StatusOr +VpnGatewaysTracingConnection::DeleteVpnGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VpnGatewaysTracingConnection::DeleteVpnGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VpnGatewaysTracingConnection::GetVpnGateway( google::cloud::cpp::compute::vpn_gateways::v1::GetVpnGatewayRequest const& @@ -88,6 +113,31 @@ VpnGatewaysTracingConnection::InsertVpnGateway( return internal::EndSpan(std::move(span), child_->InsertVpnGateway(request)); } +StatusOr +VpnGatewaysTracingConnection::InsertVpnGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VpnGatewaysTracingConnection::InsertVpnGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VpnGatewaysTracingConnection::ListVpnGateways( google::cloud::cpp::compute::vpn_gateways::v1::ListVpnGatewaysRequest @@ -111,6 +161,31 @@ VpnGatewaysTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +VpnGatewaysTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VpnGatewaysTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..59fde28412ae3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request) override; + + future> DeleteVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request) override; + + future> InsertVpnGateway( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::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..b2d204b10b9d8 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteVpnGateway, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertVpnGateway, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.cc b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.cc index 23252e87e5997..86fc162eef237 100644 --- a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.cc +++ b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.cc @@ -67,6 +67,23 @@ VpnGatewaysClient::DeleteVpnGateway(std::string const& project, return connection_->DeleteVpnGateway(request); } +StatusOr +VpnGatewaysClient::DeleteVpnGateway(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& vpn_gateway, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::vpn_gateways::v1::DeleteVpnGatewayRequest + request; + request.set_project(project); + request.set_region(region); + request.set_vpn_gateway(vpn_gateway); + return connection_->DeleteVpnGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VpnGatewaysClient::DeleteVpnGateway( google::cloud::cpp::compute::vpn_gateways::v1:: @@ -76,6 +93,26 @@ VpnGatewaysClient::DeleteVpnGateway( return connection_->DeleteVpnGateway(request); } +StatusOr +VpnGatewaysClient::DeleteVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVpnGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VpnGatewaysClient::DeleteVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVpnGateway(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VpnGatewaysClient::GetVpnGateway(std::string const& project, std::string const& region, @@ -132,6 +169,22 @@ VpnGatewaysClient::InsertVpnGateway( return connection_->InsertVpnGateway(request); } +StatusOr +VpnGatewaysClient::InsertVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::VpnGateway const& vpn_gateway_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::vpn_gateways::v1::InsertVpnGatewayRequest + request; + request.set_project(project); + request.set_region(region); + *request.mutable_vpn_gateway_resource() = vpn_gateway_resource; + return connection_->InsertVpnGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VpnGatewaysClient::InsertVpnGateway( google::cloud::cpp::compute::vpn_gateways::v1:: @@ -141,6 +194,26 @@ VpnGatewaysClient::InsertVpnGateway( return connection_->InsertVpnGateway(request); } +StatusOr +VpnGatewaysClient::InsertVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertVpnGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VpnGatewaysClient::InsertVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertVpnGateway(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VpnGatewaysClient::ListVpnGateways(std::string const& project, std::string const& region, Options opts) { @@ -177,6 +250,25 @@ VpnGatewaysClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +VpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest request; + request.set_project(project); + request.set_region(region); + request.set_resource(resource); + *request.mutable_region_set_labels_request_resource() = + region_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VpnGatewaysClient::SetLabels( google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& @@ -186,6 +278,25 @@ VpnGatewaysClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +VpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VpnGatewaysClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + StatusOr VpnGatewaysClient::TestIamPermissions( std::string const& project, std::string const& region, diff --git a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.h b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.h index 5fed28182ebe9..73a6f7bfa1fe2 100644 --- a/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.h +++ b/google/cloud/compute/vpn_gateways/v1/vpn_gateways_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_VPN_GATEWAYS_V1_VPN_GATEWAYS_CLIENT_H #include "google/cloud/compute/vpn_gateways/v1/vpn_gateways_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class VpnGatewaysClient { std::string const& project, std::string const& region, std::string const& vpn_gateway, Options opts = {}); + StatusOr DeleteVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& vpn_gateway, Options opts = {}); + // clang-format off /// /// Deletes the specified VPN gateway. @@ -242,6 +249,17 @@ class VpnGatewaysClient { DeleteVpnGatewayRequest const& request, Options opts = {}); + StatusOr DeleteVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + DeleteVpnGatewayRequest const& request, + Options opts = {}); + + future> DeleteVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified VPN gateway. @@ -404,6 +422,12 @@ class VpnGatewaysClient { google::cloud::cpp::compute::v1::VpnGateway const& vpn_gateway_resource, Options opts = {}); + StatusOr InsertVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::VpnGateway const& vpn_gateway_resource, + Options opts = {}); + // clang-format off /// /// Creates a VPN gateway in the specified project and region using the data @@ -444,6 +468,17 @@ class VpnGatewaysClient { InsertVpnGatewayRequest const& request, Options opts = {}); + StatusOr InsertVpnGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1:: + InsertVpnGatewayRequest const& request, + Options opts = {}); + + future> InsertVpnGateway( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of VPN gateways available to the specified project and @@ -564,6 +599,14 @@ class VpnGatewaysClient { region_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on a VpnGateway. To learn more about labels, read the @@ -604,6 +647,17 @@ class VpnGatewaysClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_gateways::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns permissions that a caller has on the specified resource. 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..1c3e676bbebc4 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,31 @@ VpnTunnelsTracingConnection::DeleteVpnTunnel( return internal::EndSpan(std::move(span), child_->DeleteVpnTunnel(request)); } +StatusOr +VpnTunnelsTracingConnection::DeleteVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VpnTunnelsTracingConnection::DeleteVpnTunnel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VpnTunnelsTracingConnection::GetVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::GetVpnTunnelRequest const& @@ -77,6 +102,31 @@ VpnTunnelsTracingConnection::InsertVpnTunnel( return internal::EndSpan(std::move(span), child_->InsertVpnTunnel(request)); } +StatusOr +VpnTunnelsTracingConnection::InsertVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VpnTunnelsTracingConnection::InsertVpnTunnel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VpnTunnelsTracingConnection::ListVpnTunnels( google::cloud::cpp::compute::vpn_tunnels::v1::ListVpnTunnelsRequest @@ -100,6 +150,31 @@ VpnTunnelsTracingConnection::SetLabels( return internal::EndSpan(std::move(span), child_->SetLabels(request)); } +StatusOr +VpnTunnelsTracingConnection::SetLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VpnTunnelsTracingConnection::SetLabels( + google::cloud::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(google::cloud::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..14735cf2762c1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + DeleteVpnTunnelRequest const& request) override; + + future> DeleteVpnTunnel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + InsertVpnTunnelRequest const& request) override; + + future> InsertVpnTunnel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request) override; + + future> SetLabels( + google::cloud::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..ff8c2ef1d055d 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + DeleteVpnTunnelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteVpnTunnel, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + InsertVpnTunnelRequest const& request), + (override)); + + MOCK_METHOD(future>, + InsertVpnTunnel, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetLabels, + (google::cloud::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_client.cc b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.cc index e667ae546a92c..d2f927d7d2b2f 100644 --- a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.cc +++ b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.cc @@ -65,6 +65,21 @@ VpnTunnelsClient::DeleteVpnTunnel(std::string const& project, return connection_->DeleteVpnTunnel(request); } +StatusOr +VpnTunnelsClient::DeleteVpnTunnel(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project, + std::string const& region, + std::string const& vpn_tunnel, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::vpn_tunnels::v1::DeleteVpnTunnelRequest request; + request.set_project(project); + request.set_region(region); + request.set_vpn_tunnel(vpn_tunnel); + return connection_->DeleteVpnTunnel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VpnTunnelsClient::DeleteVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::DeleteVpnTunnelRequest const& @@ -74,6 +89,26 @@ VpnTunnelsClient::DeleteVpnTunnel( return connection_->DeleteVpnTunnel(request); } +StatusOr +VpnTunnelsClient::DeleteVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::DeleteVpnTunnelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVpnTunnel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VpnTunnelsClient::DeleteVpnTunnel( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVpnTunnel(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VpnTunnelsClient::GetVpnTunnel(std::string const& project, std::string const& region, @@ -108,6 +143,21 @@ VpnTunnelsClient::InsertVpnTunnel( return connection_->InsertVpnTunnel(request); } +StatusOr +VpnTunnelsClient::InsertVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::VpnTunnel const& vpn_tunnel_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::vpn_tunnels::v1::InsertVpnTunnelRequest request; + request.set_project(project); + request.set_region(region); + *request.mutable_vpn_tunnel_resource() = vpn_tunnel_resource; + return connection_->InsertVpnTunnel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VpnTunnelsClient::InsertVpnTunnel( google::cloud::cpp::compute::vpn_tunnels::v1::InsertVpnTunnelRequest const& @@ -117,6 +167,26 @@ VpnTunnelsClient::InsertVpnTunnel( return connection_->InsertVpnTunnel(request); } +StatusOr +VpnTunnelsClient::InsertVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::InsertVpnTunnelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertVpnTunnel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VpnTunnelsClient::InsertVpnTunnel( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InsertVpnTunnel(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VpnTunnelsClient::ListVpnTunnels(std::string const& project, std::string const& region, Options opts) { @@ -152,6 +222,25 @@ VpnTunnelsClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +VpnTunnelsClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest request; + request.set_project(project); + request.set_region(region); + request.set_resource(resource); + *request.mutable_region_set_labels_request_resource() = + region_set_labels_request_resource; + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VpnTunnelsClient::SetLabels( google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& @@ -161,6 +250,25 @@ VpnTunnelsClient::SetLabels( return connection_->SetLabels(request); } +StatusOr +VpnTunnelsClient::SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VpnTunnelsClient::SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetLabels(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace compute_vpn_tunnels_v1 } // namespace cloud diff --git a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.h b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.h index 1b1a19d1cabac..e9e9de350a6b2 100644 --- a/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.h +++ b/google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_VPN_TUNNELS_V1_VPN_TUNNELS_CLIENT_H #include "google/cloud/compute/vpn_tunnels/v1/vpn_tunnels_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,6 +203,11 @@ class VpnTunnelsClient { std::string const& project, std::string const& region, std::string const& vpn_tunnel, Options opts = {}); + StatusOr DeleteVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& vpn_tunnel, Options opts = {}); + // clang-format off /// /// Deletes the specified VpnTunnel resource. @@ -240,6 +247,17 @@ class VpnTunnelsClient { DeleteVpnTunnelRequest const& request, Options opts = {}); + StatusOr DeleteVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + DeleteVpnTunnelRequest const& request, + Options opts = {}); + + future> DeleteVpnTunnel( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified VpnTunnel resource. @@ -339,6 +357,12 @@ class VpnTunnelsClient { google::cloud::cpp::compute::v1::VpnTunnel const& vpn_tunnel_resource, Options opts = {}); + StatusOr InsertVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + google::cloud::cpp::compute::v1::VpnTunnel const& vpn_tunnel_resource, + Options opts = {}); + // clang-format off /// /// Creates a VpnTunnel resource in the specified project and region using the @@ -379,6 +403,17 @@ class VpnTunnelsClient { InsertVpnTunnelRequest const& request, Options opts = {}); + StatusOr InsertVpnTunnel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1:: + InsertVpnTunnelRequest const& request, + Options opts = {}); + + future> InsertVpnTunnel( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a list of VpnTunnel resources contained in the specified project @@ -499,6 +534,14 @@ class VpnTunnelsClient { region_set_labels_request_resource, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project, std::string const& region, + std::string const& resource, + google::cloud::cpp::compute::v1::RegionSetLabelsRequest const& + region_set_labels_request_resource, + Options opts = {}); + // clang-format off /// /// Sets the labels on a VpnTunnel. To learn more about labels, read the @@ -539,6 +582,17 @@ class VpnTunnelsClient { request, Options opts = {}); + StatusOr SetLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::cpp::compute::vpn_tunnels::v1::SetLabelsRequest const& + request, + Options opts = {}); + + future> SetLabels( + google::cloud::ExperimentalTag, + google::cloud::cpp::compute::v1::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/compute/zone_operations/v1/zone_operations_client.h index b9b6ec6ff21b3..4267c9e7411aa 100644 --- a/google/cloud/compute/zone_operations/v1/zone_operations_client.h +++ b/google/cloud/compute/zone_operations/v1/zone_operations_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ZONE_OPERATIONS_V1_ZONE_OPERATIONS_CLIENT_H #include "google/cloud/compute/zone_operations/v1/zone_operations_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/compute/zones/v1/zones_client.h index d74cb70837b79..79b54b752a568 100644 --- a/google/cloud/compute/zones/v1/zones_client.h +++ b/google/cloud/compute/zones/v1/zones_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_COMPUTE_ZONES_V1_ZONES_CLIENT_H #include "google/cloud/compute/zones/v1/zones_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/confidentialcomputing/v1/confidential_computing_client.h index 244ea6d65be24..91e6ba94c95c4 100644 --- a/google/cloud/confidentialcomputing/v1/confidential_computing_client.h +++ b/google/cloud/confidentialcomputing/v1/confidential_computing_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONFIDENTIALCOMPUTING_V1_CONFIDENTIAL_COMPUTING_CLIENT_H #include "google/cloud/confidentialcomputing/v1/confidential_computing_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/config/v1/config_client.cc index f0c6c3a333c64..21356a45923ea 100644 --- a/google/cloud/config/v1/config_client.cc +++ b/google/cloud/config/v1/config_client.cc @@ -75,6 +75,20 @@ ConfigClient::CreateDeployment( return connection_->CreateDeployment(request); } +StatusOr ConfigClient::CreateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::config::v1::Deployment const& deployment, + std::string const& deployment_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::config::v1::CreateDeploymentRequest request; + request.set_parent(parent); + *request.mutable_deployment() = deployment; + request.set_deployment_id(deployment_id); + return connection_->CreateDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigClient::CreateDeployment( google::cloud::config::v1::CreateDeploymentRequest const& request, @@ -83,6 +97,24 @@ ConfigClient::CreateDeployment( return connection_->CreateDeployment(request); } +StatusOr ConfigClient::CreateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigClient::CreateDeployment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDeployment(google::cloud::ExperimentalTag{}, + operation); +} + future> ConfigClient::UpdateDeployment( google::cloud::config::v1::Deployment const& deployment, @@ -94,6 +126,18 @@ ConfigClient::UpdateDeployment( return connection_->UpdateDeployment(request); } +StatusOr ConfigClient::UpdateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::Deployment const& deployment, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::config::v1::UpdateDeploymentRequest request; + *request.mutable_deployment() = deployment; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigClient::UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request, @@ -102,6 +146,24 @@ ConfigClient::UpdateDeployment( return connection_->UpdateDeployment(request); } +StatusOr ConfigClient::UpdateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigClient::UpdateDeployment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDeployment(google::cloud::ExperimentalTag{}, + operation); +} + future> ConfigClient::DeleteDeployment(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -110,6 +172,16 @@ ConfigClient::DeleteDeployment(std::string const& name, Options opts) { return connection_->DeleteDeployment(request); } +StatusOr ConfigClient::DeleteDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::config::v1::DeleteDeploymentRequest request; + request.set_name(name); + return connection_->DeleteDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigClient::DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request, @@ -118,6 +190,24 @@ ConfigClient::DeleteDeployment( return connection_->DeleteDeployment(request); } +StatusOr ConfigClient::DeleteDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigClient::DeleteDeployment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDeployment(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ConfigClient::ListRevisions( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -230,6 +320,16 @@ ConfigClient::LockDeployment(std::string const& name, Options opts) { return connection_->LockDeployment(request); } +StatusOr ConfigClient::LockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::config::v1::LockDeploymentRequest request; + request.set_name(name); + return connection_->LockDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigClient::LockDeployment( google::cloud::config::v1::LockDeploymentRequest const& request, @@ -238,6 +338,24 @@ ConfigClient::LockDeployment( return connection_->LockDeployment(request); } +StatusOr ConfigClient::LockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LockDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigClient::LockDeployment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LockDeployment(google::cloud::ExperimentalTag{}, + operation); +} + future> ConfigClient::UnlockDeployment(std::string const& name, std::int64_t lock_id, Options opts) { @@ -248,6 +366,17 @@ ConfigClient::UnlockDeployment(std::string const& name, std::int64_t lock_id, return connection_->UnlockDeployment(request); } +StatusOr ConfigClient::UnlockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::int64_t lock_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::config::v1::UnlockDeploymentRequest request; + request.set_name(name); + request.set_lock_id(lock_id); + return connection_->UnlockDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigClient::UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request, @@ -256,6 +385,24 @@ ConfigClient::UnlockDeployment( return connection_->UnlockDeployment(request); } +StatusOr ConfigClient::UnlockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UnlockDeployment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigClient::UnlockDeployment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UnlockDeployment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ConfigClient::ExportLockInfo( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -282,6 +429,18 @@ ConfigClient::CreatePreview(std::string const& parent, return connection_->CreatePreview(request); } +StatusOr ConfigClient::CreatePreview( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::config::v1::Preview const& preview, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::config::v1::CreatePreviewRequest request; + request.set_parent(parent); + *request.mutable_preview() = preview; + return connection_->CreatePreview(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigClient::CreatePreview( google::cloud::config::v1::CreatePreviewRequest const& request, @@ -290,6 +449,24 @@ ConfigClient::CreatePreview( return connection_->CreatePreview(request); } +StatusOr ConfigClient::CreatePreview( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePreview(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigClient::CreatePreview(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePreview(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ConfigClient::GetPreview( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -326,6 +503,16 @@ ConfigClient::DeletePreview(std::string const& name, Options opts) { return connection_->DeletePreview(request); } +StatusOr ConfigClient::DeletePreview( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::config::v1::DeletePreviewRequest request; + request.set_name(name); + return connection_->DeletePreview(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigClient::DeletePreview( google::cloud::config::v1::DeletePreviewRequest const& request, @@ -334,6 +521,24 @@ ConfigClient::DeletePreview( return connection_->DeletePreview(request); } +StatusOr ConfigClient::DeletePreview( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePreview(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigClient::DeletePreview(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePreview(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ConfigClient::ExportPreviewResult( google::cloud::config::v1::ExportPreviewResultRequest const& request, diff --git a/google/cloud/config/v1/config_client.h b/google/cloud/config/v1/config_client.h index 1dc0b636576d6..8ad28eafb92e9 100644 --- a/google/cloud/config/v1/config_client.h +++ b/google/cloud/config/v1/config_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONFIG_V1_CONFIG_CLIENT_H #include "google/cloud/config/v1/config_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -259,6 +261,12 @@ class ConfigClient { google::cloud::config::v1::Deployment const& deployment, std::string const& deployment_id, Options opts = {}); + StatusOr CreateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::config::v1::Deployment const& deployment, + std::string const& deployment_id, Options opts = {}); + // clang-format off /// /// Creates a [Deployment][google.cloud.config.v1.Deployment]. @@ -297,6 +305,15 @@ class ConfigClient { google::cloud::config::v1::CreateDeploymentRequest const& request, Options opts = {}); + StatusOr CreateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request, + Options opts = {}); + + future> CreateDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a [Deployment][google.cloud.config.v1.Deployment]. @@ -340,6 +357,11 @@ class ConfigClient { google::cloud::config::v1::Deployment const& deployment, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::Deployment const& deployment, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a [Deployment][google.cloud.config.v1.Deployment]. @@ -378,6 +400,15 @@ class ConfigClient { google::cloud::config::v1::UpdateDeploymentRequest const& request, Options opts = {}); + StatusOr UpdateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request, + Options opts = {}); + + future> UpdateDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a [Deployment][google.cloud.config.v1.Deployment]. @@ -411,6 +442,10 @@ class ConfigClient { future> DeleteDeployment( std::string const& name, Options opts = {}); + StatusOr DeleteDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a [Deployment][google.cloud.config.v1.Deployment]. @@ -449,6 +484,15 @@ class ConfigClient { google::cloud::config::v1::DeleteDeploymentRequest const& request, Options opts = {}); + StatusOr DeleteDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request, + Options opts = {}); + + future> DeleteDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists [Revision][google.cloud.config.v1.Revision]s of a deployment. @@ -925,6 +969,10 @@ class ConfigClient { future> LockDeployment( std::string const& name, Options opts = {}); + StatusOr LockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Locks a deployment. @@ -963,6 +1011,15 @@ class ConfigClient { google::cloud::config::v1::LockDeploymentRequest const& request, Options opts = {}); + StatusOr LockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request, + Options opts = {}); + + future> LockDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Unlocks a locked deployment. @@ -997,6 +1054,10 @@ class ConfigClient { future> UnlockDeployment( std::string const& name, std::int64_t lock_id, Options opts = {}); + StatusOr UnlockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::int64_t lock_id, Options opts = {}); + // clang-format off /// /// Unlocks a locked deployment. @@ -1035,6 +1096,15 @@ class ConfigClient { google::cloud::config::v1::UnlockDeploymentRequest const& request, Options opts = {}); + StatusOr UnlockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request, + Options opts = {}); + + future> UnlockDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Exports the lock info on a locked deployment. @@ -1127,6 +1197,11 @@ class ConfigClient { std::string const& parent, google::cloud::config::v1::Preview const& preview, Options opts = {}); + StatusOr CreatePreview( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::config::v1::Preview const& preview, Options opts = {}); + // clang-format off /// /// Creates a [Preview][google.cloud.config.v1.Preview]. @@ -1165,6 +1240,15 @@ class ConfigClient { google::cloud::config::v1::CreatePreviewRequest const& request, Options opts = {}); + StatusOr CreatePreview( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request, + Options opts = {}); + + future> CreatePreview( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets details about a [Preview][google.cloud.config.v1.Preview]. @@ -1332,6 +1416,10 @@ class ConfigClient { future> DeletePreview( std::string const& name, Options opts = {}); + StatusOr DeletePreview( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a [Preview][google.cloud.config.v1.Preview]. @@ -1370,6 +1458,15 @@ class ConfigClient { google::cloud::config::v1::DeletePreviewRequest const& request, Options opts = {}); + StatusOr DeletePreview( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request, + Options opts = {}); + + future> DeletePreview( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Export [Preview][google.cloud.config.v1.Preview] results. 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..2f7f3586a64ff 100644 --- a/google/cloud/config/v1/internal/config_connection_impl.cc +++ b/google/cloud/config/v1/internal/config_connection_impl.cc @@ -149,6 +149,58 @@ ConfigConnectionImpl::CreateDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::CreateDeployment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +240,58 @@ ConfigConnectionImpl::UpdateDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::UpdateDeployment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +331,58 @@ ConfigConnectionImpl::DeleteDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::DeleteDeployment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +574,57 @@ ConfigConnectionImpl::LockDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::LockDeployment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +664,58 @@ ConfigConnectionImpl::UnlockDeployment( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::UnlockDeployment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +769,57 @@ ConfigConnectionImpl::CreatePreview( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::CreatePreview( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +906,57 @@ ConfigConnectionImpl::DeletePreview( polling_policy(*current), __func__); } +StatusOr ConfigConnectionImpl::DeletePreview( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..ddf3e229b700a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request) + override; + + future> CreateDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request) override; + StatusOr UpdateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request) + override; + + future> UpdateDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request) override; + StatusOr DeleteDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request) + override; + + future> DeleteDeployment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request) override; + + future> LockDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request) override; + StatusOr UnlockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request) + override; + + future> UnlockDeployment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request) override; + + future> CreatePreview( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request) override; + + future> DeletePreview( + google::cloud::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..74393a4e808c7 100644 --- a/google/cloud/config/v1/internal/config_tracing_connection.cc +++ b/google/cloud/config/v1/internal/config_tracing_connection.cc @@ -61,6 +61,30 @@ ConfigTracingConnection::CreateDeployment( return internal::EndSpan(std::move(span), child_->CreateDeployment(request)); } +StatusOr +ConfigTracingConnection::CreateDeployment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::CreateDeployment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ConfigTracingConnection::UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request) { @@ -70,6 +94,30 @@ ConfigTracingConnection::UpdateDeployment( return internal::EndSpan(std::move(span), child_->UpdateDeployment(request)); } +StatusOr +ConfigTracingConnection::UpdateDeployment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::UpdateDeployment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ConfigTracingConnection::DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request) { @@ -79,6 +127,30 @@ ConfigTracingConnection::DeleteDeployment( return internal::EndSpan(std::move(span), child_->DeleteDeployment(request)); } +StatusOr +ConfigTracingConnection::DeleteDeployment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::DeleteDeployment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ConfigTracingConnection::ListRevisions( google::cloud::config::v1::ListRevisionsRequest request) { @@ -159,6 +231,28 @@ ConfigTracingConnection::LockDeployment( return internal::EndSpan(std::move(span), child_->LockDeployment(request)); } +StatusOr +ConfigTracingConnection::LockDeployment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::LockDeployment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ConfigTracingConnection::UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request) { @@ -168,6 +262,30 @@ ConfigTracingConnection::UnlockDeployment( return internal::EndSpan(std::move(span), child_->UnlockDeployment(request)); } +StatusOr +ConfigTracingConnection::UnlockDeployment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::UnlockDeployment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ConfigTracingConnection::ExportLockInfo( google::cloud::config::v1::ExportLockInfoRequest const& request) { @@ -184,6 +302,27 @@ ConfigTracingConnection::CreatePreview( return internal::EndSpan(std::move(span), child_->CreatePreview(request)); } +StatusOr ConfigTracingConnection::CreatePreview( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::CreatePreview( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ConfigTracingConnection::GetPreview( google::cloud::config::v1::GetPreviewRequest const& request) { @@ -210,6 +349,27 @@ ConfigTracingConnection::DeletePreview( return internal::EndSpan(std::move(span), child_->DeletePreview(request)); } +StatusOr ConfigTracingConnection::DeletePreview( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigTracingConnection::DeletePreview( + google::cloud::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(google::cloud::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..10b67f8a1194f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request) + override; + + future> CreateDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDeployment( google::cloud::config::v1::UpdateDeploymentRequest const& request) override; + StatusOr UpdateDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request) + override; + + future> UpdateDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDeployment( google::cloud::config::v1::DeleteDeploymentRequest const& request) override; + StatusOr DeleteDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request) + override; + + future> DeleteDeployment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request) override; + + future> LockDeployment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UnlockDeployment( google::cloud::config::v1::UnlockDeploymentRequest const& request) override; + StatusOr UnlockDeployment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request) + override; + + future> UnlockDeployment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request) override; + + future> CreatePreview( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request) override; + + future> DeletePreview( + google::cloud::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..7966dd905008a 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreateDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDeployment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDeployment, (google::cloud::config::v1::UpdateDeploymentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDeployment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UpdateDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDeployment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDeployment, (google::cloud::config::v1::DeleteDeploymentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDeployment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeleteDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDeployment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::LockDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + LockDeployment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UnlockDeployment, (google::cloud::config::v1::UnlockDeploymentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UnlockDeployment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::UnlockDeploymentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UnlockDeployment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::CreatePreviewRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreatePreview, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::config::v1::DeletePreviewRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePreview, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ExportPreviewResult, diff --git a/google/cloud/connectors/v1/connectors_client.cc b/google/cloud/connectors/v1/connectors_client.cc index b45385b0848fe..47bce9f221724 100644 --- a/google/cloud/connectors/v1/connectors_client.cc +++ b/google/cloud/connectors/v1/connectors_client.cc @@ -77,6 +77,20 @@ ConnectorsClient::CreateConnection( return connection_->CreateConnection(request); } +StatusOr ConnectorsClient::CreateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::connectors::v1::Connection const& connection, + std::string const& connection_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::connectors::v1::CreateConnectionRequest request; + request.set_parent(parent); + *request.mutable_connection() = connection; + request.set_connection_id(connection_id); + return connection_->CreateConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConnectorsClient::CreateConnection( google::cloud::connectors::v1::CreateConnectionRequest const& request, @@ -85,6 +99,24 @@ ConnectorsClient::CreateConnection( return connection_->CreateConnection(request); } +StatusOr ConnectorsClient::CreateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConnectorsClient::CreateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> ConnectorsClient::UpdateConnection( google::cloud::connectors::v1::Connection const& connection, @@ -96,6 +128,18 @@ ConnectorsClient::UpdateConnection( return connection_->UpdateConnection(request); } +StatusOr ConnectorsClient::UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::Connection const& connection, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::connectors::v1::UpdateConnectionRequest request; + *request.mutable_connection() = connection; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConnectorsClient::UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request, @@ -104,6 +148,24 @@ ConnectorsClient::UpdateConnection( return connection_->UpdateConnection(request); } +StatusOr ConnectorsClient::UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConnectorsClient::UpdateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> ConnectorsClient::DeleteConnection(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -112,6 +174,16 @@ ConnectorsClient::DeleteConnection(std::string const& name, Options opts) { return connection_->DeleteConnection(request); } +StatusOr ConnectorsClient::DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::connectors::v1::DeleteConnectionRequest request; + request.set_name(name); + return connection_->DeleteConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConnectorsClient::DeleteConnection( google::cloud::connectors::v1::DeleteConnectionRequest const& request, @@ -120,6 +192,24 @@ ConnectorsClient::DeleteConnection( return connection_->DeleteConnection(request); } +StatusOr ConnectorsClient::DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConnectorsClient::DeleteConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnection(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ConnectorsClient::ListProviders(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -242,6 +332,17 @@ ConnectorsClient::RefreshConnectionSchemaMetadata(std::string const& name, return connection_->RefreshConnectionSchemaMetadata(request); } +StatusOr +ConnectorsClient::RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::connectors::v1::RefreshConnectionSchemaMetadataRequest request; + request.set_name(name); + return connection_->RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConnectorsClient::RefreshConnectionSchemaMetadata( google::cloud::connectors::v1::RefreshConnectionSchemaMetadataRequest const& @@ -251,6 +352,26 @@ ConnectorsClient::RefreshConnectionSchemaMetadata( return connection_->RefreshConnectionSchemaMetadata(request); } +StatusOr +ConnectorsClient::RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::RefreshConnectionSchemaMetadataRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConnectorsClient::RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange ConnectorsClient::ListRuntimeEntitySchemas(std::string const& parent, Options opts) { diff --git a/google/cloud/connectors/v1/connectors_client.h b/google/cloud/connectors/v1/connectors_client.h index 922d4adb827e5..4e9e08bf91f3d 100644 --- a/google/cloud/connectors/v1/connectors_client.h +++ b/google/cloud/connectors/v1/connectors_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONNECTORS_V1_CONNECTORS_CLIENT_H #include "google/cloud/connectors/v1/connectors_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -255,6 +257,12 @@ class ConnectorsClient { google::cloud::connectors::v1::Connection const& connection, std::string const& connection_id, Options opts = {}); + StatusOr CreateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::connectors::v1::Connection const& connection, + std::string const& connection_id, Options opts = {}); + // clang-format off /// /// Creates a new Connection in a given project and location. @@ -293,6 +301,15 @@ class ConnectorsClient { google::cloud::connectors::v1::CreateConnectionRequest const& request, Options opts = {}); + StatusOr CreateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request, + Options opts = {}); + + future> CreateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Connection. @@ -342,6 +359,11 @@ class ConnectorsClient { google::cloud::connectors::v1::Connection const& connection, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::Connection const& connection, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Connection. @@ -380,6 +402,15 @@ class ConnectorsClient { google::cloud::connectors::v1::UpdateConnectionRequest const& request, Options opts = {}); + StatusOr UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request, + Options opts = {}); + + future> UpdateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Connection. @@ -413,6 +444,10 @@ class ConnectorsClient { future> DeleteConnection(std::string const& name, Options opts = {}); + StatusOr DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Connection. @@ -452,6 +487,16 @@ class ConnectorsClient { google::cloud::connectors::v1::DeleteConnectionRequest const& request, Options opts = {}); + StatusOr DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request, + Options opts = {}); + + future> + DeleteConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Providers in a given project and location. @@ -951,6 +996,10 @@ class ConnectorsClient { future> RefreshConnectionSchemaMetadata(std::string const& name, Options opts = {}); + StatusOr RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Refresh runtime schema of a connection. @@ -991,6 +1040,17 @@ class ConnectorsClient { RefreshConnectionSchemaMetadataRequest const& request, Options opts = {}); + StatusOr RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request, + Options opts = {}); + + future> + RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// List schema of a runtime entities filtered by entity name. 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..5255fcba295d8 100644 --- a/google/cloud/connectors/v1/internal/connectors_connection_impl.cc +++ b/google/cloud/connectors/v1/internal/connectors_connection_impl.cc @@ -153,6 +153,60 @@ ConnectorsConnectionImpl::CreateConnection( polling_policy(*current), __func__); } +StatusOr +ConnectorsConnectionImpl::CreateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +247,60 @@ ConnectorsConnectionImpl::UpdateConnection( polling_policy(*current), __func__); } +StatusOr +ConnectorsConnectionImpl::UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +341,60 @@ ConnectorsConnectionImpl::DeleteConnection( polling_policy(*current), __func__); } +StatusOr +ConnectorsConnectionImpl::DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +601,62 @@ ConnectorsConnectionImpl::RefreshConnectionSchemaMetadata( polling_policy(*current), __func__); } +StatusOr +ConnectorsConnectionImpl::RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..debb3c892ff53 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request) + override; + + future> CreateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request) override; + StatusOr UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request) + override; + + future> UpdateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnection(google::cloud::connectors::v1::DeleteConnectionRequest const& request) override; + StatusOr DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request) + override; + + future> + DeleteConnection(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request) override; + + future> + RefreshConnectionSchemaMetadata( + google::cloud::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..5e51899c26cdb 100644 --- a/google/cloud/connectors/v1/internal/connectors_tracing_connection.cc +++ b/google/cloud/connectors/v1/internal/connectors_tracing_connection.cc @@ -63,6 +63,30 @@ ConnectorsTracingConnection::CreateConnection( return internal::EndSpan(std::move(span), child_->CreateConnection(request)); } +StatusOr +ConnectorsTracingConnection::CreateConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConnectorsTracingConnection::CreateConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ConnectorsTracingConnection::UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request) { @@ -72,6 +96,30 @@ ConnectorsTracingConnection::UpdateConnection( return internal::EndSpan(std::move(span), child_->UpdateConnection(request)); } +StatusOr +ConnectorsTracingConnection::UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConnectorsTracingConnection::UpdateConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ConnectorsTracingConnection::DeleteConnection( google::cloud::connectors::v1::DeleteConnectionRequest const& request) { @@ -81,6 +129,30 @@ ConnectorsTracingConnection::DeleteConnection( return internal::EndSpan(std::move(span), child_->DeleteConnection(request)); } +StatusOr +ConnectorsTracingConnection::DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConnectorsTracingConnection::DeleteConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ConnectorsTracingConnection::ListProviders( google::cloud::connectors::v1::ListProvidersRequest request) { @@ -163,6 +235,31 @@ ConnectorsTracingConnection::RefreshConnectionSchemaMetadata( child_->RefreshConnectionSchemaMetadata(request)); } +StatusOr +ConnectorsTracingConnection::RefreshConnectionSchemaMetadata( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConnectorsTracingConnection::RefreshConnectionSchemaMetadata( + google::cloud::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( + google::cloud::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..fbabb88d1013c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request) + override; + + future> CreateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnection( google::cloud::connectors::v1::UpdateConnectionRequest const& request) override; + StatusOr UpdateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request) + override; + + future> UpdateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnection(google::cloud::connectors::v1::DeleteConnectionRequest const& request) override; + StatusOr DeleteConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request) + override; + + future> + DeleteConnection(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request) override; + + future> + RefreshConnectionSchemaMetadata( + google::cloud::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..fb5994023b61c 100644 --- a/google/cloud/connectors/v1/mocks/mock_connectors_connection.h +++ b/google/cloud/connectors/v1/mocks/mock_connectors_connection.h @@ -62,18 +62,55 @@ class MockConnectorsConnection : public connectors_v1::ConnectorsConnection { (google::cloud::connectors::v1::CreateConnectionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::CreateConnectionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConnection, (google::cloud::connectors::v1::UpdateConnectionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::UpdateConnectionRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnection, (google::cloud::connectors::v1::DeleteConnectionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1::DeleteConnectionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListProviders, (google::cloud::connectors::v1::ListProvidersRequest request), @@ -120,6 +157,20 @@ class MockConnectorsConnection : public connectors_v1::ConnectorsConnection { RefreshConnectionSchemaMetadataRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RefreshConnectionSchemaMetadata, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::connectors::v1:: + RefreshConnectionSchemaMetadataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RefreshConnectionSchemaMetadata, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRuntimeEntitySchemas, diff --git a/google/cloud/contactcenterinsights/v1/contact_center_insights_client.cc b/google/cloud/contactcenterinsights/v1/contact_center_insights_client.cc index db8ded385c52b..3d47177d2099a 100644 --- a/google/cloud/contactcenterinsights/v1/contact_center_insights_client.cc +++ b/google/cloud/contactcenterinsights/v1/contact_center_insights_client.cc @@ -63,6 +63,26 @@ ContactCenterInsightsClient::UploadConversation( return connection_->UploadConversation(request); } +StatusOr +ContactCenterInsightsClient::UploadConversation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UploadConversation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::UploadConversation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UploadConversation(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ContactCenterInsightsClient::UpdateConversation( google::cloud::contactcenterinsights::v1::Conversation const& conversation, @@ -146,6 +166,20 @@ ContactCenterInsightsClient::CreateAnalysis( return connection_->CreateAnalysis(request); } +StatusOr +ContactCenterInsightsClient::CreateAnalysis( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::contactcenterinsights::v1::Analysis const& analysis, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest request; + request.set_parent(parent); + *request.mutable_analysis() = analysis; + return connection_->CreateAnalysis(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::CreateAnalysis( google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& @@ -155,6 +189,26 @@ ContactCenterInsightsClient::CreateAnalysis( return connection_->CreateAnalysis(request); } +StatusOr +ContactCenterInsightsClient::CreateAnalysis( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAnalysis(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::CreateAnalysis( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAnalysis(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ContactCenterInsightsClient::GetAnalysis(std::string const& name, Options opts) { @@ -220,6 +274,21 @@ ContactCenterInsightsClient::BulkAnalyzeConversations(std::string const& parent, return connection_->BulkAnalyzeConversations(request); } +StatusOr +ContactCenterInsightsClient::BulkAnalyzeConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& filter, + float analysis_percentage, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::BulkAnalyzeConversationsRequest + request; + request.set_parent(parent); + request.set_filter(filter); + request.set_analysis_percentage(analysis_percentage); + return connection_->BulkAnalyzeConversations( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::BulkAnalyzeConversations( @@ -230,6 +299,27 @@ ContactCenterInsightsClient::BulkAnalyzeConversations( return connection_->BulkAnalyzeConversations(request); } +StatusOr +ContactCenterInsightsClient::BulkAnalyzeConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkAnalyzeConversations( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::BulkAnalyzeConversations( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkAnalyzeConversations(google::cloud::ExperimentalTag{}, + operation); +} + future> ContactCenterInsightsClient::BulkDeleteConversations(std::string const& parent, @@ -243,6 +333,19 @@ ContactCenterInsightsClient::BulkDeleteConversations(std::string const& parent, return connection_->BulkDeleteConversations(request); } +StatusOr +ContactCenterInsightsClient::BulkDeleteConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& filter, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::BulkDeleteConversationsRequest + request; + request.set_parent(parent); + request.set_filter(filter); + return connection_->BulkDeleteConversations( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::BulkDeleteConversations( @@ -253,6 +356,27 @@ ContactCenterInsightsClient::BulkDeleteConversations( return connection_->BulkDeleteConversations(request); } +StatusOr +ContactCenterInsightsClient::BulkDeleteConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkDeleteConversations( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::BulkDeleteConversations( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkDeleteConversations(google::cloud::ExperimentalTag{}, + operation); +} + future> ContactCenterInsightsClient::IngestConversations(std::string const& parent, @@ -263,6 +387,18 @@ ContactCenterInsightsClient::IngestConversations(std::string const& parent, return connection_->IngestConversations(request); } +StatusOr +ContactCenterInsightsClient::IngestConversations(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& parent, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::IngestConversationsRequest request; + request.set_parent(parent); + return connection_->IngestConversations(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::IngestConversations( @@ -273,6 +409,27 @@ ContactCenterInsightsClient::IngestConversations( return connection_->IngestConversations(request); } +StatusOr +ContactCenterInsightsClient::IngestConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::IngestConversationsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->IngestConversations(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::IngestConversations( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->IngestConversations(google::cloud::ExperimentalTag{}, + operation); +} + future> ContactCenterInsightsClient::ExportInsightsData(std::string const& parent, @@ -283,6 +440,18 @@ ContactCenterInsightsClient::ExportInsightsData(std::string const& parent, return connection_->ExportInsightsData(request); } +StatusOr +ContactCenterInsightsClient::ExportInsightsData(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& parent, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest request; + request.set_parent(parent); + return connection_->ExportInsightsData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::ExportInsightsData( @@ -293,6 +462,27 @@ ContactCenterInsightsClient::ExportInsightsData( return connection_->ExportInsightsData(request); } +StatusOr +ContactCenterInsightsClient::ExportInsightsData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportInsightsData(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::ExportInsightsData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportInsightsData(google::cloud::ExperimentalTag{}, + operation); +} + future> ContactCenterInsightsClient::CreateIssueModel( std::string const& parent, @@ -305,6 +495,20 @@ ContactCenterInsightsClient::CreateIssueModel( return connection_->CreateIssueModel(request); } +StatusOr +ContactCenterInsightsClient::CreateIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::contactcenterinsights::v1::IssueModel const& issue_model, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest request; + request.set_parent(parent); + *request.mutable_issue_model() = issue_model; + return connection_->CreateIssueModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& @@ -314,6 +518,26 @@ ContactCenterInsightsClient::CreateIssueModel( return connection_->CreateIssueModel(request); } +StatusOr +ContactCenterInsightsClient::CreateIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateIssueModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::CreateIssueModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateIssueModel(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ContactCenterInsightsClient::UpdateIssueModel( google::cloud::contactcenterinsights::v1::IssueModel const& issue_model, @@ -380,6 +604,18 @@ ContactCenterInsightsClient::DeleteIssueModel(std::string const& name, return connection_->DeleteIssueModel(request); } +StatusOr +ContactCenterInsightsClient::DeleteIssueModel(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest request; + request.set_name(name); + return connection_->DeleteIssueModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::DeleteIssueModel( @@ -390,6 +626,27 @@ ContactCenterInsightsClient::DeleteIssueModel( return connection_->DeleteIssueModel(request); } +StatusOr +ContactCenterInsightsClient::DeleteIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteIssueModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::DeleteIssueModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteIssueModel(google::cloud::ExperimentalTag{}, + operation); +} + future> ContactCenterInsightsClient::DeployIssueModel(std::string const& name, @@ -400,6 +657,18 @@ ContactCenterInsightsClient::DeployIssueModel(std::string const& name, return connection_->DeployIssueModel(request); } +StatusOr +ContactCenterInsightsClient::DeployIssueModel(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest request; + request.set_name(name); + return connection_->DeployIssueModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::DeployIssueModel( @@ -410,6 +679,27 @@ ContactCenterInsightsClient::DeployIssueModel( return connection_->DeployIssueModel(request); } +StatusOr +ContactCenterInsightsClient::DeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployIssueModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::DeployIssueModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployIssueModel(google::cloud::ExperimentalTag{}, + operation); +} + future> ContactCenterInsightsClient::UndeployIssueModel(std::string const& name, @@ -420,6 +710,18 @@ ContactCenterInsightsClient::UndeployIssueModel(std::string const& name, return connection_->UndeployIssueModel(request); } +StatusOr +ContactCenterInsightsClient::UndeployIssueModel(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest request; + request.set_name(name); + return connection_->UndeployIssueModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ContactCenterInsightsClient::UndeployIssueModel( @@ -430,6 +732,27 @@ ContactCenterInsightsClient::UndeployIssueModel( return connection_->UndeployIssueModel(request); } +StatusOr +ContactCenterInsightsClient::UndeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployIssueModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ContactCenterInsightsClient::UndeployIssueModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployIssueModel(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ContactCenterInsightsClient::GetIssue(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/contactcenterinsights/v1/contact_center_insights_client.h b/google/cloud/contactcenterinsights/v1/contact_center_insights_client.h index 5c5503b45d29f..982a60b0b5cf7 100644 --- a/google/cloud/contactcenterinsights/v1/contact_center_insights_client.h +++ b/google/cloud/contactcenterinsights/v1/contact_center_insights_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTACTCENTERINSIGHTS_V1_CONTACT_CENTER_INSIGHTS_CLIENT_H #include "google/cloud/contactcenterinsights/v1/contact_center_insights_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,6 +203,17 @@ class ContactCenterInsightsClient { request, Options opts = {}); + StatusOr UploadConversation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request, + Options opts = {}); + + future> + UploadConversation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a conversation. @@ -484,6 +497,12 @@ class ContactCenterInsightsClient { google::cloud::contactcenterinsights::v1::Analysis const& analysis, Options opts = {}); + StatusOr CreateAnalysis( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::contactcenterinsights::v1::Analysis const& analysis, + Options opts = {}); + // clang-format off /// /// Creates an analysis. The long running operation is done when the analysis @@ -525,6 +544,17 @@ class ContactCenterInsightsClient { request, Options opts = {}); + StatusOr CreateAnalysis( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request, + Options opts = {}); + + future> + CreateAnalysis(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets an analysis. @@ -743,6 +773,11 @@ class ContactCenterInsightsClient { BulkAnalyzeConversations(std::string const& parent, std::string const& filter, float analysis_percentage, Options opts = {}); + StatusOr BulkAnalyzeConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& filter, + float analysis_percentage, Options opts = {}); + // clang-format off /// /// Analyzes multiple conversations in a single request. @@ -783,6 +818,18 @@ class ContactCenterInsightsClient { BulkAnalyzeConversationsRequest const& request, Options opts = {}); + StatusOr BulkAnalyzeConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request, + Options opts = {}); + + future> + BulkAnalyzeConversations(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes multiple conversations in a single request. @@ -820,6 +867,10 @@ class ContactCenterInsightsClient { BulkDeleteConversations(std::string const& parent, std::string const& filter, Options opts = {}); + StatusOr BulkDeleteConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& filter, Options opts = {}); + // clang-format off /// /// Deletes multiple conversations in a single request. @@ -860,6 +911,18 @@ class ContactCenterInsightsClient { BulkDeleteConversationsRequest const& request, Options opts = {}); + StatusOr BulkDeleteConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request, + Options opts = {}); + + future> + BulkDeleteConversations(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports conversations and processes them according to the user's @@ -894,6 +957,10 @@ class ContactCenterInsightsClient { google::cloud::contactcenterinsights::v1::IngestConversationsResponse>> IngestConversations(std::string const& parent, Options opts = {}); + StatusOr IngestConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Imports conversations and processes them according to the user's @@ -935,6 +1002,18 @@ class ContactCenterInsightsClient { IngestConversationsRequest const& request, Options opts = {}); + StatusOr IngestConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request, + Options opts = {}); + + future> + IngestConversations(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Export insights data to a destination defined in the request body. @@ -968,6 +1047,10 @@ class ContactCenterInsightsClient { google::cloud::contactcenterinsights::v1::ExportInsightsDataResponse>> ExportInsightsData(std::string const& parent, Options opts = {}); + StatusOr ExportInsightsData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Export insights data to a destination defined in the request body. @@ -1009,6 +1092,18 @@ class ContactCenterInsightsClient { request, Options opts = {}); + StatusOr ExportInsightsData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request, + Options opts = {}); + + future> + ExportInsightsData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates an issue model. @@ -1045,6 +1140,12 @@ class ContactCenterInsightsClient { google::cloud::contactcenterinsights::v1::IssueModel const& issue_model, Options opts = {}); + StatusOr CreateIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::contactcenterinsights::v1::IssueModel const& issue_model, + Options opts = {}); + // clang-format off /// /// Creates an issue model. @@ -1085,6 +1186,17 @@ class ContactCenterInsightsClient { request, Options opts = {}); + StatusOr CreateIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request, + Options opts = {}); + + future> + CreateIssueModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an issue model. @@ -1294,6 +1406,10 @@ class ContactCenterInsightsClient { google::cloud::contactcenterinsights::v1::DeleteIssueModelMetadata>> DeleteIssueModel(std::string const& name, Options opts = {}); + StatusOr DeleteIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an issue model. @@ -1335,6 +1451,18 @@ class ContactCenterInsightsClient { request, Options opts = {}); + StatusOr DeleteIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request, + Options opts = {}); + + future> + DeleteIssueModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deploys an issue model. Returns an error if a model is already deployed. @@ -1369,6 +1497,10 @@ class ContactCenterInsightsClient { google::cloud::contactcenterinsights::v1::DeployIssueModelResponse>> DeployIssueModel(std::string const& name, Options opts = {}); + StatusOr DeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deploys an issue model. Returns an error if a model is already deployed. @@ -1411,6 +1543,18 @@ class ContactCenterInsightsClient { request, Options opts = {}); + StatusOr DeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request, + Options opts = {}); + + future> + DeployIssueModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Undeploys an issue model. @@ -1445,6 +1589,10 @@ class ContactCenterInsightsClient { google::cloud::contactcenterinsights::v1::UndeployIssueModelResponse>> UndeployIssueModel(std::string const& name, Options opts = {}); + StatusOr UndeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Undeploys an issue model. @@ -1487,6 +1635,18 @@ class ContactCenterInsightsClient { request, Options opts = {}); + StatusOr UndeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request, + Options opts = {}); + + future> + UndeployIssueModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets an issue. 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..28a28f18f5f31 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,62 @@ ContactCenterInsightsConnectionImpl::UploadConversation( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::UploadConversation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +311,63 @@ ContactCenterInsightsConnectionImpl::CreateAnalysis( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::CreateAnalysis( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +479,65 @@ ContactCenterInsightsConnectionImpl::BulkAnalyzeConversations( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::BulkAnalyzeConversations( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +581,65 @@ ContactCenterInsightsConnectionImpl::BulkDeleteConversations( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::BulkDeleteConversations( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +682,64 @@ ContactCenterInsightsConnectionImpl::IngestConversations( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::IngestConversations( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +781,63 @@ ContactCenterInsightsConnectionImpl::ExportInsightsData( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::ExportInsightsData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +878,62 @@ ContactCenterInsightsConnectionImpl::CreateIssueModel( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::CreateIssueModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1024,63 @@ ContactCenterInsightsConnectionImpl::DeleteIssueModel( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::DeleteIssueModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1122,63 @@ ContactCenterInsightsConnectionImpl::DeployIssueModel( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::DeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1220,63 @@ ContactCenterInsightsConnectionImpl::UndeployIssueModel( polling_policy(*current), __func__); } +StatusOr +ContactCenterInsightsConnectionImpl::UndeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..89abf9bab720d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request) override; + + future> + UploadConversation(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request) override; + + future> + CreateAnalysis(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request) override; + + future> + BulkAnalyzeConversations( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BulkDeleteConversations( google::cloud::contactcenterinsights::v1:: BulkDeleteConversationsRequest const& request) override; + StatusOr BulkDeleteConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request) override; + + future> + BulkDeleteConversations( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> IngestConversations(google::cloud::contactcenterinsights::v1:: IngestConversationsRequest const& request) override; + StatusOr IngestConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request) override; + + future> + IngestConversations(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportInsightsData( google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& request) override; + StatusOr ExportInsightsData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request) override; + + future> + ExportInsightsData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& request) override; + StatusOr CreateIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request) override; + + future> + CreateIssueModel(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request) override; + + future> + DeleteIssueModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployIssueModel( google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& request) override; + StatusOr DeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request) override; + + future> + DeployIssueModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployIssueModel( google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& request) override; + StatusOr UndeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request) override; + + future> + UndeployIssueModel(google::cloud::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..5b3892655f5f4 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,33 @@ ContactCenterInsightsTracingConnection::UploadConversation( child_->UploadConversation(request)); } +StatusOr +ContactCenterInsightsTracingConnection::UploadConversation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::UploadConversation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ContactCenterInsightsTracingConnection::UpdateConversation( google::cloud::contactcenterinsights::v1::UpdateConversationRequest const& @@ -114,6 +141,33 @@ ContactCenterInsightsTracingConnection::CreateAnalysis( return internal::EndSpan(std::move(span), child_->CreateAnalysis(request)); } +StatusOr +ContactCenterInsightsTracingConnection::CreateAnalysis( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::CreateAnalysis( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ContactCenterInsightsTracingConnection::GetAnalysis( google::cloud::contactcenterinsights::v1::GetAnalysisRequest const& @@ -160,6 +214,34 @@ ContactCenterInsightsTracingConnection::BulkAnalyzeConversations( child_->BulkAnalyzeConversations(request)); } +StatusOr +ContactCenterInsightsTracingConnection::BulkAnalyzeConversations( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::BulkAnalyzeConversations( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::BulkDeleteConversations( @@ -173,6 +255,34 @@ ContactCenterInsightsTracingConnection::BulkDeleteConversations( child_->BulkDeleteConversations(request)); } +StatusOr +ContactCenterInsightsTracingConnection::BulkDeleteConversations( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::BulkDeleteConversations( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::IngestConversations( @@ -186,6 +296,34 @@ ContactCenterInsightsTracingConnection::IngestConversations( child_->IngestConversations(request)); } +StatusOr +ContactCenterInsightsTracingConnection::IngestConversations( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::IngestConversations( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::ExportInsightsData( @@ -199,6 +337,34 @@ ContactCenterInsightsTracingConnection::ExportInsightsData( child_->ExportInsightsData(request)); } +StatusOr +ContactCenterInsightsTracingConnection::ExportInsightsData( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::ExportInsightsData( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& @@ -210,6 +376,33 @@ ContactCenterInsightsTracingConnection::CreateIssueModel( return internal::EndSpan(std::move(span), child_->CreateIssueModel(request)); } +StatusOr +ContactCenterInsightsTracingConnection::CreateIssueModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::CreateIssueModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ContactCenterInsightsTracingConnection::UpdateIssueModel( google::cloud::contactcenterinsights::v1::UpdateIssueModelRequest const& @@ -255,6 +448,34 @@ ContactCenterInsightsTracingConnection::DeleteIssueModel( return internal::EndSpan(std::move(span), child_->DeleteIssueModel(request)); } +StatusOr +ContactCenterInsightsTracingConnection::DeleteIssueModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::DeleteIssueModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::DeployIssueModel( @@ -267,6 +488,34 @@ ContactCenterInsightsTracingConnection::DeployIssueModel( return internal::EndSpan(std::move(span), child_->DeployIssueModel(request)); } +StatusOr +ContactCenterInsightsTracingConnection::DeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::DeployIssueModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ContactCenterInsightsTracingConnection::UndeployIssueModel( @@ -280,6 +529,34 @@ ContactCenterInsightsTracingConnection::UndeployIssueModel( child_->UndeployIssueModel(request)); } +StatusOr +ContactCenterInsightsTracingConnection::UndeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ContactCenterInsightsTracingConnection::UndeployIssueModel( + google::cloud::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(google::cloud::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..ce1af9cbce1d0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::UploadConversationRequest const& + request) override; + + future> + UploadConversation(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request) override; + + future> + CreateAnalysis(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request) override; + + future> + BulkAnalyzeConversations( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BulkDeleteConversations( google::cloud::contactcenterinsights::v1:: BulkDeleteConversationsRequest const& request) override; + StatusOr BulkDeleteConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request) override; + + future> + BulkDeleteConversations( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> IngestConversations(google::cloud::contactcenterinsights::v1:: IngestConversationsRequest const& request) override; + StatusOr IngestConversations( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request) override; + + future> + IngestConversations(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportInsightsData( google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& request) override; + StatusOr ExportInsightsData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::ExportInsightsDataRequest const& + request) override; + + future> + ExportInsightsData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateIssueModel( google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& request) override; + StatusOr CreateIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request) override; + + future> + CreateIssueModel(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request) override; + + future> + DeleteIssueModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployIssueModel( google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& request) override; + StatusOr DeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request) override; + + future> + DeployIssueModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployIssueModel( google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& request) override; + StatusOr UndeployIssueModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::UndeployIssueModelRequest const& + request) override; + + future> + UndeployIssueModel(google::cloud::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..decc307e5fb34 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,19 @@ class MockContactCenterInsightsConnection UploadConversationRequest const& request), (override)); + MOCK_METHOD(StatusOr, UploadConversation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + UploadConversationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UploadConversation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, UpdateConversation, (google::cloud::contactcenterinsights::v1:: @@ -92,6 +105,20 @@ class MockContactCenterInsightsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateAnalysis, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateAnalysisRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateAnalysis, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAnalysis, (google::cloud::contactcenterinsights::v1::GetAnalysisRequest const& @@ -117,6 +144,20 @@ class MockContactCenterInsightsConnection BulkAnalyzeConversationsRequest const& request), (override)); + MOCK_METHOD(StatusOr, + BulkAnalyzeConversations, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkAnalyzeConversationsRequest const& request), + (override)); + + MOCK_METHOD(future>, + BulkAnalyzeConversations, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, BulkDeleteConversations, @@ -124,6 +165,19 @@ class MockContactCenterInsightsConnection BulkDeleteConversationsRequest const& request), (override)); + MOCK_METHOD(StatusOr, BulkDeleteConversations, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + BulkDeleteConversationsRequest const& request), + (override)); + + MOCK_METHOD(future>, + BulkDeleteConversations, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, IngestConversations, @@ -131,6 +185,19 @@ class MockContactCenterInsightsConnection IngestConversationsRequest const& request), (override)); + MOCK_METHOD(StatusOr, IngestConversations, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + IngestConversationsRequest const& request), + (override)); + + MOCK_METHOD(future>, + IngestConversations, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExportInsightsData, @@ -138,6 +205,19 @@ class MockContactCenterInsightsConnection ExportInsightsDataRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportInsightsData, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + ExportInsightsDataRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportInsightsData, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateIssueModel, @@ -145,6 +225,20 @@ class MockContactCenterInsightsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateIssueModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::CreateIssueModelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateIssueModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, UpdateIssueModel, @@ -175,6 +269,21 @@ class MockContactCenterInsightsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteIssueModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeleteIssueModelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteIssueModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -183,6 +292,21 @@ class MockContactCenterInsightsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeployIssueModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1::DeployIssueModelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeployIssueModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeployIssueModel, @@ -190,6 +314,19 @@ class MockContactCenterInsightsConnection UndeployIssueModelRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeployIssueModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contactcenterinsights::v1:: + UndeployIssueModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeployIssueModel, + (google::cloud::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_client.h b/google/cloud/container/v1/cluster_manager_client.h index c900d38802c16..b47a312f98f5d 100644 --- a/google/cloud/container/v1/cluster_manager_client.h +++ b/google/cloud/container/v1/cluster_manager_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTAINER_V1_CLUSTER_MANAGER_CLIENT_H #include "google/cloud/container/v1/cluster_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/containeranalysis/v1/container_analysis_client.h index 3892f964b49a3..a05ffa7cc3c57 100644 --- a/google/cloud/containeranalysis/v1/container_analysis_client.h +++ b/google/cloud/containeranalysis/v1/container_analysis_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTAINERANALYSIS_V1_CONTAINER_ANALYSIS_CLIENT_H #include "google/cloud/containeranalysis/v1/container_analysis_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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_client.h b/google/cloud/containeranalysis/v1/grafeas_client.h index ae7080ef7247a..7c04966541046 100644 --- a/google/cloud/containeranalysis/v1/grafeas_client.h +++ b/google/cloud/containeranalysis/v1/grafeas_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTAINERANALYSIS_V1_GRAFEAS_CLIENT_H #include "google/cloud/containeranalysis/v1/grafeas_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/contentwarehouse/v1/document_client.h index 58235b2f43447..9ca06529395be 100644 --- a/google/cloud/contentwarehouse/v1/document_client.h +++ b/google/cloud/contentwarehouse/v1/document_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTENTWAREHOUSE_V1_DOCUMENT_CLIENT_H #include "google/cloud/contentwarehouse/v1/document_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/contentwarehouse/v1/document_link_client.h index 37961ee4229c4..3acf5a12e85e8 100644 --- a/google/cloud/contentwarehouse/v1/document_link_client.h +++ b/google/cloud/contentwarehouse/v1/document_link_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTENTWAREHOUSE_V1_DOCUMENT_LINK_CLIENT_H #include "google/cloud/contentwarehouse/v1/document_link_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/contentwarehouse/v1/document_schema_client.h index 29293dbc9ae3e..7d45cbf7dfa92 100644 --- a/google/cloud/contentwarehouse/v1/document_schema_client.h +++ b/google/cloud/contentwarehouse/v1/document_schema_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTENTWAREHOUSE_V1_DOCUMENT_SCHEMA_CLIENT_H #include "google/cloud/contentwarehouse/v1/document_schema_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..f0c7d24681082 100644 --- a/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.cc +++ b/google/cloud/contentwarehouse/v1/internal/pipeline_connection_impl.cc @@ -107,6 +107,61 @@ PipelineServiceConnectionImpl::RunPipeline( polling_policy(*current), __func__); } +StatusOr +PipelineServiceConnectionImpl::RunPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..412b2cbdaa529 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request) + override; + + future> + RunPipeline(google::cloud::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..d9d92f1cd164b 100644 --- a/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.cc +++ b/google/cloud/contentwarehouse/v1/internal/pipeline_tracing_connection.cc @@ -41,6 +41,30 @@ PipelineServiceTracingConnection::RunPipeline( return internal::EndSpan(std::move(span), child_->RunPipeline(request)); } +StatusOr +PipelineServiceTracingConnection::RunPipeline( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PipelineServiceTracingConnection::RunPipeline( + google::cloud::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(google::cloud::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..70cd82a315e35 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request) + override; + + future> + RunPipeline(google::cloud::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..dbf2b3346bd04 100644 --- a/google/cloud/contentwarehouse/v1/mocks/mock_pipeline_connection.h +++ b/google/cloud/contentwarehouse/v1/mocks/mock_pipeline_connection.h @@ -53,6 +53,20 @@ class MockPipelineServiceConnection RunPipeline, (google::cloud::contentwarehouse::v1::RunPipelineRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RunPipeline, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + RunPipeline, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/contentwarehouse/v1/pipeline_client.cc b/google/cloud/contentwarehouse/v1/pipeline_client.cc index e0c42dcc05999..dc8d3e97c7633 100644 --- a/google/cloud/contentwarehouse/v1/pipeline_client.cc +++ b/google/cloud/contentwarehouse/v1/pipeline_client.cc @@ -40,6 +40,16 @@ PipelineServiceClient::RunPipeline(std::string const& name, Options opts) { return connection_->RunPipeline(request); } +StatusOr PipelineServiceClient::RunPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::contentwarehouse::v1::RunPipelineRequest request; + request.set_name(name); + return connection_->RunPipeline(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PipelineServiceClient::RunPipeline( google::cloud::contentwarehouse::v1::RunPipelineRequest const& request, @@ -48,6 +58,23 @@ PipelineServiceClient::RunPipeline( return connection_->RunPipeline(request); } +StatusOr PipelineServiceClient::RunPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunPipeline(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +PipelineServiceClient::RunPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunPipeline(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace contentwarehouse_v1 } // namespace cloud diff --git a/google/cloud/contentwarehouse/v1/pipeline_client.h b/google/cloud/contentwarehouse/v1/pipeline_client.h index c21634fce6bff..32cef9abbe265 100644 --- a/google/cloud/contentwarehouse/v1/pipeline_client.h +++ b/google/cloud/contentwarehouse/v1/pipeline_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTENTWAREHOUSE_V1_PIPELINE_CLIENT_H #include "google/cloud/contentwarehouse/v1/pipeline_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -119,6 +121,10 @@ class PipelineServiceClient { future> RunPipeline(std::string const& name, Options opts = {}); + StatusOr RunPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Run a predefined pipeline. @@ -158,6 +164,16 @@ class PipelineServiceClient { google::cloud::contentwarehouse::v1::RunPipelineRequest const& request, Options opts = {}); + StatusOr RunPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::contentwarehouse::v1::RunPipelineRequest const& request, + Options opts = {}); + + future> + RunPipeline(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/contentwarehouse/v1/rule_set_client.h index fdeac860a0012..7fbaab4708273 100644 --- a/google/cloud/contentwarehouse/v1/rule_set_client.h +++ b/google/cloud/contentwarehouse/v1/rule_set_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTENTWAREHOUSE_V1_RULE_SET_CLIENT_H #include "google/cloud/contentwarehouse/v1/rule_set_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/contentwarehouse/v1/synonym_set_client.h index 30f2d4ed570f4..53e23d952de53 100644 --- a/google/cloud/contentwarehouse/v1/synonym_set_client.h +++ b/google/cloud/contentwarehouse/v1/synonym_set_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_CONTENTWAREHOUSE_V1_SYNONYM_SET_CLIENT_H #include "google/cloud/contentwarehouse/v1/synonym_set_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..46dbbbca867a6 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,62 @@ LineageConnectionImpl::DeleteProcess( polling_policy(*current), __func__); } +StatusOr LineageConnectionImpl::DeleteProcess( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +382,60 @@ LineageConnectionImpl::DeleteRun( polling_policy(*current), __func__); } +StatusOr LineageConnectionImpl::DeleteRun( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..1225bcc664cbe 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request) override; + + future> + DeleteProcess(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) + override; + + future> + DeleteRun(google::cloud::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..f4ab738735c8b 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,31 @@ LineageTracingConnection::DeleteProcess( return internal::EndSpan(std::move(span), child_->DeleteProcess(request)); } +StatusOr +LineageTracingConnection::DeleteProcess( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LineageTracingConnection::DeleteProcess( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr LineageTracingConnection::CreateRun( google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request) { @@ -143,6 +168,29 @@ LineageTracingConnection::DeleteRun( return internal::EndSpan(std::move(span), child_->DeleteRun(request)); } +StatusOr LineageTracingConnection::DeleteRun( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LineageTracingConnection::DeleteRun( + google::cloud::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(google::cloud::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..810c29124ce86 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request) override; + + future> + DeleteProcess(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request) + override; + + future> + DeleteRun(google::cloud::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_client.cc b/google/cloud/datacatalog/lineage/v1/lineage_client.cc index ea6920d55f600..c1523dee4946e 100644 --- a/google/cloud/datacatalog/lineage/v1/lineage_client.cc +++ b/google/cloud/datacatalog/lineage/v1/lineage_client.cc @@ -136,6 +136,16 @@ LineageClient::DeleteProcess(std::string const& name, Options opts) { return connection_->DeleteProcess(request); } +StatusOr LineageClient::DeleteProcess( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest request; + request.set_name(name); + return connection_->DeleteProcess(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LineageClient::DeleteProcess( google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& @@ -145,6 +155,25 @@ LineageClient::DeleteProcess( return connection_->DeleteProcess(request); } +StatusOr LineageClient::DeleteProcess( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteProcess(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LineageClient::DeleteProcess(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteProcess(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr LineageClient::CreateRun( std::string const& parent, google::cloud::datacatalog::lineage::v1::Run const& run, Options opts) { @@ -218,6 +247,16 @@ LineageClient::DeleteRun(std::string const& name, Options opts) { return connection_->DeleteRun(request); } +StatusOr LineageClient::DeleteRun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datacatalog::lineage::v1::DeleteRunRequest request; + request.set_name(name); + return connection_->DeleteRun(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LineageClient::DeleteRun( google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request, @@ -226,6 +265,23 @@ LineageClient::DeleteRun( return connection_->DeleteRun(request); } +StatusOr LineageClient::DeleteRun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRun(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LineageClient::DeleteRun(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRun(google::cloud::ExperimentalTag{}, operation); +} + StatusOr LineageClient::CreateLineageEvent( std::string const& parent, diff --git a/google/cloud/datacatalog/lineage/v1/lineage_client.h b/google/cloud/datacatalog/lineage/v1/lineage_client.h index 298b3b54a4ef5..86e0756071633 100644 --- a/google/cloud/datacatalog/lineage/v1/lineage_client.h +++ b/google/cloud/datacatalog/lineage/v1/lineage_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATACATALOG_LINEAGE_V1_LINEAGE_CLIENT_H #include "google/cloud/datacatalog/lineage/v1/lineage_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -450,6 +452,10 @@ class LineageClient { future> DeleteProcess(std::string const& name, Options opts = {}); + StatusOr DeleteProcess( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the process with the specified name. @@ -490,6 +496,17 @@ class LineageClient { request, Options opts = {}); + StatusOr DeleteProcess( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request, + Options opts = {}); + + future> + DeleteProcess(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new run. @@ -777,6 +794,10 @@ class LineageClient { future> DeleteRun(std::string const& name, Options opts = {}); + StatusOr DeleteRun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the run with the specified name. @@ -816,6 +837,15 @@ class LineageClient { google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request, Options opts = {}); + StatusOr DeleteRun( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& request, + Options opts = {}); + + future> + DeleteRun(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a new lineage event. 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..d97a8bfc02a82 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,21 @@ class MockLineageConnection : public datacatalog_lineage_v1::LineageConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteProcess, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteProcessRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteProcess, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, CreateRun, (google::cloud::datacatalog::lineage::v1::CreateRunRequest const& request), @@ -113,6 +128,20 @@ class MockLineageConnection : public datacatalog_lineage_v1::LineageConnection { request), (override)); + MOCK_METHOD(StatusOr, DeleteRun, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::lineage::v1::DeleteRunRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteRun, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateLineageEvent, diff --git a/google/cloud/datacatalog/v1/data_catalog_client.cc b/google/cloud/datacatalog/v1/data_catalog_client.cc index 3e819fcb66645..75fcf12f73abb 100644 --- a/google/cloud/datacatalog/v1/data_catalog_client.cc +++ b/google/cloud/datacatalog/v1/data_catalog_client.cc @@ -545,6 +545,24 @@ DataCatalogClient::ReconcileTags( return connection_->ReconcileTags(request); } +StatusOr DataCatalogClient::ReconcileTags( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReconcileTags(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataCatalogClient::ReconcileTags( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReconcileTags(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DataCatalogClient::StarEntry(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -657,6 +675,24 @@ DataCatalogClient::ImportEntries( return connection_->ImportEntries(request); } +StatusOr DataCatalogClient::ImportEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportEntries(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataCatalogClient::ImportEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportEntries(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace datacatalog_v1 } // namespace cloud diff --git a/google/cloud/datacatalog/v1/data_catalog_client.h b/google/cloud/datacatalog/v1/data_catalog_client.h index fbf808ca4030b..40489abc1b791 100644 --- a/google/cloud/datacatalog/v1/data_catalog_client.h +++ b/google/cloud/datacatalog/v1/data_catalog_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATACATALOG_V1_DATA_CATALOG_CLIENT_H #include "google/cloud/datacatalog/v1/data_catalog_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -2237,6 +2239,16 @@ class DataCatalogClient { google::cloud::datacatalog::v1::ReconcileTagsRequest const& request, Options opts = {}); + StatusOr ReconcileTags( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request, + Options opts = {}); + + future> + ReconcileTags(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Marks an [Entry][google.cloud.datacatalog.v1.Entry] as starred by @@ -2672,6 +2684,16 @@ class DataCatalogClient { google::cloud::datacatalog::v1::ImportEntriesRequest const& request, Options opts = {}); + StatusOr ImportEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request, + Options opts = {}); + + future> + ImportEntries(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..fa44659d86d84 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,61 @@ DataCatalogConnectionImpl::ReconcileTags( polling_policy(*current), __func__); } +StatusOr +DataCatalogConnectionImpl::ReconcileTags( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +748,61 @@ DataCatalogConnectionImpl::ImportEntries( polling_policy(*current), __func__); } +StatusOr +DataCatalogConnectionImpl::ImportEntries( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..3cb521493f203 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) + override; + + future> + ReconcileTags(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request) + override; + + future> + ImportEntries(google::cloud::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..153e7111855cc 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,30 @@ DataCatalogTracingConnection::ReconcileTags( return internal::EndSpan(std::move(span), child_->ReconcileTags(request)); } +StatusOr +DataCatalogTracingConnection::ReconcileTags( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataCatalogTracingConnection::ReconcileTags( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DataCatalogTracingConnection::StarEntry( google::cloud::datacatalog::v1::StarEntryRequest const& request) { @@ -348,6 +372,30 @@ DataCatalogTracingConnection::ImportEntries( return internal::EndSpan(std::move(span), child_->ImportEntries(request)); } +StatusOr +DataCatalogTracingConnection::ImportEntries( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataCatalogTracingConnection::ImportEntries( + google::cloud::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(google::cloud::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..8df3a9f4b35ed 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request) + override; + + future> + ReconcileTags(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request) + override; + + future> + ImportEntries(google::cloud::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..eb1f8a36a14e0 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,19 @@ class MockDataCatalogConnection : public datacatalog_v1::DataCatalogConnection { (google::cloud::datacatalog::v1::ReconcileTagsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReconcileTags, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ReconcileTagsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ReconcileTags, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, StarEntry, (google::cloud::datacatalog::v1::StarEntryRequest const& request), @@ -221,6 +234,19 @@ class MockDataCatalogConnection : public datacatalog_v1::DataCatalogConnection { ImportEntries, (google::cloud::datacatalog::v1::ImportEntriesRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportEntries, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datacatalog::v1::ImportEntriesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportEntries, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/datacatalog/v1/policy_tag_manager_client.h b/google/cloud/datacatalog/v1/policy_tag_manager_client.h index 9b689b390290d..0bb128392cc96 100644 --- a/google/cloud/datacatalog/v1/policy_tag_manager_client.h +++ b/google/cloud/datacatalog/v1/policy_tag_manager_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATACATALOG_V1_POLICY_TAG_MANAGER_CLIENT_H #include "google/cloud/datacatalog/v1/policy_tag_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/datacatalog/v1/policy_tag_manager_serialization_client.h index 914d1ae6ecb18..1eddc15bed28f 100644 --- a/google/cloud/datacatalog/v1/policy_tag_manager_serialization_client.h +++ b/google/cloud/datacatalog/v1/policy_tag_manager_serialization_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATACATALOG_V1_POLICY_TAG_MANAGER_SERIALIZATION_CLIENT_H #include "google/cloud/datacatalog/v1/policy_tag_manager_serialization_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/datafusion/v1/data_fusion_client.cc index 88c0f6415ea80..7805113c79c8d 100644 --- a/google/cloud/datafusion/v1/data_fusion_client.cc +++ b/google/cloud/datafusion/v1/data_fusion_client.cc @@ -76,6 +76,20 @@ DataFusionClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr DataFusionClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datafusion::v1::Instance const& instance, + std::string const& instance_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datafusion::v1::CreateInstanceRequest request; + request.set_parent(parent); + *request.mutable_instance() = instance; + request.set_instance_id(instance_id); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataFusionClient::CreateInstance( google::cloud::datafusion::v1::CreateInstanceRequest const& request, @@ -84,6 +98,24 @@ DataFusionClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr DataFusionClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataFusionClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> DataFusionClient::DeleteInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -92,6 +124,16 @@ DataFusionClient::DeleteInstance(std::string const& name, Options opts) { return connection_->DeleteInstance(request); } +StatusOr DataFusionClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datafusion::v1::DeleteInstanceRequest request; + request.set_name(name); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataFusionClient::DeleteInstance( google::cloud::datafusion::v1::DeleteInstanceRequest const& request, @@ -100,6 +142,24 @@ DataFusionClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr DataFusionClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataFusionClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> DataFusionClient::UpdateInstance( google::cloud::datafusion::v1::Instance const& instance, @@ -111,6 +171,18 @@ DataFusionClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr DataFusionClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datafusion::v1::UpdateInstanceRequest request; + *request.mutable_instance() = instance; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataFusionClient::UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request, @@ -119,6 +191,24 @@ DataFusionClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr DataFusionClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataFusionClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> DataFusionClient::RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request, @@ -127,6 +217,24 @@ DataFusionClient::RestartInstance( return connection_->RestartInstance(request); } +StatusOr DataFusionClient::RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestartInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataFusionClient::RestartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestartInstance(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace datafusion_v1 } // namespace cloud diff --git a/google/cloud/datafusion/v1/data_fusion_client.h b/google/cloud/datafusion/v1/data_fusion_client.h index ff4035cc8cc1c..91e2e257050d2 100644 --- a/google/cloud/datafusion/v1/data_fusion_client.h +++ b/google/cloud/datafusion/v1/data_fusion_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAFUSION_V1_DATA_FUSION_CLIENT_H #include "google/cloud/datafusion/v1/data_fusion_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -272,6 +274,12 @@ class DataFusionClient { google::cloud::datafusion::v1::Instance const& instance, std::string const& instance_id, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datafusion::v1::Instance const& instance, + std::string const& instance_id, Options opts = {}); + // clang-format off /// /// Creates a new Data Fusion instance in the specified project and location. @@ -310,6 +318,15 @@ class DataFusionClient { google::cloud::datafusion::v1::CreateInstanceRequest const& request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request, + Options opts = {}); + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Date Fusion instance. @@ -343,6 +360,10 @@ class DataFusionClient { future> DeleteInstance(std::string const& name, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Date Fusion instance. @@ -382,6 +403,16 @@ class DataFusionClient { google::cloud::datafusion::v1::DeleteInstanceRequest const& request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request, + Options opts = {}); + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a single Data Fusion instance. @@ -423,6 +454,11 @@ class DataFusionClient { google::cloud::datafusion::v1::Instance const& instance, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a single Data Fusion instance. @@ -461,6 +497,15 @@ class DataFusionClient { google::cloud::datafusion::v1::UpdateInstanceRequest const& request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request, + Options opts = {}); + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Restart a single Data Fusion instance. @@ -500,6 +545,15 @@ class DataFusionClient { google::cloud::datafusion::v1::RestartInstanceRequest const& request, Options opts = {}); + StatusOr RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request, + Options opts = {}); + + future> RestartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..4559fbfba3767 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,59 @@ DataFusionConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +DataFusionConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +279,60 @@ DataFusionConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +DataFusionConnectionImpl::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +372,59 @@ DataFusionConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +DataFusionConnectionImpl::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +465,59 @@ DataFusionConnectionImpl::RestartInstance( polling_policy(*current), __func__); } +StatusOr +DataFusionConnectionImpl::RestartInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..42624b2cb8c11 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::datafusion::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request) override; + StatusOr RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request) + override; + + future> RestartInstance( + google::cloud::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..b5950796abcb8 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,30 @@ DataFusionTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +DataFusionTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataFusionTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataFusionTracingConnection::DeleteInstance( google::cloud::datafusion::v1::DeleteInstanceRequest const& request) { @@ -82,6 +106,30 @@ DataFusionTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +DataFusionTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataFusionTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataFusionTracingConnection::UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request) { @@ -91,6 +139,30 @@ DataFusionTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +DataFusionTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataFusionTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataFusionTracingConnection::RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request) { @@ -100,6 +172,30 @@ DataFusionTracingConnection::RestartInstance( return internal::EndSpan(std::move(span), child_->RestartInstance(request)); } +StatusOr +DataFusionTracingConnection::RestartInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataFusionTracingConnection::RestartInstance( + google::cloud::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(google::cloud::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..74063b43726d6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::datafusion::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::datafusion::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartInstance( google::cloud::datafusion::v1::RestartInstanceRequest const& request) override; + StatusOr RestartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request) + override; + + future> RestartInstance( + google::cloud::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..8160f82223bf6 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,71 @@ class MockDataFusionConnection : public datafusion_v1::DataFusionConnection { (google::cloud::datafusion::v1::CreateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::datafusion::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::datafusion::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestartInstance, (google::cloud::datafusion::v1::RestartInstanceRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RestartInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datafusion::v1::RestartInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestartInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/datamigration/v1/data_migration_client.cc b/google/cloud/datamigration/v1/data_migration_client.cc index b963cb3e00344..dc737e32fc403 100644 --- a/google/cloud/datamigration/v1/data_migration_client.cc +++ b/google/cloud/datamigration/v1/data_migration_client.cc @@ -79,6 +79,21 @@ DataMigrationServiceClient::CreateMigrationJob( return connection_->CreateMigrationJob(request); } +StatusOr +DataMigrationServiceClient::CreateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::clouddms::v1::MigrationJob const& migration_job, + std::string const& migration_job_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::CreateMigrationJobRequest request; + request.set_parent(parent); + *request.mutable_migration_job() = migration_job; + request.set_migration_job_id(migration_job_id); + return connection_->CreateMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::CreateMigrationJob( google::cloud::clouddms::v1::CreateMigrationJobRequest const& request, @@ -87,6 +102,25 @@ DataMigrationServiceClient::CreateMigrationJob( return connection_->CreateMigrationJob(request); } +StatusOr +DataMigrationServiceClient::CreateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::CreateMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::UpdateMigrationJob( google::cloud::clouddms::v1::MigrationJob const& migration_job, @@ -98,6 +132,19 @@ DataMigrationServiceClient::UpdateMigrationJob( return connection_->UpdateMigrationJob(request); } +StatusOr +DataMigrationServiceClient::UpdateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::MigrationJob const& migration_job, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::UpdateMigrationJobRequest request; + *request.mutable_migration_job() = migration_job; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request, @@ -106,6 +153,25 @@ DataMigrationServiceClient::UpdateMigrationJob( return connection_->UpdateMigrationJob(request); } +StatusOr +DataMigrationServiceClient::UpdateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::UpdateMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::DeleteMigrationJob(std::string const& name, Options opts) { @@ -115,6 +181,18 @@ DataMigrationServiceClient::DeleteMigrationJob(std::string const& name, return connection_->DeleteMigrationJob(request); } +StatusOr +DataMigrationServiceClient::DeleteMigrationJob(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::DeleteMigrationJobRequest request; + request.set_name(name); + return connection_->DeleteMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request, @@ -123,6 +201,25 @@ DataMigrationServiceClient::DeleteMigrationJob( return connection_->DeleteMigrationJob(request); } +StatusOr +DataMigrationServiceClient::DeleteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::DeleteMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request, @@ -131,6 +228,25 @@ DataMigrationServiceClient::StartMigrationJob( return connection_->StartMigrationJob(request); } +StatusOr +DataMigrationServiceClient::StartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::StartMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request, @@ -139,6 +255,25 @@ DataMigrationServiceClient::StopMigrationJob( return connection_->StopMigrationJob(request); } +StatusOr +DataMigrationServiceClient::StopMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::StopMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request, @@ -147,6 +282,25 @@ DataMigrationServiceClient::ResumeMigrationJob( return connection_->ResumeMigrationJob(request); } +StatusOr +DataMigrationServiceClient::ResumeMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResumeMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::ResumeMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResumeMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request, @@ -155,6 +309,25 @@ DataMigrationServiceClient::PromoteMigrationJob( return connection_->PromoteMigrationJob(request); } +StatusOr +DataMigrationServiceClient::PromoteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PromoteMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::PromoteMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PromoteMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request, @@ -163,6 +336,25 @@ DataMigrationServiceClient::VerifyMigrationJob( return connection_->VerifyMigrationJob(request); } +StatusOr +DataMigrationServiceClient::VerifyMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->VerifyMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::VerifyMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->VerifyMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request, @@ -171,6 +363,25 @@ DataMigrationServiceClient::RestartMigrationJob( return connection_->RestartMigrationJob(request); } +StatusOr +DataMigrationServiceClient::RestartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestartMigrationJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::RestartMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestartMigrationJob(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DataMigrationServiceClient::GenerateSshScript( google::cloud::clouddms::v1::GenerateSshScriptRequest const& request, @@ -234,6 +445,21 @@ DataMigrationServiceClient::CreateConnectionProfile( return connection_->CreateConnectionProfile(request); } +StatusOr +DataMigrationServiceClient::CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::clouddms::v1::ConnectionProfile const& connection_profile, + std::string const& connection_profile_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::CreateConnectionProfileRequest request; + request.set_parent(parent); + *request.mutable_connection_profile() = connection_profile; + request.set_connection_profile_id(connection_profile_id); + return connection_->CreateConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::CreateConnectionProfile( google::cloud::clouddms::v1::CreateConnectionProfileRequest const& request, @@ -242,6 +468,25 @@ DataMigrationServiceClient::CreateConnectionProfile( return connection_->CreateConnectionProfile(request); } +StatusOr +DataMigrationServiceClient::CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::CreateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnectionProfile(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::UpdateConnectionProfile( google::cloud::clouddms::v1::ConnectionProfile const& connection_profile, @@ -253,6 +498,19 @@ DataMigrationServiceClient::UpdateConnectionProfile( return connection_->UpdateConnectionProfile(request); } +StatusOr +DataMigrationServiceClient::UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConnectionProfile const& connection_profile, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::UpdateConnectionProfileRequest request; + *request.mutable_connection_profile() = connection_profile; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::UpdateConnectionProfile( google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& request, @@ -261,6 +519,25 @@ DataMigrationServiceClient::UpdateConnectionProfile( return connection_->UpdateConnectionProfile(request); } +StatusOr +DataMigrationServiceClient::UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::UpdateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnectionProfile(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::DeleteConnectionProfile(std::string const& name, Options opts) { @@ -270,6 +547,17 @@ DataMigrationServiceClient::DeleteConnectionProfile(std::string const& name, return connection_->DeleteConnectionProfile(request); } +StatusOr +DataMigrationServiceClient::DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::DeleteConnectionProfileRequest request; + request.set_name(name); + return connection_->DeleteConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::DeleteConnectionProfile( google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& request, @@ -278,6 +566,25 @@ DataMigrationServiceClient::DeleteConnectionProfile( return connection_->DeleteConnectionProfile(request); } +StatusOr +DataMigrationServiceClient::DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::DeleteConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnectionProfile(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::CreatePrivateConnection( std::string const& parent, @@ -291,6 +598,21 @@ DataMigrationServiceClient::CreatePrivateConnection( return connection_->CreatePrivateConnection(request); } +StatusOr +DataMigrationServiceClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::clouddms::v1::PrivateConnection const& private_connection, + std::string const& private_connection_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::CreatePrivateConnectionRequest request; + request.set_parent(parent); + *request.mutable_private_connection() = private_connection; + request.set_private_connection_id(private_connection_id); + return connection_->CreatePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& request, @@ -299,6 +621,25 @@ DataMigrationServiceClient::CreatePrivateConnection( return connection_->CreatePrivateConnection(request); } +StatusOr +DataMigrationServiceClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePrivateConnection(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DataMigrationServiceClient::GetPrivateConnection(std::string const& name, Options opts) { @@ -342,6 +683,17 @@ DataMigrationServiceClient::DeletePrivateConnection(std::string const& name, return connection_->DeletePrivateConnection(request); } +StatusOr +DataMigrationServiceClient::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::DeletePrivateConnectionRequest request; + request.set_name(name); + return connection_->DeletePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::DeletePrivateConnection( google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& request, @@ -350,6 +702,25 @@ DataMigrationServiceClient::DeletePrivateConnection( return connection_->DeletePrivateConnection(request); } +StatusOr +DataMigrationServiceClient::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::DeletePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePrivateConnection(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DataMigrationServiceClient::GetConversionWorkspace(std::string const& name, Options opts) { @@ -398,6 +769,22 @@ DataMigrationServiceClient::CreateConversionWorkspace( return connection_->CreateConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::CreateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::clouddms::v1::ConversionWorkspace const& + conversion_workspace, + std::string const& conversion_workspace_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest request; + request.set_parent(parent); + *request.mutable_conversion_workspace() = conversion_workspace; + request.set_conversion_workspace_id(conversion_workspace_id); + return connection_->CreateConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::CreateConversionWorkspace( google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& @@ -407,6 +794,26 @@ DataMigrationServiceClient::CreateConversionWorkspace( return connection_->CreateConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::CreateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::CreateConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConversionWorkspace( + google::cloud::ExperimentalTag{}, operation); +} + future> DataMigrationServiceClient::UpdateConversionWorkspace( google::cloud::clouddms::v1::ConversionWorkspace const& @@ -419,6 +826,20 @@ DataMigrationServiceClient::UpdateConversionWorkspace( return connection_->UpdateConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::UpdateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConversionWorkspace const& + conversion_workspace, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest request; + *request.mutable_conversion_workspace() = conversion_workspace; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& @@ -428,6 +849,26 @@ DataMigrationServiceClient::UpdateConversionWorkspace( return connection_->UpdateConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::UpdateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::UpdateConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConversionWorkspace( + google::cloud::ExperimentalTag{}, operation); +} + future> DataMigrationServiceClient::DeleteConversionWorkspace(std::string const& name, Options opts) { @@ -437,6 +878,17 @@ DataMigrationServiceClient::DeleteConversionWorkspace(std::string const& name, return connection_->DeleteConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::DeleteConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest request; + request.set_name(name); + return connection_->DeleteConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataMigrationServiceClient::DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& @@ -446,6 +898,26 @@ DataMigrationServiceClient::DeleteConversionWorkspace( return connection_->DeleteConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::DeleteConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::DeleteConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConversionWorkspace( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr DataMigrationServiceClient::CreateMappingRule( std::string const& parent, @@ -524,6 +996,25 @@ DataMigrationServiceClient::SeedConversionWorkspace( return connection_->SeedConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::SeedConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SeedConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::SeedConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SeedConversionWorkspace(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request, @@ -532,6 +1023,25 @@ DataMigrationServiceClient::ImportMappingRules( return connection_->ImportMappingRules(request); } +StatusOr +DataMigrationServiceClient::ImportMappingRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportMappingRules(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::ImportMappingRules( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportMappingRules(google::cloud::ExperimentalTag{}, + operation); +} + future> DataMigrationServiceClient::ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& @@ -541,6 +1051,26 @@ DataMigrationServiceClient::ConvertConversionWorkspace( return connection_->ConvertConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::ConvertConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ConvertConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::ConvertConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ConvertConversionWorkspace( + google::cloud::ExperimentalTag{}, operation); +} + future> DataMigrationServiceClient::CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& @@ -550,6 +1080,26 @@ DataMigrationServiceClient::CommitConversionWorkspace( return connection_->CommitConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::CommitConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CommitConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::CommitConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CommitConversionWorkspace( + google::cloud::ExperimentalTag{}, operation); +} + future> DataMigrationServiceClient::RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& @@ -559,6 +1109,26 @@ DataMigrationServiceClient::RollbackConversionWorkspace( return connection_->RollbackConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::RollbackConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RollbackConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::RollbackConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RollbackConversionWorkspace( + google::cloud::ExperimentalTag{}, operation); +} + future> DataMigrationServiceClient::ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& request, @@ -567,6 +1137,25 @@ DataMigrationServiceClient::ApplyConversionWorkspace( return connection_->ApplyConversionWorkspace(request); } +StatusOr +DataMigrationServiceClient::ApplyConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApplyConversionWorkspace( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataMigrationServiceClient::ApplyConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApplyConversionWorkspace(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DataMigrationServiceClient::DescribeDatabaseEntities( google::cloud::clouddms::v1::DescribeDatabaseEntitiesRequest request, diff --git a/google/cloud/datamigration/v1/data_migration_client.h b/google/cloud/datamigration/v1/data_migration_client.h index eb2eef6cd7a85..60c524ad17627 100644 --- a/google/cloud/datamigration/v1/data_migration_client.h +++ b/google/cloud/datamigration/v1/data_migration_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAMIGRATION_V1_DATA_MIGRATION_CLIENT_H #include "google/cloud/datamigration/v1/data_migration_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -258,6 +260,12 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::MigrationJob const& migration_job, std::string const& migration_job_id, Options opts = {}); + StatusOr CreateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::clouddms::v1::MigrationJob const& migration_job, + std::string const& migration_job_id, Options opts = {}); + // clang-format off /// /// Creates a new migration job in a given project and location. @@ -297,6 +305,16 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::CreateMigrationJobRequest const& request, Options opts = {}); + StatusOr CreateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request, + Options opts = {}); + + future> + CreateMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single migration job. @@ -333,6 +351,11 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::MigrationJob const& migration_job, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::MigrationJob const& migration_job, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single migration job. @@ -372,6 +395,16 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request, Options opts = {}); + StatusOr UpdateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request, + Options opts = {}); + + future> + UpdateMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single migration job. @@ -404,6 +437,10 @@ class DataMigrationServiceClient { future> DeleteMigrationJob(std::string const& name, Options opts = {}); + StatusOr DeleteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single migration job. @@ -443,6 +480,16 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request, Options opts = {}); + StatusOr DeleteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request, + Options opts = {}); + + future> + DeleteMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Start an already created migration job. @@ -481,6 +528,15 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::StartMigrationJobRequest const& request, Options opts = {}); + StatusOr StartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request, + Options opts = {}); + + future> StartMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Stops a running migration job. @@ -519,6 +575,15 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::StopMigrationJobRequest const& request, Options opts = {}); + StatusOr StopMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request, + Options opts = {}); + + future> StopMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Resume a migration job that is currently stopped and is resumable (was @@ -559,6 +624,16 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request, Options opts = {}); + StatusOr ResumeMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request, + Options opts = {}); + + future> + ResumeMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Promote a migration job, stopping replication to the destination and @@ -599,6 +674,16 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request, Options opts = {}); + StatusOr PromoteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request, + Options opts = {}); + + future> + PromoteMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Verify a migration job, making sure the destination can reach the source @@ -639,6 +724,16 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request, Options opts = {}); + StatusOr VerifyMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request, + Options opts = {}); + + future> + VerifyMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Restart a stopped or failed migration job, resetting the destination @@ -680,6 +775,16 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::RestartMigrationJobRequest const& request, Options opts = {}); + StatusOr RestartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request, + Options opts = {}); + + future> + RestartMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Generate a SSH configuration script to configure the reverse SSH @@ -914,6 +1019,12 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::ConnectionProfile const& connection_profile, std::string const& connection_profile_id, Options opts = {}); + StatusOr CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::clouddms::v1::ConnectionProfile const& connection_profile, + std::string const& connection_profile_id, Options opts = {}); + // clang-format off /// /// Creates a new connection profile in a given project and location. @@ -954,6 +1065,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request, + Options opts = {}); + + future> + CreateConnectionProfile(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Update the configuration of a single connection profile. @@ -990,6 +1112,11 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::ConnectionProfile const& connection_profile, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConnectionProfile const& connection_profile, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update the configuration of a single connection profile. @@ -1030,6 +1157,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request, + Options opts = {}); + + future> + UpdateConnectionProfile(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single Database Migration Service connection profile. @@ -1064,6 +1202,10 @@ class DataMigrationServiceClient { future> DeleteConnectionProfile(std::string const& name, Options opts = {}); + StatusOr DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Database Migration Service connection profile. @@ -1106,6 +1248,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request, + Options opts = {}); + + future> + DeleteConnectionProfile(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new private connection in a given project and location. @@ -1143,6 +1296,12 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::PrivateConnection const& private_connection, std::string const& private_connection_id, Options opts = {}); + StatusOr CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::clouddms::v1::PrivateConnection const& private_connection, + std::string const& private_connection_id, Options opts = {}); + // clang-format off /// /// Creates a new private connection in a given project and location. @@ -1183,6 +1342,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request, + Options opts = {}); + + future> + CreatePrivateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single private connection. @@ -1346,6 +1516,10 @@ class DataMigrationServiceClient { future> DeletePrivateConnection(std::string const& name, Options opts = {}); + StatusOr DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Database Migration Service private connection. @@ -1386,6 +1560,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request, + Options opts = {}); + + future> + DeletePrivateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single conversion workspace. @@ -1556,6 +1741,13 @@ class DataMigrationServiceClient { conversion_workspace, std::string const& conversion_workspace_id, Options opts = {}); + StatusOr CreateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::clouddms::v1::ConversionWorkspace const& + conversion_workspace, + std::string const& conversion_workspace_id, Options opts = {}); + // clang-format off /// /// Creates a new conversion workspace in a given project and location. @@ -1596,6 +1788,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr CreateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request, + Options opts = {}); + + future> + CreateConversionWorkspace(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single conversion workspace. @@ -1633,6 +1836,12 @@ class DataMigrationServiceClient { conversion_workspace, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConversionWorkspace const& + conversion_workspace, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single conversion workspace. @@ -1673,6 +1882,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr UpdateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request, + Options opts = {}); + + future> + UpdateConversionWorkspace(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single conversion workspace. @@ -1705,6 +1925,10 @@ class DataMigrationServiceClient { future> DeleteConversionWorkspace(std::string const& name, Options opts = {}); + StatusOr DeleteConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single conversion workspace. @@ -1745,6 +1969,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr DeleteConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request, + Options opts = {}); + + future> + DeleteConversionWorkspace(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new mapping rule for a given conversion workspace. @@ -2035,6 +2270,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr SeedConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request, + Options opts = {}); + + future> + SeedConversionWorkspace(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports the mapping rules for a given conversion workspace. @@ -2075,6 +2321,16 @@ class DataMigrationServiceClient { google::cloud::clouddms::v1::ImportMappingRulesRequest const& request, Options opts = {}); + StatusOr ImportMappingRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request, + Options opts = {}); + + future> + ImportMappingRules(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a draft tree schema for the destination database. @@ -2115,6 +2371,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr ConvertConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request, + Options opts = {}); + + future> + ConvertConversionWorkspace(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Marks all the data in the conversion workspace as committed. @@ -2155,6 +2422,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr CommitConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request, + Options opts = {}); + + future> + CommitConversionWorkspace(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Rolls back a conversion workspace to the last committed snapshot. @@ -2195,6 +2473,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr RollbackConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request, + Options opts = {}); + + future> + RollbackConversionWorkspace(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Applies draft tree onto a specific destination database. @@ -2235,6 +2524,17 @@ class DataMigrationServiceClient { request, Options opts = {}); + StatusOr ApplyConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request, + Options opts = {}); + + future> + ApplyConversionWorkspace(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Describes the database entities tree for a specific conversion workspace 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..b0ed20ad3b6eb 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,60 @@ DataMigrationServiceConnectionImpl::CreateMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::CreateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +255,60 @@ DataMigrationServiceConnectionImpl::UpdateMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::UpdateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +349,60 @@ DataMigrationServiceConnectionImpl::DeleteMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::DeleteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +443,60 @@ DataMigrationServiceConnectionImpl::StartMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::StartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +536,60 @@ DataMigrationServiceConnectionImpl::StopMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::StopMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +630,60 @@ DataMigrationServiceConnectionImpl::ResumeMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::ResumeMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +724,60 @@ DataMigrationServiceConnectionImpl::PromoteMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::PromoteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +818,60 @@ DataMigrationServiceConnectionImpl::VerifyMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::VerifyMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +912,60 @@ DataMigrationServiceConnectionImpl::RestartMigrationJob( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::RestartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1088,137 @@ DataMigrationServiceConnectionImpl::CreateConnectionProfile( polling_policy(*current), __func__); } -future> +StatusOr +DataMigrationServiceConnectionImpl::CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1236,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 +1280,61 @@ DataMigrationServiceConnectionImpl::DeleteConnectionProfile( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1376,61 @@ DataMigrationServiceConnectionImpl::CreatePrivateConnection( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1523,61 @@ DataMigrationServiceConnectionImpl::DeletePrivateConnection( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1671,62 @@ DataMigrationServiceConnectionImpl::CreateConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::CreateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1768,139 @@ DataMigrationServiceConnectionImpl::UpdateConversionWorkspace( polling_policy(*current), __func__); } -future> +StatusOr +DataMigrationServiceConnectionImpl::UpdateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1918,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 +2041,61 @@ DataMigrationServiceConnectionImpl::SeedConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::SeedConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2136,60 @@ DataMigrationServiceConnectionImpl::ImportMappingRules( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::ImportMappingRules( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2231,62 @@ DataMigrationServiceConnectionImpl::ConvertConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::ConvertConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2328,62 @@ DataMigrationServiceConnectionImpl::CommitConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::CommitConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2425,62 @@ DataMigrationServiceConnectionImpl::RollbackConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::RollbackConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2522,61 @@ DataMigrationServiceConnectionImpl::ApplyConversionWorkspace( polling_policy(*current), __func__); } +StatusOr +DataMigrationServiceConnectionImpl::ApplyConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..9d87e4dba2499 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request) + override; + + future> + CreateMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) override; + StatusOr UpdateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) + override; + + future> + UpdateMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) override; + StatusOr DeleteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) + override; + + future> + DeleteMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request) override; + StatusOr StartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request) + override; + + future> StartMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request) override; + StatusOr StopMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request) + override; + + future> StopMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) override; + StatusOr ResumeMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) + override; + + future> + ResumeMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) override; + StatusOr PromoteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) + override; + + future> + PromoteMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) override; + StatusOr VerifyMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) + override; + + future> + VerifyMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) override; + StatusOr RestartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) + override; + + future> + RestartMigrationJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request) override; + + future> + CreateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectionProfile( google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& request) override; + StatusOr UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request) override; + + future> + UpdateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectionProfile( google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& request) override; + StatusOr DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request) override; + + future> + DeleteConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& request) override; + StatusOr CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request) override; + + future> + CreateConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& request) override; + StatusOr UpdateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request) override; + + future> + UpdateConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& request) override; + StatusOr DeleteConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request) override; + + future> + DeleteConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request) override; + + future> + SeedConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) override; + StatusOr ImportMappingRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) + override; + + future> + ImportMappingRules(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& request) override; + StatusOr ConvertConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request) override; + + future> + ConvertConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& request) override; + StatusOr CommitConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request) override; + + future> + CommitConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& request) override; + StatusOr RollbackConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request) override; + + future> + RollbackConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& request) override; + StatusOr ApplyConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request) override; + + future> + ApplyConversionWorkspace( + google::cloud::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..16727d6016dc8 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,30 @@ DataMigrationServiceTracingConnection::CreateMigrationJob( child_->CreateMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::CreateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::CreateMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) { @@ -74,6 +98,30 @@ DataMigrationServiceTracingConnection::UpdateMigrationJob( child_->UpdateMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::UpdateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::UpdateMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) { @@ -84,6 +132,30 @@ DataMigrationServiceTracingConnection::DeleteMigrationJob( child_->DeleteMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::DeleteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::DeleteMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request) { @@ -93,6 +165,30 @@ DataMigrationServiceTracingConnection::StartMigrationJob( return internal::EndSpan(std::move(span), child_->StartMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::StartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::StartMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request) { @@ -102,6 +198,30 @@ DataMigrationServiceTracingConnection::StopMigrationJob( return internal::EndSpan(std::move(span), child_->StopMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::StopMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::StopMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) { @@ -112,6 +232,30 @@ DataMigrationServiceTracingConnection::ResumeMigrationJob( child_->ResumeMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::ResumeMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::ResumeMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) { @@ -122,6 +266,30 @@ DataMigrationServiceTracingConnection::PromoteMigrationJob( child_->PromoteMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::PromoteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::PromoteMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) { @@ -132,6 +300,30 @@ DataMigrationServiceTracingConnection::VerifyMigrationJob( child_->VerifyMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::VerifyMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::VerifyMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) { @@ -142,6 +334,30 @@ DataMigrationServiceTracingConnection::RestartMigrationJob( child_->RestartMigrationJob(request)); } +StatusOr +DataMigrationServiceTracingConnection::RestartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::RestartMigrationJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DataMigrationServiceTracingConnection::GenerateSshScript( google::cloud::clouddms::v1::GenerateSshScriptRequest const& request) { @@ -195,6 +411,33 @@ DataMigrationServiceTracingConnection::CreateConnectionProfile( child_->CreateConnectionProfile(request)); } +StatusOr +DataMigrationServiceTracingConnection::CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::CreateConnectionProfile( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::UpdateConnectionProfile( google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& @@ -207,6 +450,33 @@ DataMigrationServiceTracingConnection::UpdateConnectionProfile( child_->UpdateConnectionProfile(request)); } +StatusOr +DataMigrationServiceTracingConnection::UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::UpdateConnectionProfile( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::DeleteConnectionProfile( google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& @@ -219,6 +489,33 @@ DataMigrationServiceTracingConnection::DeleteConnectionProfile( child_->DeleteConnectionProfile(request)); } +StatusOr +DataMigrationServiceTracingConnection::DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::DeleteConnectionProfile( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& @@ -231,6 +528,33 @@ DataMigrationServiceTracingConnection::CreatePrivateConnection( child_->CreatePrivateConnection(request)); } +StatusOr +DataMigrationServiceTracingConnection::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DataMigrationServiceTracingConnection::GetPrivateConnection( google::cloud::clouddms::v1::GetPrivateConnectionRequest const& request) { @@ -265,6 +589,33 @@ DataMigrationServiceTracingConnection::DeletePrivateConnection( child_->DeletePrivateConnection(request)); } +StatusOr +DataMigrationServiceTracingConnection::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::DeletePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DataMigrationServiceTracingConnection::GetConversionWorkspace( google::cloud::clouddms::v1::GetConversionWorkspaceRequest const& request) { @@ -300,6 +651,33 @@ DataMigrationServiceTracingConnection::CreateConversionWorkspace( child_->CreateConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::CreateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::CreateConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& @@ -312,6 +690,33 @@ DataMigrationServiceTracingConnection::UpdateConversionWorkspace( child_->UpdateConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::UpdateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::UpdateConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& @@ -324,6 +729,33 @@ DataMigrationServiceTracingConnection::DeleteConversionWorkspace( child_->DeleteConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::DeleteConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::DeleteConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DataMigrationServiceTracingConnection::CreateMappingRule( google::cloud::clouddms::v1::CreateMappingRuleRequest const& request) { @@ -373,6 +805,33 @@ DataMigrationServiceTracingConnection::SeedConversionWorkspace( child_->SeedConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::SeedConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::SeedConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) { @@ -383,6 +842,30 @@ DataMigrationServiceTracingConnection::ImportMappingRules( child_->ImportMappingRules(request)); } +StatusOr +DataMigrationServiceTracingConnection::ImportMappingRules( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::ImportMappingRules( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& @@ -395,6 +878,33 @@ DataMigrationServiceTracingConnection::ConvertConversionWorkspace( child_->ConvertConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::ConvertConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::ConvertConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& @@ -407,6 +917,33 @@ DataMigrationServiceTracingConnection::CommitConversionWorkspace( child_->CommitConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::CommitConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::CommitConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& @@ -419,6 +956,33 @@ DataMigrationServiceTracingConnection::RollbackConversionWorkspace( child_->RollbackConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::RollbackConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::RollbackConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataMigrationServiceTracingConnection::ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& @@ -431,6 +995,33 @@ DataMigrationServiceTracingConnection::ApplyConversionWorkspace( child_->ApplyConversionWorkspace(request)); } +StatusOr +DataMigrationServiceTracingConnection::ApplyConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataMigrationServiceTracingConnection::ApplyConversionWorkspace( + google::cloud::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( + google::cloud::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..2eabc705df082 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request) + override; + + future> + CreateMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMigrationJob( google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) override; + StatusOr UpdateMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request) + override; + + future> + UpdateMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMigrationJob( google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) override; + StatusOr DeleteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request) + override; + + future> + DeleteMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartMigrationJob( google::cloud::clouddms::v1::StartMigrationJobRequest const& request) override; + StatusOr StartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request) + override; + + future> StartMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopMigrationJob( google::cloud::clouddms::v1::StopMigrationJobRequest const& request) override; + StatusOr StopMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request) + override; + + future> StopMigrationJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeMigrationJob( google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) override; + StatusOr ResumeMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request) + override; + + future> + ResumeMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PromoteMigrationJob( google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) override; + StatusOr PromoteMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request) + override; + + future> + PromoteMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> VerifyMigrationJob( google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) override; + StatusOr VerifyMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request) + override; + + future> + VerifyMigrationJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestartMigrationJob( google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) override; + StatusOr RestartMigrationJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request) + override; + + future> + RestartMigrationJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request) override; + + future> + CreateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectionProfile( google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& request) override; + StatusOr UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request) override; + + future> + UpdateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectionProfile( google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& request) override; + StatusOr DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request) override; + + future> + DeleteConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreatePrivateConnection( google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& request) override; + StatusOr CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request) override; + + future> + CreateConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConversionWorkspace( google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& request) override; + StatusOr UpdateConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request) override; + + future> + UpdateConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConversionWorkspace( google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& request) override; + StatusOr DeleteConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request) override; + + future> + DeleteConversionWorkspace( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request) override; + + future> + SeedConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportMappingRules( google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) override; + StatusOr ImportMappingRules( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request) + override; + + future> + ImportMappingRules(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConvertConversionWorkspace( google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& request) override; + StatusOr ConvertConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request) override; + + future> + ConvertConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CommitConversionWorkspace( google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& request) override; + StatusOr CommitConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request) override; + + future> + CommitConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackConversionWorkspace( google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& request) override; + StatusOr RollbackConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request) override; + + future> + RollbackConversionWorkspace( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApplyConversionWorkspace( google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& request) override; + StatusOr ApplyConversionWorkspace( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request) override; + + future> + ApplyConversionWorkspace( + google::cloud::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..32aa7d309d90b 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMigrationJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateMigrationJob, (google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateMigrationJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateMigrationJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMigrationJob, (google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteMigrationJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteMigrationJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartMigrationJob, (google::cloud::clouddms::v1::StartMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartMigrationJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StartMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartMigrationJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopMigrationJob, (google::cloud::clouddms::v1::StopMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopMigrationJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::StopMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopMigrationJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResumeMigrationJob, (google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResumeMigrationJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ResumeMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResumeMigrationJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PromoteMigrationJob, (google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PromoteMigrationJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::PromoteMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + PromoteMigrationJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, VerifyMigrationJob, (google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, VerifyMigrationJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::VerifyMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + VerifyMigrationJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestartMigrationJob, (google::cloud::clouddms::v1::RestartMigrationJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestartMigrationJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RestartMigrationJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestartMigrationJob, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateConnectionProfile, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConnectionProfile, @@ -148,6 +269,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateConnectionProfile, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateConnectionProfile, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnectionProfile, @@ -155,6 +289,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteConnectionProfile, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteConnectionProfile, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreatePrivateConnection, @@ -162,6 +309,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreatePrivateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreatePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreatePrivateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetPrivateConnection, @@ -181,6 +341,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePrivateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeletePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeletePrivateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetConversionWorkspace, (google::cloud::clouddms::v1::GetConversionWorkspaceRequest const& @@ -200,6 +373,20 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateConversionWorkspace, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CreateConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateConversionWorkspace, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConversionWorkspace, @@ -207,6 +394,20 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateConversionWorkspace, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::UpdateConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateConversionWorkspace, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConversionWorkspace, @@ -214,6 +415,19 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteConversionWorkspace, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::DeleteConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteConversionWorkspace, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateMappingRule, (google::cloud::clouddms::v1::CreateMappingRuleRequest const& request), @@ -241,12 +455,39 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, SeedConversionWorkspace, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::SeedConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + SeedConversionWorkspace, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportMappingRules, (google::cloud::clouddms::v1::ImportMappingRulesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportMappingRules, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ImportMappingRulesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportMappingRules, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ConvertConversionWorkspace, @@ -254,6 +495,20 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, ConvertConversionWorkspace, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ConvertConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ConvertConversionWorkspace, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CommitConversionWorkspace, @@ -261,6 +516,20 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CommitConversionWorkspace, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::CommitConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CommitConversionWorkspace, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RollbackConversionWorkspace, @@ -268,6 +537,20 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, RollbackConversionWorkspace, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::RollbackConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RollbackConversionWorkspace, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ApplyConversionWorkspace, @@ -275,6 +558,20 @@ class MockDataMigrationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, ApplyConversionWorkspace, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::clouddms::v1::ApplyConversionWorkspaceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ApplyConversionWorkspace, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), DescribeDatabaseEntities, diff --git a/google/cloud/dataplex/v1/catalog_client.cc b/google/cloud/dataplex/v1/catalog_client.cc index 57569d20b2a8f..c2814a44f344e 100644 --- a/google/cloud/dataplex/v1/catalog_client.cc +++ b/google/cloud/dataplex/v1/catalog_client.cc @@ -45,6 +45,20 @@ CatalogServiceClient::CreateEntryType( return connection_->CreateEntryType(request); } +StatusOr CatalogServiceClient::CreateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::EntryType const& entry_type, + std::string const& entry_type_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateEntryTypeRequest request; + request.set_parent(parent); + *request.mutable_entry_type() = entry_type; + request.set_entry_type_id(entry_type_id); + return connection_->CreateEntryType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::CreateEntryType( google::cloud::dataplex::v1::CreateEntryTypeRequest const& request, @@ -53,6 +67,24 @@ CatalogServiceClient::CreateEntryType( return connection_->CreateEntryType(request); } +StatusOr CatalogServiceClient::CreateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEntryType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::CreateEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEntryType(google::cloud::ExperimentalTag{}, + operation); +} + future> CatalogServiceClient::UpdateEntryType( google::cloud::dataplex::v1::EntryType const& entry_type, @@ -64,6 +96,18 @@ CatalogServiceClient::UpdateEntryType( return connection_->UpdateEntryType(request); } +StatusOr CatalogServiceClient::UpdateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::EntryType const& entry_type, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateEntryTypeRequest request; + *request.mutable_entry_type() = entry_type; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateEntryType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request, @@ -72,6 +116,24 @@ CatalogServiceClient::UpdateEntryType( return connection_->UpdateEntryType(request); } +StatusOr CatalogServiceClient::UpdateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEntryType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::UpdateEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEntryType(google::cloud::ExperimentalTag{}, + operation); +} + future> CatalogServiceClient::DeleteEntryType(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -80,6 +142,16 @@ CatalogServiceClient::DeleteEntryType(std::string const& name, Options opts) { return connection_->DeleteEntryType(request); } +StatusOr CatalogServiceClient::DeleteEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteEntryTypeRequest request; + request.set_name(name); + return connection_->DeleteEntryType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::DeleteEntryType( google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request, @@ -88,6 +160,24 @@ CatalogServiceClient::DeleteEntryType( return connection_->DeleteEntryType(request); } +StatusOr CatalogServiceClient::DeleteEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEntryType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::DeleteEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEntryType(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CatalogServiceClient::ListEntryTypes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -132,6 +222,20 @@ CatalogServiceClient::CreateAspectType( return connection_->CreateAspectType(request); } +StatusOr CatalogServiceClient::CreateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::AspectType const& aspect_type, + std::string const& aspect_type_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateAspectTypeRequest request; + request.set_parent(parent); + *request.mutable_aspect_type() = aspect_type; + request.set_aspect_type_id(aspect_type_id); + return connection_->CreateAspectType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::CreateAspectType( google::cloud::dataplex::v1::CreateAspectTypeRequest const& request, @@ -140,6 +244,24 @@ CatalogServiceClient::CreateAspectType( return connection_->CreateAspectType(request); } +StatusOr CatalogServiceClient::CreateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAspectType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::CreateAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAspectType(google::cloud::ExperimentalTag{}, + operation); +} + future> CatalogServiceClient::UpdateAspectType( google::cloud::dataplex::v1::AspectType const& aspect_type, @@ -151,6 +273,18 @@ CatalogServiceClient::UpdateAspectType( return connection_->UpdateAspectType(request); } +StatusOr CatalogServiceClient::UpdateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::AspectType const& aspect_type, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateAspectTypeRequest request; + *request.mutable_aspect_type() = aspect_type; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAspectType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request, @@ -159,6 +293,24 @@ CatalogServiceClient::UpdateAspectType( return connection_->UpdateAspectType(request); } +StatusOr CatalogServiceClient::UpdateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAspectType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::UpdateAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAspectType(google::cloud::ExperimentalTag{}, + operation); +} + future> CatalogServiceClient::DeleteAspectType(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -167,6 +319,16 @@ CatalogServiceClient::DeleteAspectType(std::string const& name, Options opts) { return connection_->DeleteAspectType(request); } +StatusOr CatalogServiceClient::DeleteAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteAspectTypeRequest request; + request.set_name(name); + return connection_->DeleteAspectType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::DeleteAspectType( google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request, @@ -175,6 +337,24 @@ CatalogServiceClient::DeleteAspectType( return connection_->DeleteAspectType(request); } +StatusOr CatalogServiceClient::DeleteAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAspectType(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::DeleteAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAspectType(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CatalogServiceClient::ListAspectTypes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -219,6 +399,20 @@ CatalogServiceClient::CreateEntryGroup( return connection_->CreateEntryGroup(request); } +StatusOr CatalogServiceClient::CreateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::EntryGroup const& entry_group, + std::string const& entry_group_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateEntryGroupRequest request; + request.set_parent(parent); + *request.mutable_entry_group() = entry_group; + request.set_entry_group_id(entry_group_id); + return connection_->CreateEntryGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::CreateEntryGroup( google::cloud::dataplex::v1::CreateEntryGroupRequest const& request, @@ -227,6 +421,24 @@ CatalogServiceClient::CreateEntryGroup( return connection_->CreateEntryGroup(request); } +StatusOr CatalogServiceClient::CreateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEntryGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::CreateEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEntryGroup(google::cloud::ExperimentalTag{}, + operation); +} + future> CatalogServiceClient::UpdateEntryGroup( google::cloud::dataplex::v1::EntryGroup const& entry_group, @@ -238,6 +450,18 @@ CatalogServiceClient::UpdateEntryGroup( return connection_->UpdateEntryGroup(request); } +StatusOr CatalogServiceClient::UpdateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::EntryGroup const& entry_group, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateEntryGroupRequest request; + *request.mutable_entry_group() = entry_group; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateEntryGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request, @@ -246,6 +470,24 @@ CatalogServiceClient::UpdateEntryGroup( return connection_->UpdateEntryGroup(request); } +StatusOr CatalogServiceClient::UpdateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEntryGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::UpdateEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEntryGroup(google::cloud::ExperimentalTag{}, + operation); +} + future> CatalogServiceClient::DeleteEntryGroup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -254,6 +496,16 @@ CatalogServiceClient::DeleteEntryGroup(std::string const& name, Options opts) { return connection_->DeleteEntryGroup(request); } +StatusOr CatalogServiceClient::DeleteEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteEntryGroupRequest request; + request.set_name(name); + return connection_->DeleteEntryGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CatalogServiceClient::DeleteEntryGroup( google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request, @@ -262,6 +514,24 @@ CatalogServiceClient::DeleteEntryGroup( return connection_->DeleteEntryGroup(request); } +StatusOr CatalogServiceClient::DeleteEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEntryGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CatalogServiceClient::DeleteEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEntryGroup(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CatalogServiceClient::ListEntryGroups(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/dataplex/v1/catalog_client.h b/google/cloud/dataplex/v1/catalog_client.h index 0f2e9c3fb2bc7..f794d845b5cae 100644 --- a/google/cloud/dataplex/v1/catalog_client.h +++ b/google/cloud/dataplex/v1/catalog_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPLEX_V1_CATALOG_CLIENT_H #include "google/cloud/dataplex/v1/catalog_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -129,6 +131,12 @@ class CatalogServiceClient { google::cloud::dataplex::v1::EntryType const& entry_type, std::string const& entry_type_id, Options opts = {}); + StatusOr CreateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::EntryType const& entry_type, + std::string const& entry_type_id, Options opts = {}); + // clang-format off /// /// Creates an EntryType @@ -167,6 +175,15 @@ class CatalogServiceClient { google::cloud::dataplex::v1::CreateEntryTypeRequest const& request, Options opts = {}); + StatusOr CreateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request, + Options opts = {}); + + future> CreateEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a EntryType resource. @@ -201,6 +218,11 @@ class CatalogServiceClient { google::cloud::dataplex::v1::EntryType const& entry_type, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::EntryType const& entry_type, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a EntryType resource. @@ -239,6 +261,15 @@ class CatalogServiceClient { google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request, Options opts = {}); + StatusOr UpdateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request, + Options opts = {}); + + future> UpdateEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a EntryType resource. @@ -272,6 +303,10 @@ class CatalogServiceClient { future> DeleteEntryType(std::string const& name, Options opts = {}); + StatusOr DeleteEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a EntryType resource. @@ -311,6 +346,16 @@ class CatalogServiceClient { google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request, Options opts = {}); + StatusOr DeleteEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request, + Options opts = {}); + + future> + DeleteEntryType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists EntryType resources in a project and location. @@ -482,6 +527,12 @@ class CatalogServiceClient { google::cloud::dataplex::v1::AspectType const& aspect_type, std::string const& aspect_type_id, Options opts = {}); + StatusOr CreateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::AspectType const& aspect_type, + std::string const& aspect_type_id, Options opts = {}); + // clang-format off /// /// Creates an AspectType @@ -520,6 +571,15 @@ class CatalogServiceClient { google::cloud::dataplex::v1::CreateAspectTypeRequest const& request, Options opts = {}); + StatusOr CreateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request, + Options opts = {}); + + future> CreateAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a AspectType resource. @@ -554,6 +614,11 @@ class CatalogServiceClient { google::cloud::dataplex::v1::AspectType const& aspect_type, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::AspectType const& aspect_type, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a AspectType resource. @@ -592,6 +657,15 @@ class CatalogServiceClient { google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request, Options opts = {}); + StatusOr UpdateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request, + Options opts = {}); + + future> UpdateAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a AspectType resource. @@ -625,6 +699,10 @@ class CatalogServiceClient { future> DeleteAspectType(std::string const& name, Options opts = {}); + StatusOr DeleteAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a AspectType resource. @@ -664,6 +742,16 @@ class CatalogServiceClient { google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request, Options opts = {}); + StatusOr DeleteAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request, + Options opts = {}); + + future> + DeleteAspectType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists AspectType resources in a project and location. @@ -835,6 +923,12 @@ class CatalogServiceClient { google::cloud::dataplex::v1::EntryGroup const& entry_group, std::string const& entry_group_id, Options opts = {}); + StatusOr CreateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::EntryGroup const& entry_group, + std::string const& entry_group_id, Options opts = {}); + // clang-format off /// /// Creates an EntryGroup @@ -873,6 +967,15 @@ class CatalogServiceClient { google::cloud::dataplex::v1::CreateEntryGroupRequest const& request, Options opts = {}); + StatusOr CreateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request, + Options opts = {}); + + future> CreateEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a EntryGroup resource. @@ -907,6 +1010,11 @@ class CatalogServiceClient { google::cloud::dataplex::v1::EntryGroup const& entry_group, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::EntryGroup const& entry_group, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a EntryGroup resource. @@ -945,6 +1053,15 @@ class CatalogServiceClient { google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request, Options opts = {}); + StatusOr UpdateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request, + Options opts = {}); + + future> UpdateEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a EntryGroup resource. @@ -978,6 +1095,10 @@ class CatalogServiceClient { future> DeleteEntryGroup(std::string const& name, Options opts = {}); + StatusOr DeleteEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a EntryGroup resource. @@ -1017,6 +1138,16 @@ class CatalogServiceClient { google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request, Options opts = {}); + StatusOr DeleteEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request, + Options opts = {}); + + future> + DeleteEntryGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists EntryGroup resources in a project and location. 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_client.h b/google/cloud/dataplex/v1/content_client.h index 20613eb6aaeec..caa203fb8c86f 100644 --- a/google/cloud/dataplex/v1/content_client.h +++ b/google/cloud/dataplex/v1/content_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPLEX_V1_CONTENT_CLIENT_H #include "google/cloud/dataplex/v1/content_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/dataplex/v1/data_scan_client.cc index f4f0c373978cf..f5d7e49f924d9 100644 --- a/google/cloud/dataplex/v1/data_scan_client.cc +++ b/google/cloud/dataplex/v1/data_scan_client.cc @@ -45,6 +45,20 @@ DataScanServiceClient::CreateDataScan( return connection_->CreateDataScan(request); } +StatusOr DataScanServiceClient::CreateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::DataScan const& data_scan, + std::string const& data_scan_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateDataScanRequest request; + request.set_parent(parent); + *request.mutable_data_scan() = data_scan; + request.set_data_scan_id(data_scan_id); + return connection_->CreateDataScan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataScanServiceClient::CreateDataScan( google::cloud::dataplex::v1::CreateDataScanRequest const& request, @@ -53,6 +67,24 @@ DataScanServiceClient::CreateDataScan( return connection_->CreateDataScan(request); } +StatusOr DataScanServiceClient::CreateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataScan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataScanServiceClient::CreateDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataScan(google::cloud::ExperimentalTag{}, + operation); +} + future> DataScanServiceClient::UpdateDataScan( google::cloud::dataplex::v1::DataScan const& data_scan, @@ -64,6 +96,18 @@ DataScanServiceClient::UpdateDataScan( return connection_->UpdateDataScan(request); } +StatusOr DataScanServiceClient::UpdateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DataScan const& data_scan, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateDataScanRequest request; + *request.mutable_data_scan() = data_scan; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDataScan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataScanServiceClient::UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request, @@ -72,6 +116,24 @@ DataScanServiceClient::UpdateDataScan( return connection_->UpdateDataScan(request); } +StatusOr DataScanServiceClient::UpdateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDataScan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataScanServiceClient::UpdateDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDataScan(google::cloud::ExperimentalTag{}, + operation); +} + future> DataScanServiceClient::DeleteDataScan(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -80,6 +142,16 @@ DataScanServiceClient::DeleteDataScan(std::string const& name, Options opts) { return connection_->DeleteDataScan(request); } +StatusOr DataScanServiceClient::DeleteDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteDataScanRequest request; + request.set_name(name); + return connection_->DeleteDataScan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataScanServiceClient::DeleteDataScan( google::cloud::dataplex::v1::DeleteDataScanRequest const& request, @@ -88,6 +160,24 @@ DataScanServiceClient::DeleteDataScan( return connection_->DeleteDataScan(request); } +StatusOr DataScanServiceClient::DeleteDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataScan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataScanServiceClient::DeleteDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataScan(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DataScanServiceClient::GetDataScan(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/dataplex/v1/data_scan_client.h b/google/cloud/dataplex/v1/data_scan_client.h index dc1103c5498a6..72f6a51409529 100644 --- a/google/cloud/dataplex/v1/data_scan_client.h +++ b/google/cloud/dataplex/v1/data_scan_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPLEX_V1_DATA_SCAN_CLIENT_H #include "google/cloud/dataplex/v1/data_scan_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -134,6 +136,12 @@ class DataScanServiceClient { google::cloud::dataplex::v1::DataScan const& data_scan, std::string const& data_scan_id, Options opts = {}); + StatusOr CreateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::DataScan const& data_scan, + std::string const& data_scan_id, Options opts = {}); + // clang-format off /// /// Creates a DataScan resource. @@ -172,6 +180,15 @@ class DataScanServiceClient { google::cloud::dataplex::v1::CreateDataScanRequest const& request, Options opts = {}); + StatusOr CreateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request, + Options opts = {}); + + future> CreateDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a DataScan resource. @@ -208,6 +225,11 @@ class DataScanServiceClient { google::cloud::dataplex::v1::DataScan const& data_scan, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DataScan const& data_scan, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a DataScan resource. @@ -246,6 +268,15 @@ class DataScanServiceClient { google::cloud::dataplex::v1::UpdateDataScanRequest const& request, Options opts = {}); + StatusOr UpdateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request, + Options opts = {}); + + future> UpdateDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a DataScan resource. @@ -281,6 +312,10 @@ class DataScanServiceClient { future> DeleteDataScan(std::string const& name, Options opts = {}); + StatusOr DeleteDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a DataScan resource. @@ -320,6 +355,16 @@ class DataScanServiceClient { google::cloud::dataplex::v1::DeleteDataScanRequest const& request, Options opts = {}); + StatusOr DeleteDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request, + Options opts = {}); + + future> + DeleteDataScan(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a DataScan resource. 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_client.cc b/google/cloud/dataplex/v1/data_taxonomy_client.cc index 1adc545768c5f..fd41fa1e30203 100644 --- a/google/cloud/dataplex/v1/data_taxonomy_client.cc +++ b/google/cloud/dataplex/v1/data_taxonomy_client.cc @@ -45,6 +45,21 @@ DataTaxonomyServiceClient::CreateDataTaxonomy( return connection_->CreateDataTaxonomy(request); } +StatusOr +DataTaxonomyServiceClient::CreateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::DataTaxonomy const& data_taxonomy, + std::string const& data_taxonomy_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateDataTaxonomyRequest request; + request.set_parent(parent); + *request.mutable_data_taxonomy() = data_taxonomy; + request.set_data_taxonomy_id(data_taxonomy_id); + return connection_->CreateDataTaxonomy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::CreateDataTaxonomy( google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request, @@ -53,6 +68,25 @@ DataTaxonomyServiceClient::CreateDataTaxonomy( return connection_->CreateDataTaxonomy(request); } +StatusOr +DataTaxonomyServiceClient::CreateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataTaxonomy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::CreateDataTaxonomy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataTaxonomy(google::cloud::ExperimentalTag{}, + operation); +} + future> DataTaxonomyServiceClient::UpdateDataTaxonomy( google::cloud::dataplex::v1::DataTaxonomy const& data_taxonomy, @@ -64,6 +98,19 @@ DataTaxonomyServiceClient::UpdateDataTaxonomy( return connection_->UpdateDataTaxonomy(request); } +StatusOr +DataTaxonomyServiceClient::UpdateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DataTaxonomy const& data_taxonomy, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest request; + *request.mutable_data_taxonomy() = data_taxonomy; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDataTaxonomy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request, @@ -72,6 +119,25 @@ DataTaxonomyServiceClient::UpdateDataTaxonomy( return connection_->UpdateDataTaxonomy(request); } +StatusOr +DataTaxonomyServiceClient::UpdateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDataTaxonomy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::UpdateDataTaxonomy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDataTaxonomy(google::cloud::ExperimentalTag{}, + operation); +} + future> DataTaxonomyServiceClient::DeleteDataTaxonomy(std::string const& name, Options opts) { @@ -81,6 +147,18 @@ DataTaxonomyServiceClient::DeleteDataTaxonomy(std::string const& name, return connection_->DeleteDataTaxonomy(request); } +StatusOr +DataTaxonomyServiceClient::DeleteDataTaxonomy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest request; + request.set_name(name); + return connection_->DeleteDataTaxonomy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request, @@ -89,6 +167,25 @@ DataTaxonomyServiceClient::DeleteDataTaxonomy( return connection_->DeleteDataTaxonomy(request); } +StatusOr +DataTaxonomyServiceClient::DeleteDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataTaxonomy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::DeleteDataTaxonomy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataTaxonomy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DataTaxonomyServiceClient::ListDataTaxonomies(std::string const& parent, Options opts) { @@ -137,6 +234,22 @@ DataTaxonomyServiceClient::CreateDataAttributeBinding( return connection_->CreateDataAttributeBinding(request); } +StatusOr +DataTaxonomyServiceClient::CreateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::DataAttributeBinding const& + data_attribute_binding, + std::string const& data_attribute_binding_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest request; + request.set_parent(parent); + *request.mutable_data_attribute_binding() = data_attribute_binding; + request.set_data_attribute_binding_id(data_attribute_binding_id); + return connection_->CreateDataAttributeBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::CreateDataAttributeBinding( google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& @@ -146,6 +259,26 @@ DataTaxonomyServiceClient::CreateDataAttributeBinding( return connection_->CreateDataAttributeBinding(request); } +StatusOr +DataTaxonomyServiceClient::CreateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataAttributeBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::CreateDataAttributeBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataAttributeBinding( + google::cloud::ExperimentalTag{}, operation); +} + future> DataTaxonomyServiceClient::UpdateDataAttributeBinding( google::cloud::dataplex::v1::DataAttributeBinding const& @@ -158,6 +291,20 @@ DataTaxonomyServiceClient::UpdateDataAttributeBinding( return connection_->UpdateDataAttributeBinding(request); } +StatusOr +DataTaxonomyServiceClient::UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DataAttributeBinding const& + data_attribute_binding, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest request; + *request.mutable_data_attribute_binding() = data_attribute_binding; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDataAttributeBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& @@ -167,6 +314,26 @@ DataTaxonomyServiceClient::UpdateDataAttributeBinding( return connection_->UpdateDataAttributeBinding(request); } +StatusOr +DataTaxonomyServiceClient::UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDataAttributeBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDataAttributeBinding( + google::cloud::ExperimentalTag{}, operation); +} + future> DataTaxonomyServiceClient::DeleteDataAttributeBinding(std::string const& name, Options opts) { @@ -176,6 +343,17 @@ DataTaxonomyServiceClient::DeleteDataAttributeBinding(std::string const& name, return connection_->DeleteDataAttributeBinding(request); } +StatusOr +DataTaxonomyServiceClient::DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest request; + request.set_name(name); + return connection_->DeleteDataAttributeBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& @@ -185,6 +363,26 @@ DataTaxonomyServiceClient::DeleteDataAttributeBinding( return connection_->DeleteDataAttributeBinding(request); } +StatusOr +DataTaxonomyServiceClient::DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataAttributeBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataAttributeBinding( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange DataTaxonomyServiceClient::ListDataAttributeBindings(std::string const& parent, Options opts) { @@ -232,6 +430,21 @@ DataTaxonomyServiceClient::CreateDataAttribute( return connection_->CreateDataAttribute(request); } +StatusOr +DataTaxonomyServiceClient::CreateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::DataAttribute const& data_attribute, + std::string const& data_attribute_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateDataAttributeRequest request; + request.set_parent(parent); + *request.mutable_data_attribute() = data_attribute; + request.set_data_attribute_id(data_attribute_id); + return connection_->CreateDataAttribute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::CreateDataAttribute( google::cloud::dataplex::v1::CreateDataAttributeRequest const& request, @@ -240,6 +453,25 @@ DataTaxonomyServiceClient::CreateDataAttribute( return connection_->CreateDataAttribute(request); } +StatusOr +DataTaxonomyServiceClient::CreateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataAttribute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::CreateDataAttribute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataAttribute(google::cloud::ExperimentalTag{}, + operation); +} + future> DataTaxonomyServiceClient::UpdateDataAttribute( google::cloud::dataplex::v1::DataAttribute const& data_attribute, @@ -251,6 +483,19 @@ DataTaxonomyServiceClient::UpdateDataAttribute( return connection_->UpdateDataAttribute(request); } +StatusOr +DataTaxonomyServiceClient::UpdateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DataAttribute const& data_attribute, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateDataAttributeRequest request; + *request.mutable_data_attribute() = data_attribute; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDataAttribute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request, @@ -259,6 +504,25 @@ DataTaxonomyServiceClient::UpdateDataAttribute( return connection_->UpdateDataAttribute(request); } +StatusOr +DataTaxonomyServiceClient::UpdateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDataAttribute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::UpdateDataAttribute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDataAttribute(google::cloud::ExperimentalTag{}, + operation); +} + future> DataTaxonomyServiceClient::DeleteDataAttribute(std::string const& name, Options opts) { @@ -268,6 +532,18 @@ DataTaxonomyServiceClient::DeleteDataAttribute(std::string const& name, return connection_->DeleteDataAttribute(request); } +StatusOr +DataTaxonomyServiceClient::DeleteDataAttribute(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteDataAttributeRequest request; + request.set_name(name); + return connection_->DeleteDataAttribute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataTaxonomyServiceClient::DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request, @@ -276,6 +552,25 @@ DataTaxonomyServiceClient::DeleteDataAttribute( return connection_->DeleteDataAttribute(request); } +StatusOr +DataTaxonomyServiceClient::DeleteDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataAttribute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataTaxonomyServiceClient::DeleteDataAttribute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataAttribute(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DataTaxonomyServiceClient::ListDataAttributes(std::string const& parent, Options opts) { diff --git a/google/cloud/dataplex/v1/data_taxonomy_client.h b/google/cloud/dataplex/v1/data_taxonomy_client.h index 0d184f4b6757e..958903e6f6f16 100644 --- a/google/cloud/dataplex/v1/data_taxonomy_client.h +++ b/google/cloud/dataplex/v1/data_taxonomy_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPLEX_V1_DATA_TAXONOMY_CLIENT_H #include "google/cloud/dataplex/v1/data_taxonomy_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -134,6 +136,12 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::DataTaxonomy const& data_taxonomy, std::string const& data_taxonomy_id, Options opts = {}); + StatusOr CreateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::DataTaxonomy const& data_taxonomy, + std::string const& data_taxonomy_id, Options opts = {}); + // clang-format off /// /// Create a DataTaxonomy resource. @@ -173,6 +181,16 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request, Options opts = {}); + StatusOr CreateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request, + Options opts = {}); + + future> + CreateDataTaxonomy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a DataTaxonomy resource. @@ -208,6 +226,11 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::DataTaxonomy const& data_taxonomy, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DataTaxonomy const& data_taxonomy, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a DataTaxonomy resource. @@ -247,6 +270,16 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request, Options opts = {}); + StatusOr UpdateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request, + Options opts = {}); + + future> + UpdateDataTaxonomy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a DataTaxonomy resource. All attributes within the DataTaxonomy @@ -281,6 +314,10 @@ class DataTaxonomyServiceClient { future> DeleteDataTaxonomy(std::string const& name, Options opts = {}); + StatusOr DeleteDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a DataTaxonomy resource. All attributes within the DataTaxonomy @@ -321,6 +358,16 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request, Options opts = {}); + StatusOr DeleteDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request, + Options opts = {}); + + future> + DeleteDataTaxonomy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists DataTaxonomy resources in a project and location. @@ -498,6 +545,13 @@ class DataTaxonomyServiceClient { data_attribute_binding, std::string const& data_attribute_binding_id, Options opts = {}); + StatusOr CreateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::DataAttributeBinding const& + data_attribute_binding, + std::string const& data_attribute_binding_id, Options opts = {}); + // clang-format off /// /// Create a DataAttributeBinding resource. @@ -538,6 +592,17 @@ class DataTaxonomyServiceClient { request, Options opts = {}); + StatusOr CreateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request, + Options opts = {}); + + future> + CreateDataAttributeBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a DataAttributeBinding resource. @@ -574,6 +639,12 @@ class DataTaxonomyServiceClient { data_attribute_binding, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DataAttributeBinding const& + data_attribute_binding, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a DataAttributeBinding resource. @@ -614,6 +685,17 @@ class DataTaxonomyServiceClient { request, Options opts = {}); + StatusOr UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request, + Options opts = {}); + + future> + UpdateDataAttributeBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a DataAttributeBinding resource. All attributes within the @@ -649,6 +731,10 @@ class DataTaxonomyServiceClient { future> DeleteDataAttributeBinding(std::string const& name, Options opts = {}); + StatusOr DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a DataAttributeBinding resource. All attributes within the @@ -691,6 +777,17 @@ class DataTaxonomyServiceClient { request, Options opts = {}); + StatusOr DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request, + Options opts = {}); + + future> + DeleteDataAttributeBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists DataAttributeBinding resources in a project and location. @@ -869,6 +966,12 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::DataAttribute const& data_attribute, std::string const& data_attribute_id, Options opts = {}); + StatusOr CreateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::DataAttribute const& data_attribute, + std::string const& data_attribute_id, Options opts = {}); + // clang-format off /// /// Create a DataAttribute resource. @@ -908,6 +1011,16 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::CreateDataAttributeRequest const& request, Options opts = {}); + StatusOr CreateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request, + Options opts = {}); + + future> + CreateDataAttribute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a DataAttribute resource. @@ -943,6 +1056,11 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::DataAttribute const& data_attribute, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DataAttribute const& data_attribute, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a DataAttribute resource. @@ -982,6 +1100,16 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request, Options opts = {}); + StatusOr UpdateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request, + Options opts = {}); + + future> + UpdateDataAttribute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a Data Attribute resource. @@ -1015,6 +1143,10 @@ class DataTaxonomyServiceClient { future> DeleteDataAttribute(std::string const& name, Options opts = {}); + StatusOr DeleteDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Data Attribute resource. @@ -1054,6 +1186,16 @@ class DataTaxonomyServiceClient { google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request, Options opts = {}); + StatusOr DeleteDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request, + Options opts = {}); + + future> + DeleteDataAttribute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Data Attribute resources in a DataTaxonomy. 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_client.cc b/google/cloud/dataplex/v1/dataplex_client.cc index c890699b2f1ec..336c5f38a290a 100644 --- a/google/cloud/dataplex/v1/dataplex_client.cc +++ b/google/cloud/dataplex/v1/dataplex_client.cc @@ -44,6 +44,19 @@ DataplexServiceClient::CreateLake(std::string const& parent, return connection_->CreateLake(request); } +StatusOr DataplexServiceClient::CreateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::dataplex::v1::Lake const& lake, + std::string const& lake_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateLakeRequest request; + request.set_parent(parent); + *request.mutable_lake() = lake; + request.set_lake_id(lake_id); + return connection_->CreateLake(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::CreateLake( google::cloud::dataplex::v1::CreateLakeRequest const& request, @@ -52,6 +65,23 @@ DataplexServiceClient::CreateLake( return connection_->CreateLake(request); } +StatusOr DataplexServiceClient::CreateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLake(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::CreateLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLake(google::cloud::ExperimentalTag{}, operation); +} + future> DataplexServiceClient::UpdateLake( google::cloud::dataplex::v1::Lake const& lake, @@ -63,6 +93,18 @@ DataplexServiceClient::UpdateLake( return connection_->UpdateLake(request); } +StatusOr DataplexServiceClient::UpdateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Lake const& lake, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateLakeRequest request; + *request.mutable_lake() = lake; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateLake(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request, @@ -71,6 +113,23 @@ DataplexServiceClient::UpdateLake( return connection_->UpdateLake(request); } +StatusOr DataplexServiceClient::UpdateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLake(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::UpdateLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLake(google::cloud::ExperimentalTag{}, operation); +} + future> DataplexServiceClient::DeleteLake(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -79,6 +138,16 @@ DataplexServiceClient::DeleteLake(std::string const& name, Options opts) { return connection_->DeleteLake(request); } +StatusOr DataplexServiceClient::DeleteLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteLakeRequest request; + request.set_name(name); + return connection_->DeleteLake(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const& request, @@ -87,6 +156,23 @@ DataplexServiceClient::DeleteLake( return connection_->DeleteLake(request); } +StatusOr DataplexServiceClient::DeleteLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLake(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::DeleteLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLake(google::cloud::ExperimentalTag{}, operation); +} + StreamRange DataplexServiceClient::ListLakes( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -143,6 +229,19 @@ DataplexServiceClient::CreateZone(std::string const& parent, return connection_->CreateZone(request); } +StatusOr DataplexServiceClient::CreateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::dataplex::v1::Zone const& zone, + std::string const& zone_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateZoneRequest request; + request.set_parent(parent); + *request.mutable_zone() = zone; + request.set_zone_id(zone_id); + return connection_->CreateZone(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::CreateZone( google::cloud::dataplex::v1::CreateZoneRequest const& request, @@ -151,6 +250,23 @@ DataplexServiceClient::CreateZone( return connection_->CreateZone(request); } +StatusOr DataplexServiceClient::CreateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateZone(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::CreateZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateZone(google::cloud::ExperimentalTag{}, operation); +} + future> DataplexServiceClient::UpdateZone( google::cloud::dataplex::v1::Zone const& zone, @@ -162,6 +278,18 @@ DataplexServiceClient::UpdateZone( return connection_->UpdateZone(request); } +StatusOr DataplexServiceClient::UpdateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Zone const& zone, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateZoneRequest request; + *request.mutable_zone() = zone; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateZone(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request, @@ -170,6 +298,23 @@ DataplexServiceClient::UpdateZone( return connection_->UpdateZone(request); } +StatusOr DataplexServiceClient::UpdateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateZone(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::UpdateZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateZone(google::cloud::ExperimentalTag{}, operation); +} + future> DataplexServiceClient::DeleteZone(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -178,6 +323,16 @@ DataplexServiceClient::DeleteZone(std::string const& name, Options opts) { return connection_->DeleteZone(request); } +StatusOr DataplexServiceClient::DeleteZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteZoneRequest request; + request.set_name(name); + return connection_->DeleteZone(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const& request, @@ -186,6 +341,23 @@ DataplexServiceClient::DeleteZone( return connection_->DeleteZone(request); } +StatusOr DataplexServiceClient::DeleteZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteZone(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::DeleteZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteZone(google::cloud::ExperimentalTag{}, operation); +} + StreamRange DataplexServiceClient::ListZones( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -242,6 +414,19 @@ DataplexServiceClient::CreateAsset( return connection_->CreateAsset(request); } +StatusOr DataplexServiceClient::CreateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::dataplex::v1::Asset const& asset, + std::string const& asset_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateAssetRequest request; + request.set_parent(parent); + *request.mutable_asset() = asset; + request.set_asset_id(asset_id); + return connection_->CreateAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::CreateAsset( google::cloud::dataplex::v1::CreateAssetRequest const& request, @@ -250,6 +435,23 @@ DataplexServiceClient::CreateAsset( return connection_->CreateAsset(request); } +StatusOr DataplexServiceClient::CreateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::CreateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAsset(google::cloud::ExperimentalTag{}, operation); +} + future> DataplexServiceClient::UpdateAsset( google::cloud::dataplex::v1::Asset const& asset, @@ -261,6 +463,18 @@ DataplexServiceClient::UpdateAsset( return connection_->UpdateAsset(request); } +StatusOr DataplexServiceClient::UpdateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Asset const& asset, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateAssetRequest request; + *request.mutable_asset() = asset; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const& request, @@ -269,6 +483,23 @@ DataplexServiceClient::UpdateAsset( return connection_->UpdateAsset(request); } +StatusOr DataplexServiceClient::UpdateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::UpdateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAsset(google::cloud::ExperimentalTag{}, operation); +} + future> DataplexServiceClient::DeleteAsset(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -277,6 +508,16 @@ DataplexServiceClient::DeleteAsset(std::string const& name, Options opts) { return connection_->DeleteAsset(request); } +StatusOr DataplexServiceClient::DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteAssetRequest request; + request.set_name(name); + return connection_->DeleteAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::DeleteAsset( google::cloud::dataplex::v1::DeleteAssetRequest const& request, @@ -285,6 +526,23 @@ DataplexServiceClient::DeleteAsset( return connection_->DeleteAsset(request); } +StatusOr DataplexServiceClient::DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::DeleteAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAsset(google::cloud::ExperimentalTag{}, operation); +} + StreamRange DataplexServiceClient::ListAssets(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -343,6 +601,19 @@ DataplexServiceClient::CreateTask(std::string const& parent, return connection_->CreateTask(request); } +StatusOr DataplexServiceClient::CreateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::dataplex::v1::Task const& task, + std::string const& task_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateTaskRequest request; + request.set_parent(parent); + *request.mutable_task() = task; + request.set_task_id(task_id); + return connection_->CreateTask(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::CreateTask( google::cloud::dataplex::v1::CreateTaskRequest const& request, @@ -351,6 +622,23 @@ DataplexServiceClient::CreateTask( return connection_->CreateTask(request); } +StatusOr DataplexServiceClient::CreateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTask(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::CreateTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTask(google::cloud::ExperimentalTag{}, operation); +} + future> DataplexServiceClient::UpdateTask( google::cloud::dataplex::v1::Task const& task, @@ -362,6 +650,18 @@ DataplexServiceClient::UpdateTask( return connection_->UpdateTask(request); } +StatusOr DataplexServiceClient::UpdateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Task const& task, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateTaskRequest request; + *request.mutable_task() = task; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTask(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request, @@ -370,6 +670,23 @@ DataplexServiceClient::UpdateTask( return connection_->UpdateTask(request); } +StatusOr DataplexServiceClient::UpdateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTask(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::UpdateTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTask(google::cloud::ExperimentalTag{}, operation); +} + future> DataplexServiceClient::DeleteTask(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -378,6 +695,16 @@ DataplexServiceClient::DeleteTask(std::string const& name, Options opts) { return connection_->DeleteTask(request); } +StatusOr DataplexServiceClient::DeleteTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteTaskRequest request; + request.set_name(name); + return connection_->DeleteTask(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const& request, @@ -386,6 +713,23 @@ DataplexServiceClient::DeleteTask( return connection_->DeleteTask(request); } +StatusOr DataplexServiceClient::DeleteTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTask(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::DeleteTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTask(google::cloud::ExperimentalTag{}, operation); +} + StreamRange DataplexServiceClient::ListTasks( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -484,6 +828,21 @@ DataplexServiceClient::CreateEnvironment( return connection_->CreateEnvironment(request); } +StatusOr +DataplexServiceClient::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::Environment const& environment, + std::string const& environment_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::CreateEnvironmentRequest request; + request.set_parent(parent); + *request.mutable_environment() = environment; + request.set_environment_id(environment_id); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::CreateEnvironment( google::cloud::dataplex::v1::CreateEnvironmentRequest const& request, @@ -492,6 +851,25 @@ DataplexServiceClient::CreateEnvironment( return connection_->CreateEnvironment(request); } +StatusOr +DataplexServiceClient::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + future> DataplexServiceClient::UpdateEnvironment( google::cloud::dataplex::v1::Environment const& environment, @@ -503,6 +881,19 @@ DataplexServiceClient::UpdateEnvironment( return connection_->UpdateEnvironment(request); } +StatusOr +DataplexServiceClient::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Environment const& environment, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::UpdateEnvironmentRequest request; + *request.mutable_environment() = environment; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request, @@ -511,6 +902,25 @@ DataplexServiceClient::UpdateEnvironment( return connection_->UpdateEnvironment(request); } +StatusOr +DataplexServiceClient::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::UpdateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + future> DataplexServiceClient::DeleteEnvironment(std::string const& name, Options opts) { @@ -520,6 +930,18 @@ DataplexServiceClient::DeleteEnvironment(std::string const& name, return connection_->DeleteEnvironment(request); } +StatusOr +DataplexServiceClient::DeleteEnvironment(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataplex::v1::DeleteEnvironmentRequest request; + request.set_name(name); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataplexServiceClient::DeleteEnvironment( google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request, @@ -528,6 +950,25 @@ DataplexServiceClient::DeleteEnvironment( return connection_->DeleteEnvironment(request); } +StatusOr +DataplexServiceClient::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataplexServiceClient::DeleteEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DataplexServiceClient::ListEnvironments(std::string const& parent, Options opts) { diff --git a/google/cloud/dataplex/v1/dataplex_client.h b/google/cloud/dataplex/v1/dataplex_client.h index 9b3fefe9088c8..457825d5afc86 100644 --- a/google/cloud/dataplex/v1/dataplex_client.h +++ b/google/cloud/dataplex/v1/dataplex_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPLEX_V1_DATAPLEX_CLIENT_H #include "google/cloud/dataplex/v1/dataplex_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -135,6 +137,11 @@ class DataplexServiceClient { std::string const& parent, google::cloud::dataplex::v1::Lake const& lake, std::string const& lake_id, Options opts = {}); + StatusOr CreateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::dataplex::v1::Lake const& lake, + std::string const& lake_id, Options opts = {}); + // clang-format off /// /// Creates a lake resource. @@ -173,6 +180,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::CreateLakeRequest const& request, Options opts = {}); + StatusOr CreateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request, + Options opts = {}); + + future> CreateLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a lake resource. @@ -208,6 +224,11 @@ class DataplexServiceClient { google::cloud::dataplex::v1::Lake const& lake, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Lake const& lake, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a lake resource. @@ -246,6 +267,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::UpdateLakeRequest const& request, Options opts = {}); + StatusOr UpdateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request, + Options opts = {}); + + future> UpdateLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a lake resource. All zones within the lake must be deleted before @@ -280,6 +310,10 @@ class DataplexServiceClient { future> DeleteLake( std::string const& name, Options opts = {}); + StatusOr DeleteLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a lake resource. All zones within the lake must be deleted before @@ -319,6 +353,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::DeleteLakeRequest const& request, Options opts = {}); + StatusOr DeleteLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request, + Options opts = {}); + + future> DeleteLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists lake resources in a project and location. @@ -570,6 +613,11 @@ class DataplexServiceClient { std::string const& parent, google::cloud::dataplex::v1::Zone const& zone, std::string const& zone_id, Options opts = {}); + StatusOr CreateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::dataplex::v1::Zone const& zone, + std::string const& zone_id, Options opts = {}); + // clang-format off /// /// Creates a zone resource within a lake. @@ -608,6 +656,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::CreateZoneRequest const& request, Options opts = {}); + StatusOr CreateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request, + Options opts = {}); + + future> CreateZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a zone resource. @@ -643,6 +700,11 @@ class DataplexServiceClient { google::cloud::dataplex::v1::Zone const& zone, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Zone const& zone, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a zone resource. @@ -681,6 +743,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::UpdateZoneRequest const& request, Options opts = {}); + StatusOr UpdateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request, + Options opts = {}); + + future> UpdateZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a zone resource. All assets within a zone must be deleted before @@ -715,6 +786,10 @@ class DataplexServiceClient { future> DeleteZone( std::string const& name, Options opts = {}); + StatusOr DeleteZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a zone resource. All assets within a zone must be deleted before @@ -754,6 +829,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::DeleteZoneRequest const& request, Options opts = {}); + StatusOr DeleteZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request, + Options opts = {}); + + future> DeleteZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists zone resources in a lake. @@ -1004,6 +1088,12 @@ class DataplexServiceClient { google::cloud::dataplex::v1::Asset const& asset, std::string const& asset_id, Options opts = {}); + StatusOr CreateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::Asset const& asset, + std::string const& asset_id, Options opts = {}); + // clang-format off /// /// Creates an asset resource. @@ -1042,6 +1132,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::CreateAssetRequest const& request, Options opts = {}); + StatusOr CreateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request, + Options opts = {}); + + future> CreateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates an asset resource. @@ -1077,6 +1176,11 @@ class DataplexServiceClient { google::cloud::dataplex::v1::Asset const& asset, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Asset const& asset, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an asset resource. @@ -1115,6 +1219,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::UpdateAssetRequest const& request, Options opts = {}); + StatusOr UpdateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request, + Options opts = {}); + + future> UpdateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an asset resource. The referenced storage resource is detached @@ -1149,6 +1262,10 @@ class DataplexServiceClient { future> DeleteAsset( std::string const& name, Options opts = {}); + StatusOr DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an asset resource. The referenced storage resource is detached @@ -1188,6 +1305,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::DeleteAssetRequest const& request, Options opts = {}); + StatusOr DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request, + Options opts = {}); + + future> DeleteAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists asset resources in a zone. @@ -1431,6 +1557,11 @@ class DataplexServiceClient { std::string const& parent, google::cloud::dataplex::v1::Task const& task, std::string const& task_id, Options opts = {}); + StatusOr CreateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::dataplex::v1::Task const& task, + std::string const& task_id, Options opts = {}); + // clang-format off /// /// Creates a task resource within a lake. @@ -1469,6 +1600,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::CreateTaskRequest const& request, Options opts = {}); + StatusOr CreateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request, + Options opts = {}); + + future> CreateTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Update the task resource. @@ -1504,6 +1644,11 @@ class DataplexServiceClient { google::cloud::dataplex::v1::Task const& task, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Task const& task, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update the task resource. @@ -1542,6 +1687,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::UpdateTaskRequest const& request, Options opts = {}); + StatusOr UpdateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request, + Options opts = {}); + + future> UpdateTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Delete the task resource. @@ -1575,6 +1729,10 @@ class DataplexServiceClient { future> DeleteTask( std::string const& name, Options opts = {}); + StatusOr DeleteTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete the task resource. @@ -1613,6 +1771,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::DeleteTaskRequest const& request, Options opts = {}); + StatusOr DeleteTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request, + Options opts = {}); + + future> DeleteTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists tasks under the given lake. @@ -2023,6 +2190,12 @@ class DataplexServiceClient { google::cloud::dataplex::v1::Environment const& environment, std::string const& environment_id, Options opts = {}); + StatusOr CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataplex::v1::Environment const& environment, + std::string const& environment_id, Options opts = {}); + // clang-format off /// /// Create an environment resource. @@ -2061,6 +2234,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::CreateEnvironmentRequest const& request, Options opts = {}); + StatusOr CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request, + Options opts = {}); + + future> CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Update the environment resource. @@ -2096,6 +2278,11 @@ class DataplexServiceClient { google::cloud::dataplex::v1::Environment const& environment, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::Environment const& environment, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update the environment resource. @@ -2134,6 +2321,15 @@ class DataplexServiceClient { google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request, Options opts = {}); + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request, + Options opts = {}); + + future> UpdateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Delete the environment resource. All the child resources must have been @@ -2168,6 +2364,10 @@ class DataplexServiceClient { future> DeleteEnvironment(std::string const& name, Options opts = {}); + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete the environment resource. All the child resources must have been @@ -2208,6 +2408,16 @@ class DataplexServiceClient { google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request, Options opts = {}); + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request, + Options opts = {}); + + future> + DeleteEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists environments under the given lake. 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..2138c4a8a86a6 100644 --- a/google/cloud/dataplex/v1/internal/catalog_connection_impl.cc +++ b/google/cloud/dataplex/v1/internal/catalog_connection_impl.cc @@ -103,6 +103,59 @@ CatalogServiceConnectionImpl::CreateEntryType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::CreateEntryType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +195,59 @@ CatalogServiceConnectionImpl::UpdateEntryType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::UpdateEntryType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +287,60 @@ CatalogServiceConnectionImpl::DeleteEntryType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::DeleteEntryType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +428,59 @@ CatalogServiceConnectionImpl::CreateAspectType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::CreateAspectType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +520,59 @@ CatalogServiceConnectionImpl::UpdateAspectType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::UpdateAspectType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +612,60 @@ CatalogServiceConnectionImpl::DeleteAspectType( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::DeleteAspectType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +753,59 @@ CatalogServiceConnectionImpl::CreateEntryGroup( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::CreateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +845,59 @@ CatalogServiceConnectionImpl::UpdateEntryGroup( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::UpdateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +937,60 @@ CatalogServiceConnectionImpl::DeleteEntryGroup( polling_policy(*current), __func__); } +StatusOr +CatalogServiceConnectionImpl::DeleteEntryGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..8632082491746 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) + override; + + future> CreateEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) override; + StatusOr UpdateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) + override; + + future> UpdateEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEntryType(google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) override; + StatusOr DeleteEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) + override; + + future> + DeleteEntryType(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) + override; + + future> CreateAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) override; + StatusOr UpdateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) + override; + + future> UpdateAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAspectType(google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) override; + StatusOr DeleteAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) + override; + + future> + DeleteAspectType(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) + override; + + future> CreateEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) override; + StatusOr UpdateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) + override; + + future> UpdateEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEntryGroup(google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) override; + StatusOr DeleteEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) + override; + + future> + DeleteEntryGroup(google::cloud::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..3d303ca19c4b1 100644 --- a/google/cloud/dataplex/v1/internal/catalog_tracing_connection.cc +++ b/google/cloud/dataplex/v1/internal/catalog_tracing_connection.cc @@ -42,6 +42,30 @@ CatalogServiceTracingConnection::CreateEntryType( return internal::EndSpan(std::move(span), child_->CreateEntryType(request)); } +StatusOr +CatalogServiceTracingConnection::CreateEntryType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::CreateEntryType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) { @@ -51,6 +75,30 @@ CatalogServiceTracingConnection::UpdateEntryType( return internal::EndSpan(std::move(span), child_->UpdateEntryType(request)); } +StatusOr +CatalogServiceTracingConnection::UpdateEntryType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::UpdateEntryType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::DeleteEntryType( google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) { @@ -60,6 +108,30 @@ CatalogServiceTracingConnection::DeleteEntryType( return internal::EndSpan(std::move(span), child_->DeleteEntryType(request)); } +StatusOr +CatalogServiceTracingConnection::DeleteEntryType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::DeleteEntryType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CatalogServiceTracingConnection::ListEntryTypes( google::cloud::dataplex::v1::ListEntryTypesRequest request) { @@ -89,6 +161,30 @@ CatalogServiceTracingConnection::CreateAspectType( return internal::EndSpan(std::move(span), child_->CreateAspectType(request)); } +StatusOr +CatalogServiceTracingConnection::CreateAspectType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::CreateAspectType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) { @@ -98,6 +194,30 @@ CatalogServiceTracingConnection::UpdateAspectType( return internal::EndSpan(std::move(span), child_->UpdateAspectType(request)); } +StatusOr +CatalogServiceTracingConnection::UpdateAspectType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::UpdateAspectType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::DeleteAspectType( google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) { @@ -107,6 +227,30 @@ CatalogServiceTracingConnection::DeleteAspectType( return internal::EndSpan(std::move(span), child_->DeleteAspectType(request)); } +StatusOr +CatalogServiceTracingConnection::DeleteAspectType( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::DeleteAspectType( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CatalogServiceTracingConnection::ListAspectTypes( google::cloud::dataplex::v1::ListAspectTypesRequest request) { @@ -136,6 +280,30 @@ CatalogServiceTracingConnection::CreateEntryGroup( return internal::EndSpan(std::move(span), child_->CreateEntryGroup(request)); } +StatusOr +CatalogServiceTracingConnection::CreateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::CreateEntryGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) { @@ -145,6 +313,30 @@ CatalogServiceTracingConnection::UpdateEntryGroup( return internal::EndSpan(std::move(span), child_->UpdateEntryGroup(request)); } +StatusOr +CatalogServiceTracingConnection::UpdateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::UpdateEntryGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CatalogServiceTracingConnection::DeleteEntryGroup( google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) { @@ -154,6 +346,30 @@ CatalogServiceTracingConnection::DeleteEntryGroup( return internal::EndSpan(std::move(span), child_->DeleteEntryGroup(request)); } +StatusOr +CatalogServiceTracingConnection::DeleteEntryGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CatalogServiceTracingConnection::DeleteEntryGroup( + google::cloud::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(google::cloud::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..e1e7ccd3e5f5c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request) + override; + + future> CreateEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEntryType( google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) override; + StatusOr UpdateEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request) + override; + + future> UpdateEntryType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEntryType(google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) override; + StatusOr DeleteEntryType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request) + override; + + future> + DeleteEntryType(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request) + override; + + future> CreateAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAspectType( google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) override; + StatusOr UpdateAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request) + override; + + future> UpdateAspectType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAspectType(google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) override; + StatusOr DeleteAspectType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request) + override; + + future> + DeleteAspectType(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request) + override; + + future> CreateEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEntryGroup( google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) override; + StatusOr UpdateEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request) + override; + + future> UpdateEntryGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEntryGroup(google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) override; + StatusOr DeleteEntryGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request) + override; + + future> + DeleteEntryGroup(google::cloud::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..2ce8970165ef2 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,59 @@ DataScanServiceConnectionImpl::CreateDataScan( polling_policy(*current), __func__); } +StatusOr +DataScanServiceConnectionImpl::CreateDataScan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +197,59 @@ DataScanServiceConnectionImpl::UpdateDataScan( polling_policy(*current), __func__); } +StatusOr +DataScanServiceConnectionImpl::UpdateDataScan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +289,60 @@ DataScanServiceConnectionImpl::DeleteDataScan( polling_policy(*current), __func__); } +StatusOr +DataScanServiceConnectionImpl::DeleteDataScan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..df213962220ff 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request) + override; + + future> CreateDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request) override; + StatusOr UpdateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request) + override; + + future> UpdateDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataScan(google::cloud::dataplex::v1::DeleteDataScanRequest const& request) override; + StatusOr DeleteDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request) + override; + + future> + DeleteDataScan(google::cloud::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..286c429511ce2 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,30 @@ DataScanServiceTracingConnection::CreateDataScan( return internal::EndSpan(std::move(span), child_->CreateDataScan(request)); } +StatusOr +DataScanServiceTracingConnection::CreateDataScan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataScanServiceTracingConnection::CreateDataScan( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataScanServiceTracingConnection::UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request) { @@ -51,6 +75,30 @@ DataScanServiceTracingConnection::UpdateDataScan( return internal::EndSpan(std::move(span), child_->UpdateDataScan(request)); } +StatusOr +DataScanServiceTracingConnection::UpdateDataScan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataScanServiceTracingConnection::UpdateDataScan( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataScanServiceTracingConnection::DeleteDataScan( google::cloud::dataplex::v1::DeleteDataScanRequest const& request) { @@ -60,6 +108,30 @@ DataScanServiceTracingConnection::DeleteDataScan( return internal::EndSpan(std::move(span), child_->DeleteDataScan(request)); } +StatusOr +DataScanServiceTracingConnection::DeleteDataScan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataScanServiceTracingConnection::DeleteDataScan( + google::cloud::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(google::cloud::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..86751b3e9ab58 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request) + override; + + future> CreateDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataScan( google::cloud::dataplex::v1::UpdateDataScanRequest const& request) override; + StatusOr UpdateDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request) + override; + + future> UpdateDataScan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataScan(google::cloud::dataplex::v1::DeleteDataScanRequest const& request) override; + StatusOr DeleteDataScan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request) + override; + + future> + DeleteDataScan(google::cloud::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..aabe9197bae3a 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,60 @@ DataTaxonomyServiceConnectionImpl::CreateDataTaxonomy( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::CreateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +201,60 @@ DataTaxonomyServiceConnectionImpl::UpdateDataTaxonomy( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::UpdateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +295,60 @@ DataTaxonomyServiceConnectionImpl::DeleteDataTaxonomy( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::DeleteDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +439,62 @@ DataTaxonomyServiceConnectionImpl::CreateDataAttributeBinding( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::CreateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +536,62 @@ DataTaxonomyServiceConnectionImpl::UpdateDataAttributeBinding( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +633,62 @@ DataTaxonomyServiceConnectionImpl::DeleteDataAttributeBinding( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +781,60 @@ DataTaxonomyServiceConnectionImpl::CreateDataAttribute( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::CreateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +875,60 @@ DataTaxonomyServiceConnectionImpl::UpdateDataAttribute( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::UpdateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +969,60 @@ DataTaxonomyServiceConnectionImpl::DeleteDataAttribute( polling_policy(*current), __func__); } +StatusOr +DataTaxonomyServiceConnectionImpl::DeleteDataAttribute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..d66954d1a5cf5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request) + override; + + future> + CreateDataTaxonomy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) override; + StatusOr UpdateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) + override; + + future> + UpdateDataTaxonomy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) override; + StatusOr DeleteDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) + override; + + future> + DeleteDataTaxonomy(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request) override; + + future> + CreateDataAttributeBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& request) override; + StatusOr UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request) override; + + future> + UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& request) override; + StatusOr DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request) override; + + future> + DeleteDataAttributeBinding( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request) + override; + + future> + CreateDataAttribute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) override; + StatusOr UpdateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) + override; + + future> + UpdateDataAttribute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) override; + StatusOr DeleteDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) + override; + + future> + DeleteDataAttribute(google::cloud::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..1084e4cd14dc0 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,30 @@ DataTaxonomyServiceTracingConnection::CreateDataTaxonomy( child_->CreateDataTaxonomy(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::CreateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::CreateDataTaxonomy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) { @@ -53,6 +77,30 @@ DataTaxonomyServiceTracingConnection::UpdateDataTaxonomy( child_->UpdateDataTaxonomy(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::UpdateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::UpdateDataTaxonomy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) { @@ -63,6 +111,30 @@ DataTaxonomyServiceTracingConnection::DeleteDataTaxonomy( child_->DeleteDataTaxonomy(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::DeleteDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::DeleteDataTaxonomy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DataTaxonomyServiceTracingConnection::ListDataTaxonomies( google::cloud::dataplex::v1::ListDataTaxonomiesRequest request) { @@ -95,6 +167,31 @@ DataTaxonomyServiceTracingConnection::CreateDataAttributeBinding( child_->CreateDataAttributeBinding(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::CreateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::CreateDataAttributeBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& @@ -106,6 +203,31 @@ DataTaxonomyServiceTracingConnection::UpdateDataAttributeBinding( child_->UpdateDataAttributeBinding(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::UpdateDataAttributeBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& @@ -117,6 +239,31 @@ DataTaxonomyServiceTracingConnection::DeleteDataAttributeBinding( child_->DeleteDataAttributeBinding(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::DeleteDataAttributeBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DataTaxonomyServiceTracingConnection::ListDataAttributeBindings( google::cloud::dataplex::v1::ListDataAttributeBindingsRequest request) { @@ -149,6 +296,30 @@ DataTaxonomyServiceTracingConnection::CreateDataAttribute( child_->CreateDataAttribute(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::CreateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::CreateDataAttribute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) { @@ -159,6 +330,30 @@ DataTaxonomyServiceTracingConnection::UpdateDataAttribute( child_->UpdateDataAttribute(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::UpdateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::UpdateDataAttribute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataTaxonomyServiceTracingConnection::DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) { @@ -169,6 +364,30 @@ DataTaxonomyServiceTracingConnection::DeleteDataAttribute( child_->DeleteDataAttribute(request)); } +StatusOr +DataTaxonomyServiceTracingConnection::DeleteDataAttribute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataTaxonomyServiceTracingConnection::DeleteDataAttribute( + google::cloud::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(google::cloud::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..506092beccf2e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request) + override; + + future> + CreateDataTaxonomy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataTaxonomy( google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) override; + StatusOr UpdateDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request) + override; + + future> + UpdateDataTaxonomy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataTaxonomy( google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) override; + StatusOr DeleteDataTaxonomy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request) + override; + + future> + DeleteDataTaxonomy(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request) override; + + future> + CreateDataAttributeBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataAttributeBinding( google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& request) override; + StatusOr UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request) override; + + future> + UpdateDataAttributeBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataAttributeBinding( google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& request) override; + StatusOr DeleteDataAttributeBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request) override; + + future> + DeleteDataAttributeBinding( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request) + override; + + future> + CreateDataAttribute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDataAttribute( google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) override; + StatusOr UpdateDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request) + override; + + future> + UpdateDataAttribute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDataAttribute( google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) override; + StatusOr DeleteDataAttribute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request) + override; + + future> + DeleteDataAttribute(google::cloud::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..43b6330f84fea 100644 --- a/google/cloud/dataplex/v1/internal/dataplex_connection_impl.cc +++ b/google/cloud/dataplex/v1/internal/dataplex_connection_impl.cc @@ -105,6 +105,58 @@ DataplexServiceConnectionImpl::CreateLake( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::CreateLake( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +196,58 @@ DataplexServiceConnectionImpl::UpdateLake( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::UpdateLake( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +287,59 @@ DataplexServiceConnectionImpl::DeleteLake( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::DeleteLake( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +460,58 @@ DataplexServiceConnectionImpl::CreateZone( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::CreateZone( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +551,58 @@ DataplexServiceConnectionImpl::UpdateZone( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::UpdateZone( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +642,59 @@ DataplexServiceConnectionImpl::DeleteZone( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::DeleteZone( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +811,169 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +991,45 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1047,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 +1171,58 @@ DataplexServiceConnectionImpl::CreateTask( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::CreateTask( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1262,58 @@ DataplexServiceConnectionImpl::UpdateTask( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::UpdateTask( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1353,59 @@ DataplexServiceConnectionImpl::DeleteTask( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::DeleteTask( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1567,60 @@ DataplexServiceConnectionImpl::CreateEnvironment( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1661,60 @@ DataplexServiceConnectionImpl::UpdateEnvironment( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1755,60 @@ DataplexServiceConnectionImpl::DeleteEnvironment( polling_policy(*current), __func__); } +StatusOr +DataplexServiceConnectionImpl::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..9bea46e1cd64c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request) override; + + future> CreateLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request) override; + StatusOr UpdateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request) override; + + future> UpdateLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const& request) override; + StatusOr DeleteLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request) override; + + future> DeleteLake( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request) override; + + future> CreateZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request) override; + StatusOr UpdateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request) override; + + future> UpdateZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const& request) override; + StatusOr DeleteZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request) override; + + future> DeleteZone( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request) override; + + future> CreateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const& request) override; + StatusOr UpdateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request) override; + + future> UpdateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAsset( google::cloud::dataplex::v1::DeleteAssetRequest const& request) override; + StatusOr DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request) override; + + future> DeleteAsset( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request) override; + + future> CreateTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request) override; + StatusOr UpdateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request) override; + + future> UpdateTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const& request) override; + StatusOr DeleteTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request) override; + + future> DeleteTask( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request) + override; + + future> CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) + override; + + future> UpdateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment(google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) + override; + + future> + DeleteEnvironment(google::cloud::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..76515a11aaf58 100644 --- a/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.cc +++ b/google/cloud/dataplex/v1/internal/dataplex_tracing_connection.cc @@ -42,6 +42,30 @@ DataplexServiceTracingConnection::CreateLake( return internal::EndSpan(std::move(span), child_->CreateLake(request)); } +StatusOr +DataplexServiceTracingConnection::CreateLake( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateLake( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request) { @@ -51,6 +75,30 @@ DataplexServiceTracingConnection::UpdateLake( return internal::EndSpan(std::move(span), child_->UpdateLake(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateLake( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateLake( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const& request) { @@ -60,6 +108,30 @@ DataplexServiceTracingConnection::DeleteLake( return internal::EndSpan(std::move(span), child_->DeleteLake(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteLake( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteLake( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListLakes( google::cloud::dataplex::v1::ListLakesRequest request) { @@ -100,6 +172,30 @@ DataplexServiceTracingConnection::CreateZone( return internal::EndSpan(std::move(span), child_->CreateZone(request)); } +StatusOr +DataplexServiceTracingConnection::CreateZone( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateZone( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request) { @@ -109,6 +205,30 @@ DataplexServiceTracingConnection::UpdateZone( return internal::EndSpan(std::move(span), child_->UpdateZone(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateZone( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateZone( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const& request) { @@ -118,6 +238,30 @@ DataplexServiceTracingConnection::DeleteZone( return internal::EndSpan(std::move(span), child_->DeleteZone(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteZone( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteZone( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListZones( google::cloud::dataplex::v1::ListZonesRequest request) { @@ -158,6 +302,30 @@ DataplexServiceTracingConnection::CreateAsset( return internal::EndSpan(std::move(span), child_->CreateAsset(request)); } +StatusOr +DataplexServiceTracingConnection::CreateAsset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateAsset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const& request) { @@ -167,6 +335,30 @@ DataplexServiceTracingConnection::UpdateAsset( return internal::EndSpan(std::move(span), child_->UpdateAsset(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateAsset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateAsset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteAsset( google::cloud::dataplex::v1::DeleteAssetRequest const& request) { @@ -176,6 +368,30 @@ DataplexServiceTracingConnection::DeleteAsset( return internal::EndSpan(std::move(span), child_->DeleteAsset(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteAsset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListAssets( google::cloud::dataplex::v1::ListAssetsRequest request) { @@ -216,6 +432,30 @@ DataplexServiceTracingConnection::CreateTask( return internal::EndSpan(std::move(span), child_->CreateTask(request)); } +StatusOr +DataplexServiceTracingConnection::CreateTask( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateTask( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request) { @@ -225,6 +465,30 @@ DataplexServiceTracingConnection::UpdateTask( return internal::EndSpan(std::move(span), child_->UpdateTask(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateTask( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateTask( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const& request) { @@ -234,6 +498,30 @@ DataplexServiceTracingConnection::DeleteTask( return internal::EndSpan(std::move(span), child_->DeleteTask(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteTask( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteTask( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DataplexServiceTracingConnection::ListTasks( google::cloud::dataplex::v1::ListTasksRequest request) { @@ -300,6 +588,30 @@ DataplexServiceTracingConnection::CreateEnvironment( return internal::EndSpan(std::move(span), child_->CreateEnvironment(request)); } +StatusOr +DataplexServiceTracingConnection::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::CreateEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) { @@ -309,6 +621,30 @@ DataplexServiceTracingConnection::UpdateEnvironment( return internal::EndSpan(std::move(span), child_->UpdateEnvironment(request)); } +StatusOr +DataplexServiceTracingConnection::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::UpdateEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataplexServiceTracingConnection::DeleteEnvironment( google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) { @@ -318,6 +654,30 @@ DataplexServiceTracingConnection::DeleteEnvironment( return internal::EndSpan(std::move(span), child_->DeleteEnvironment(request)); } +StatusOr +DataplexServiceTracingConnection::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataplexServiceTracingConnection::DeleteEnvironment( + google::cloud::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(google::cloud::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..426f864ef452d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request) override; + + future> CreateLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLake( google::cloud::dataplex::v1::UpdateLakeRequest const& request) override; + StatusOr UpdateLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request) override; + + future> UpdateLake( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLake( google::cloud::dataplex::v1::DeleteLakeRequest const& request) override; + StatusOr DeleteLake( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request) override; + + future> DeleteLake( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request) override; + + future> CreateZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateZone( google::cloud::dataplex::v1::UpdateZoneRequest const& request) override; + StatusOr UpdateZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request) override; + + future> UpdateZone( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteZone( google::cloud::dataplex::v1::DeleteZoneRequest const& request) override; + StatusOr DeleteZone( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request) override; + + future> DeleteZone( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request) override; + + future> CreateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAsset( google::cloud::dataplex::v1::UpdateAssetRequest const& request) override; + StatusOr UpdateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request) override; + + future> UpdateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAsset( google::cloud::dataplex::v1::DeleteAssetRequest const& request) override; + StatusOr DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request) override; + + future> DeleteAsset( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request) override; + + future> CreateTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTask( google::cloud::dataplex::v1::UpdateTaskRequest const& request) override; + StatusOr UpdateTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request) override; + + future> UpdateTask( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTask( google::cloud::dataplex::v1::DeleteTaskRequest const& request) override; + StatusOr DeleteTask( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request) override; + + future> DeleteTask( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request) + override; + + future> CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEnvironment( google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request) + override; + + future> UpdateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment(google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request) + override; + + future> + DeleteEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListEnvironments( google::cloud::dataplex::v1::ListEnvironmentsRequest request) override; diff --git a/google/cloud/dataplex/v1/metadata_client.h b/google/cloud/dataplex/v1/metadata_client.h index 85728bdf43cee..f7d6f3167ad12 100644 --- a/google/cloud/dataplex/v1/metadata_client.h +++ b/google/cloud/dataplex/v1/metadata_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPLEX_V1_METADATA_CLIENT_H #include "google/cloud/dataplex/v1/metadata_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..9d759590d4889 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEntryType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEntryType, (google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateEntryType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateEntryType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEntryType, (google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEntryType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEntryType, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAspectTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateAspectType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAspectType, (google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateAspectType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAspectTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAspectType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteAspectType, (google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteAspectType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAspectTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAspectType, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEntryGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEntryGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEntryGroup, (google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateEntryGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEntryGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateEntryGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEntryGroup, (google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEntryGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEntryGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEntryGroup, + (google::cloud::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..39e547fabc9dd 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataScanRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataScan, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDataScan, (google::cloud::dataplex::v1::UpdateDataScanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDataScan, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataScanRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDataScan, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDataScan, (google::cloud::dataplex::v1::DeleteDataScanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataScan, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataScanRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDataScan, + (google::cloud::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..c320dfda32fda 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataTaxonomyRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataTaxonomy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDataTaxonomy, (google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDataTaxonomy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataTaxonomyRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDataTaxonomy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDataTaxonomy, (google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataTaxonomy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataTaxonomyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDataTaxonomy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListDataTaxonomies, (google::cloud::dataplex::v1::ListDataTaxonomiesRequest request), @@ -82,6 +118,20 @@ class MockDataTaxonomyServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateDataAttributeBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateDataAttributeBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDataAttributeBinding, @@ -89,6 +139,20 @@ class MockDataTaxonomyServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateDataAttributeBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateDataAttributeBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDataAttributeBinding, @@ -96,6 +160,19 @@ class MockDataTaxonomyServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataAttributeBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeBindingRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteDataAttributeBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDataAttributeBindings, @@ -115,18 +192,54 @@ class MockDataTaxonomyServiceConnection (google::cloud::dataplex::v1::CreateDataAttributeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDataAttribute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateDataAttributeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDataAttribute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDataAttribute, (google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDataAttribute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateDataAttributeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDataAttribute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDataAttribute, (google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDataAttribute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteDataAttributeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDataAttribute, + (google::cloud::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..30d9c123205cf 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateLakeRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateLake, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateLake, (google::cloud::dataplex::v1::UpdateLakeRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateLake, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateLakeRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateLake, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteLake, (google::cloud::dataplex::v1::DeleteLakeRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteLake, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteLakeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteLake, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateZoneRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateZone, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateZone, (google::cloud::dataplex::v1::UpdateZoneRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateZone, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateZoneRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateZone, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteZone, (google::cloud::dataplex::v1::DeleteZoneRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteZone, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteZoneRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteZone, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateAssetRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateAsset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAsset, (google::cloud::dataplex::v1::UpdateAssetRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAsset, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateAssetRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateAsset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteAsset, (google::cloud::dataplex::v1::DeleteAssetRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteAsset, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteAssetRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAsset, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateTaskRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateTask, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTask, (google::cloud::dataplex::v1::UpdateTaskRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTask, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateTaskRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateTask, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteTask, (google::cloud::dataplex::v1::DeleteTaskRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteTask, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteTaskRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTask, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::CreateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEnvironment, (google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::UpdateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEnvironment, (google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataplex::v1::DeleteEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEnvironment, + (google::cloud::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_client.h b/google/cloud/dataproc/v1/autoscaling_policy_client.h index 948e1ebfb1ee1..29ba17ec1d753 100644 --- a/google/cloud/dataproc/v1/autoscaling_policy_client.h +++ b/google/cloud/dataproc/v1/autoscaling_policy_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPROC_V1_AUTOSCALING_POLICY_CLIENT_H #include "google/cloud/dataproc/v1/autoscaling_policy_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/dataproc/v1/batch_controller_client.cc index 42476efe30835..77faefcf18d0a 100644 --- a/google/cloud/dataproc/v1/batch_controller_client.cc +++ b/google/cloud/dataproc/v1/batch_controller_client.cc @@ -44,6 +44,19 @@ BatchControllerClient::CreateBatch( return connection_->CreateBatch(request); } +StatusOr BatchControllerClient::CreateBatch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::dataproc::v1::Batch const& batch, + std::string const& batch_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::CreateBatchRequest request; + request.set_parent(parent); + *request.mutable_batch() = batch; + request.set_batch_id(batch_id); + return connection_->CreateBatch(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BatchControllerClient::CreateBatch( google::cloud::dataproc::v1::CreateBatchRequest const& request, @@ -52,6 +65,23 @@ BatchControllerClient::CreateBatch( return connection_->CreateBatch(request); } +StatusOr BatchControllerClient::CreateBatch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBatch(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BatchControllerClient::CreateBatch( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBatch(google::cloud::ExperimentalTag{}, operation); +} + StatusOr BatchControllerClient::GetBatch( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/dataproc/v1/batch_controller_client.h b/google/cloud/dataproc/v1/batch_controller_client.h index 95f06f709d9a3..d53d2ecd1d7f5 100644 --- a/google/cloud/dataproc/v1/batch_controller_client.h +++ b/google/cloud/dataproc/v1/batch_controller_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPROC_V1_BATCH_CONTROLLER_CLIENT_H #include "google/cloud/dataproc/v1/batch_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,12 @@ class BatchControllerClient { google::cloud::dataproc::v1::Batch const& batch, std::string const& batch_id, Options opts = {}); + StatusOr CreateBatch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataproc::v1::Batch const& batch, + std::string const& batch_id, Options opts = {}); + // clang-format off /// /// Creates a batch workload that executes asynchronously. @@ -164,6 +172,15 @@ class BatchControllerClient { google::cloud::dataproc::v1::CreateBatchRequest const& request, Options opts = {}); + StatusOr CreateBatch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request, + Options opts = {}); + + future> CreateBatch( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the batch workload resource representation. 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_client.cc b/google/cloud/dataproc/v1/cluster_controller_client.cc index 8699bd40c623e..be42303c81174 100644 --- a/google/cloud/dataproc/v1/cluster_controller_client.cc +++ b/google/cloud/dataproc/v1/cluster_controller_client.cc @@ -44,6 +44,19 @@ ClusterControllerClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr ClusterControllerClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + google::cloud::dataproc::v1::Cluster const& cluster, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::CreateClusterRequest request; + request.set_project_id(project_id); + request.set_region(region); + *request.mutable_cluster() = cluster; + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ClusterControllerClient::CreateCluster( google::cloud::dataproc::v1::CreateClusterRequest const& request, @@ -52,6 +65,24 @@ ClusterControllerClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr ClusterControllerClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ClusterControllerClient::CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> ClusterControllerClient::UpdateCluster( std::string const& project_id, std::string const& region, @@ -68,6 +99,23 @@ ClusterControllerClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr ClusterControllerClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + std::string const& cluster_name, + google::cloud::dataproc::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::UpdateClusterRequest request; + request.set_project_id(project_id); + request.set_region(region); + request.set_cluster_name(cluster_name); + *request.mutable_cluster() = cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ClusterControllerClient::UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request, @@ -76,6 +124,24 @@ ClusterControllerClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr ClusterControllerClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ClusterControllerClient::UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> ClusterControllerClient::StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request, @@ -84,6 +150,23 @@ ClusterControllerClient::StopCluster( return connection_->StopCluster(request); } +StatusOr ClusterControllerClient::StopCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ClusterControllerClient::StopCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopCluster(google::cloud::ExperimentalTag{}, operation); +} + future> ClusterControllerClient::StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request, @@ -92,6 +175,23 @@ ClusterControllerClient::StartCluster( return connection_->StartCluster(request); } +StatusOr ClusterControllerClient::StartCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ClusterControllerClient::StartCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartCluster(google::cloud::ExperimentalTag{}, operation); +} + future> ClusterControllerClient::DeleteCluster(std::string const& project_id, std::string const& region, @@ -105,6 +205,19 @@ ClusterControllerClient::DeleteCluster(std::string const& project_id, return connection_->DeleteCluster(request); } +StatusOr ClusterControllerClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + std::string const& cluster_name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::DeleteClusterRequest request; + request.set_project_id(project_id); + request.set_region(region); + request.set_cluster_name(cluster_name); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ClusterControllerClient::DeleteCluster( google::cloud::dataproc::v1::DeleteClusterRequest const& request, @@ -113,6 +226,24 @@ ClusterControllerClient::DeleteCluster( return connection_->DeleteCluster(request); } +StatusOr ClusterControllerClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ClusterControllerClient::DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ClusterControllerClient::GetCluster(std::string const& project_id, std::string const& region, @@ -176,6 +307,22 @@ ClusterControllerClient::DiagnoseCluster(std::string const& project_id, return connection_->DiagnoseCluster(request); } +StatusOr +ClusterControllerClient::DiagnoseCluster(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& project_id, + std::string const& region, + std::string const& cluster_name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::DiagnoseClusterRequest request; + request.set_project_id(project_id); + request.set_region(region); + request.set_cluster_name(cluster_name); + return connection_->DiagnoseCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ClusterControllerClient::DiagnoseCluster( google::cloud::dataproc::v1::DiagnoseClusterRequest const& request, @@ -184,6 +331,25 @@ ClusterControllerClient::DiagnoseCluster( return connection_->DiagnoseCluster(request); } +StatusOr +ClusterControllerClient::DiagnoseCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DiagnoseCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ClusterControllerClient::DiagnoseCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DiagnoseCluster(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dataproc_v1 } // namespace cloud diff --git a/google/cloud/dataproc/v1/cluster_controller_client.h b/google/cloud/dataproc/v1/cluster_controller_client.h index b98b97d359d41..11b5857b15934 100644 --- a/google/cloud/dataproc/v1/cluster_controller_client.h +++ b/google/cloud/dataproc/v1/cluster_controller_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPROC_V1_CLUSTER_CONTROLLER_CLIENT_H #include "google/cloud/dataproc/v1/cluster_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -128,6 +130,11 @@ class ClusterControllerClient { std::string const& project_id, std::string const& region, google::cloud::dataproc::v1::Cluster const& cluster, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + google::cloud::dataproc::v1::Cluster const& cluster, Options opts = {}); + // clang-format off /// /// Creates a cluster in a project. The returned @@ -169,6 +176,15 @@ class ClusterControllerClient { google::cloud::dataproc::v1::CreateClusterRequest const& request, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request, + Options opts = {}); + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a cluster in a project. The returned @@ -222,6 +238,13 @@ class ClusterControllerClient { google::cloud::dataproc::v1::Cluster const& cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + std::string const& cluster_name, + google::cloud::dataproc::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a cluster in a project. The returned @@ -267,6 +290,15 @@ class ClusterControllerClient { google::cloud::dataproc::v1::UpdateClusterRequest const& request, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request, + Options opts = {}); + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Stops a cluster in a project. @@ -305,6 +337,15 @@ class ClusterControllerClient { google::cloud::dataproc::v1::StopClusterRequest const& request, Options opts = {}); + StatusOr StopCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request, + Options opts = {}); + + future> StopCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Starts a cluster in a project. @@ -343,6 +384,15 @@ class ClusterControllerClient { google::cloud::dataproc::v1::StartClusterRequest const& request, Options opts = {}); + StatusOr StartCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request, + Options opts = {}); + + future> StartCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a cluster in a project. The returned @@ -382,6 +432,11 @@ class ClusterControllerClient { DeleteCluster(std::string const& project_id, std::string const& region, std::string const& cluster_name, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + std::string const& cluster_name, Options opts = {}); + // clang-format off /// /// Deletes a cluster in a project. The returned @@ -424,6 +479,16 @@ class ClusterControllerClient { google::cloud::dataproc::v1::DeleteClusterRequest const& request, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request, + Options opts = {}); + + future> + DeleteCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the resource representation for a cluster in a project. @@ -661,6 +726,11 @@ class ClusterControllerClient { DiagnoseCluster(std::string const& project_id, std::string const& region, std::string const& cluster_name, Options opts = {}); + StatusOr DiagnoseCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + std::string const& cluster_name, Options opts = {}); + // clang-format off /// /// Gets cluster diagnostic information. The returned @@ -708,6 +778,16 @@ class ClusterControllerClient { google::cloud::dataproc::v1::DiagnoseClusterRequest const& request, Options opts = {}); + StatusOr DiagnoseCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request, + Options opts = {}); + + future> + DiagnoseCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..c303ae1156a71 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,59 @@ BatchControllerConnectionImpl::CreateBatch( polling_policy(*current), __func__); } +StatusOr +BatchControllerConnectionImpl::CreateBatch( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..7b2bb87225d28 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request) override; + + future> CreateBatch( + google::cloud::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..0ccbdd2db77e6 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,30 @@ BatchControllerTracingConnection::CreateBatch( return internal::EndSpan(std::move(span), child_->CreateBatch(request)); } +StatusOr +BatchControllerTracingConnection::CreateBatch( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BatchControllerTracingConnection::CreateBatch( + google::cloud::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(google::cloud::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..8da0e8dec83a2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request) override; + + future> CreateBatch( + google::cloud::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..47b4cf6e72aef 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,59 @@ ClusterControllerConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +198,59 @@ ClusterControllerConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +290,59 @@ ClusterControllerConnectionImpl::StopCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::StopCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +382,59 @@ ClusterControllerConnectionImpl::StartCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::StartCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +474,60 @@ ClusterControllerConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +615,61 @@ ClusterControllerConnectionImpl::DiagnoseCluster( polling_policy(*current), __func__); } +StatusOr +ClusterControllerConnectionImpl::DiagnoseCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..68908bece348c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request) override; + StatusOr StopCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request) override; + + future> StopCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request) override; + StatusOr StartCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request) override; + + future> StartCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::dataproc::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) + override; + + future> + DiagnoseCluster(google::cloud::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..0c490b25f4762 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,30 @@ ClusterControllerTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +ClusterControllerTracingConnection::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::CreateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ClusterControllerTracingConnection::UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request) { @@ -51,6 +75,30 @@ ClusterControllerTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +ClusterControllerTracingConnection::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::UpdateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ClusterControllerTracingConnection::StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request) { @@ -60,6 +108,30 @@ ClusterControllerTracingConnection::StopCluster( return internal::EndSpan(std::move(span), child_->StopCluster(request)); } +StatusOr +ClusterControllerTracingConnection::StopCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::StopCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ClusterControllerTracingConnection::StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request) { @@ -69,6 +141,30 @@ ClusterControllerTracingConnection::StartCluster( return internal::EndSpan(std::move(span), child_->StartCluster(request)); } +StatusOr +ClusterControllerTracingConnection::StartCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::StartCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ClusterControllerTracingConnection::DeleteCluster( google::cloud::dataproc::v1::DeleteClusterRequest const& request) { @@ -78,6 +174,30 @@ ClusterControllerTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +ClusterControllerTracingConnection::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::DeleteCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ClusterControllerTracingConnection::GetCluster( google::cloud::dataproc::v1::GetClusterRequest const& request) { @@ -107,6 +227,30 @@ ClusterControllerTracingConnection::DiagnoseCluster( return internal::EndSpan(std::move(span), child_->DiagnoseCluster(request)); } +StatusOr +ClusterControllerTracingConnection::DiagnoseCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ClusterControllerTracingConnection::DiagnoseCluster( + google::cloud::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(google::cloud::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..52253aa9cfc24 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::dataproc::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopCluster( google::cloud::dataproc::v1::StopClusterRequest const& request) override; + StatusOr StopCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request) override; + + future> StopCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartCluster( google::cloud::dataproc::v1::StartClusterRequest const& request) override; + StatusOr StartCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request) override; + + future> StartCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::dataproc::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request) + override; + + future> + DiagnoseCluster(google::cloud::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..2a4bbd1b560e6 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,58 @@ JobControllerConnectionImpl::SubmitJobAsOperation( polling_policy(*current), __func__); } +StatusOr +JobControllerConnectionImpl::SubmitJobAsOperation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..ff370184ae2ae 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request) override; + + future> SubmitJobAsOperation( + google::cloud::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..f09ebeee340d1 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,30 @@ JobControllerTracingConnection::SubmitJobAsOperation( child_->SubmitJobAsOperation(request)); } +StatusOr +JobControllerTracingConnection::SubmitJobAsOperation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobControllerTracingConnection::SubmitJobAsOperation( + google::cloud::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( + google::cloud::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..a329589256918 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request) override; + + future> SubmitJobAsOperation( + google::cloud::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..6d335740bfcc3 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,60 @@ NodeGroupControllerConnectionImpl::CreateNodeGroup( polling_policy(*current), __func__); } +StatusOr +NodeGroupControllerConnectionImpl::CreateNodeGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +198,60 @@ NodeGroupControllerConnectionImpl::ResizeNodeGroup( polling_policy(*current), __func__); } +StatusOr +NodeGroupControllerConnectionImpl::ResizeNodeGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..96e49527773fb 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) + override; + + future> CreateNodeGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) override; + StatusOr ResizeNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) + override; + + future> ResizeNodeGroup( + google::cloud::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..1ea1764bc1e6e 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,30 @@ NodeGroupControllerTracingConnection::CreateNodeGroup( return internal::EndSpan(std::move(span), child_->CreateNodeGroup(request)); } +StatusOr +NodeGroupControllerTracingConnection::CreateNodeGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupControllerTracingConnection::CreateNodeGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NodeGroupControllerTracingConnection::ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) { @@ -50,6 +74,30 @@ NodeGroupControllerTracingConnection::ResizeNodeGroup( return internal::EndSpan(std::move(span), child_->ResizeNodeGroup(request)); } +StatusOr +NodeGroupControllerTracingConnection::ResizeNodeGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NodeGroupControllerTracingConnection::ResizeNodeGroup( + google::cloud::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(google::cloud::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..84fed2303a87a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request) + override; + + future> CreateNodeGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) override; + StatusOr ResizeNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request) + override; + + future> ResizeNodeGroup( + google::cloud::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..94f1a35089b76 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,59 @@ SessionControllerConnectionImpl::CreateSession( polling_policy(*current), __func__); } +StatusOr +SessionControllerConnectionImpl::CreateSession( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +246,60 @@ SessionControllerConnectionImpl::TerminateSession( polling_policy(*current), __func__); } +StatusOr +SessionControllerConnectionImpl::TerminateSession( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +339,59 @@ SessionControllerConnectionImpl::DeleteSession( polling_policy(*current), __func__); } +StatusOr +SessionControllerConnectionImpl::DeleteSession( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..e3aa6b750ccf8 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request) + override; + + future> CreateSession( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request) + override; + + future> TerminateSession( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request) override; + StatusOr DeleteSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request) + override; + + future> DeleteSession( + google::cloud::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..9ba9c1a119ad8 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,30 @@ SessionControllerTracingConnection::CreateSession( return internal::EndSpan(std::move(span), child_->CreateSession(request)); } +StatusOr +SessionControllerTracingConnection::CreateSession( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SessionControllerTracingConnection::CreateSession( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SessionControllerTracingConnection::GetSession( google::cloud::dataproc::v1::GetSessionRequest const& request) { @@ -71,6 +95,30 @@ SessionControllerTracingConnection::TerminateSession( return internal::EndSpan(std::move(span), child_->TerminateSession(request)); } +StatusOr +SessionControllerTracingConnection::TerminateSession( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SessionControllerTracingConnection::TerminateSession( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SessionControllerTracingConnection::DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request) { @@ -80,6 +128,30 @@ SessionControllerTracingConnection::DeleteSession( return internal::EndSpan(std::move(span), child_->DeleteSession(request)); } +StatusOr +SessionControllerTracingConnection::DeleteSession( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SessionControllerTracingConnection::DeleteSession( + google::cloud::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(google::cloud::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..459e0648869f3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request) + override; + + future> CreateSession( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request) + override; + + future> TerminateSession( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request) override; + StatusOr DeleteSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request) + override; + + future> DeleteSession( + google::cloud::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..ec976e988303b 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,62 @@ WorkflowTemplateServiceConnectionImpl::InstantiateWorkflowTemplate( polling_policy(*current), __func__); } +StatusOr +WorkflowTemplateServiceConnectionImpl::InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +237,63 @@ WorkflowTemplateServiceConnectionImpl::InstantiateInlineWorkflowTemplate( polling_policy(*current), __func__); } +StatusOr +WorkflowTemplateServiceConnectionImpl::InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..312b36e7af28e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request) override; + + future> + InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1:: InstantiateInlineWorkflowTemplateRequest const& request) override; + StatusOr InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request) override; + + future> + InstantiateInlineWorkflowTemplate( + google::cloud::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..6a978e1d4fe8a 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,33 @@ WorkflowTemplateServiceTracingConnection::InstantiateWorkflowTemplate( child_->InstantiateWorkflowTemplate(request)); } +StatusOr +WorkflowTemplateServiceTracingConnection::InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkflowTemplateServiceTracingConnection::InstantiateWorkflowTemplate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> WorkflowTemplateServiceTracingConnection::InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1::InstantiateInlineWorkflowTemplateRequest const& @@ -76,6 +103,33 @@ WorkflowTemplateServiceTracingConnection::InstantiateInlineWorkflowTemplate( child_->InstantiateInlineWorkflowTemplate(request)); } +StatusOr +WorkflowTemplateServiceTracingConnection::InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkflowTemplateServiceTracingConnection::InstantiateInlineWorkflowTemplate( + google::cloud::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( + google::cloud::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..63ab125d1a5b1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request) override; + + future> + InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1:: InstantiateInlineWorkflowTemplateRequest const& request) override; + StatusOr InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request) override; + + future> + InstantiateInlineWorkflowTemplate( + google::cloud::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_client.cc b/google/cloud/dataproc/v1/job_controller_client.cc index fd3b05fc53229..817db37c83d33 100644 --- a/google/cloud/dataproc/v1/job_controller_client.cc +++ b/google/cloud/dataproc/v1/job_controller_client.cc @@ -62,6 +62,20 @@ JobControllerClient::SubmitJobAsOperation( return connection_->SubmitJobAsOperation(request); } +StatusOr +JobControllerClient::SubmitJobAsOperation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + google::cloud::dataproc::v1::Job const& job, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::SubmitJobRequest request; + request.set_project_id(project_id); + request.set_region(region); + *request.mutable_job() = job; + return connection_->SubmitJobAsOperation( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> JobControllerClient::SubmitJobAsOperation( google::cloud::dataproc::v1::SubmitJobRequest const& request, @@ -70,6 +84,25 @@ JobControllerClient::SubmitJobAsOperation( return connection_->SubmitJobAsOperation(request); } +StatusOr +JobControllerClient::SubmitJobAsOperation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SubmitJobAsOperation( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +JobControllerClient::SubmitJobAsOperation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SubmitJobAsOperation(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr JobControllerClient::GetJob( std::string const& project_id, std::string const& region, std::string const& job_id, Options opts) { diff --git a/google/cloud/dataproc/v1/job_controller_client.h b/google/cloud/dataproc/v1/job_controller_client.h index 2c2f4f8a50ed6..599261cdd0880 100644 --- a/google/cloud/dataproc/v1/job_controller_client.h +++ b/google/cloud/dataproc/v1/job_controller_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPROC_V1_JOB_CONTROLLER_CLIENT_H #include "google/cloud/dataproc/v1/job_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -183,6 +185,11 @@ class JobControllerClient { std::string const& project_id, std::string const& region, google::cloud::dataproc::v1::Job const& job, Options opts = {}); + StatusOr SubmitJobAsOperation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, std::string const& region, + google::cloud::dataproc::v1::Job const& job, Options opts = {}); + // clang-format off /// /// Submits job to a cluster. @@ -221,6 +228,15 @@ class JobControllerClient { google::cloud::dataproc::v1::SubmitJobRequest const& request, Options opts = {}); + StatusOr SubmitJobAsOperation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request, + Options opts = {}); + + future> SubmitJobAsOperation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the resource representation for a job in a project. 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..8044973abc55e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateBatchRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateBatch, + (google::cloud::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..049fbc21988fb 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,86 @@ class MockClusterControllerConnection (google::cloud::dataproc::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCluster, (google::cloud::dataproc::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopCluster, (google::cloud::dataproc::v1::StopClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, StopCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StopClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartCluster, (google::cloud::dataproc::v1::StartClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, StartCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::StartClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::dataproc::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetCluster, (google::cloud::dataproc::v1::GetClusterRequest const& request), (override)); @@ -86,6 +145,19 @@ class MockClusterControllerConnection DiagnoseCluster, (google::cloud::dataproc::v1::DiagnoseClusterRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DiagnoseCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DiagnoseClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DiagnoseCluster, + (google::cloud::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..1eac3e0a2a77a 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::SubmitJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + SubmitJobAsOperation, + (google::cloud::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..2b7d5941ca34f 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateNodeGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResizeNodeGroup, (google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResizeNodeGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResizeNodeGroup, + (google::cloud::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..0c92169d183c6 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSession, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request), + (override)); + + MOCK_METHOD(future>, + TerminateSession, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSession, (google::cloud::dataproc::v1::DeleteSessionRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteSession, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSession, + (google::cloud::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..bb1e321a3484b 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request), + (override)); + + MOCK_METHOD(future>, + InstantiateWorkflowTemplate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, InstantiateInlineWorkflowTemplate, (google::cloud::dataproc::v1:: InstantiateInlineWorkflowTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + InstantiateInlineWorkflowTemplate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + InstantiateInlineWorkflowTemplate, + (google::cloud::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_client.cc b/google/cloud/dataproc/v1/node_group_controller_client.cc index 71d16678c0af3..d4dcdc4c39671 100644 --- a/google/cloud/dataproc/v1/node_group_controller_client.cc +++ b/google/cloud/dataproc/v1/node_group_controller_client.cc @@ -45,6 +45,21 @@ NodeGroupControllerClient::CreateNodeGroup( return connection_->CreateNodeGroup(request); } +StatusOr +NodeGroupControllerClient::CreateNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataproc::v1::NodeGroup const& node_group, + std::string const& node_group_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::CreateNodeGroupRequest request; + request.set_parent(parent); + *request.mutable_node_group() = node_group; + request.set_node_group_id(node_group_id); + return connection_->CreateNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupControllerClient::CreateNodeGroup( google::cloud::dataproc::v1::CreateNodeGroupRequest const& request, @@ -53,6 +68,25 @@ NodeGroupControllerClient::CreateNodeGroup( return connection_->CreateNodeGroup(request); } +StatusOr +NodeGroupControllerClient::CreateNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupControllerClient::CreateNodeGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNodeGroup(google::cloud::ExperimentalTag{}, + operation); +} + future> NodeGroupControllerClient::ResizeNodeGroup(std::string const& name, std::int32_t size, Options opts) { @@ -63,6 +97,19 @@ NodeGroupControllerClient::ResizeNodeGroup(std::string const& name, return connection_->ResizeNodeGroup(request); } +StatusOr +NodeGroupControllerClient::ResizeNodeGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + std::int32_t size, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::ResizeNodeGroupRequest request; + request.set_name(name); + request.set_size(size); + return connection_->ResizeNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NodeGroupControllerClient::ResizeNodeGroup( google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request, @@ -71,6 +118,25 @@ NodeGroupControllerClient::ResizeNodeGroup( return connection_->ResizeNodeGroup(request); } +StatusOr +NodeGroupControllerClient::ResizeNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResizeNodeGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NodeGroupControllerClient::ResizeNodeGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResizeNodeGroup(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NodeGroupControllerClient::GetNodeGroup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/dataproc/v1/node_group_controller_client.h b/google/cloud/dataproc/v1/node_group_controller_client.h index 39478c72d3fa2..d3b19ebab592a 100644 --- a/google/cloud/dataproc/v1/node_group_controller_client.h +++ b/google/cloud/dataproc/v1/node_group_controller_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPROC_V1_NODE_GROUP_CONTROLLER_CLIENT_H #include "google/cloud/dataproc/v1/node_group_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -134,6 +136,12 @@ class NodeGroupControllerClient { google::cloud::dataproc::v1::NodeGroup const& node_group, std::string const& node_group_id, Options opts = {}); + StatusOr CreateNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataproc::v1::NodeGroup const& node_group, + std::string const& node_group_id, Options opts = {}); + // clang-format off /// /// Creates a node group in a cluster. The returned @@ -175,6 +183,15 @@ class NodeGroupControllerClient { google::cloud::dataproc::v1::CreateNodeGroupRequest const& request, Options opts = {}); + StatusOr CreateNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateNodeGroupRequest const& request, + Options opts = {}); + + future> CreateNodeGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Resizes a node group in a cluster. The returned @@ -215,6 +232,10 @@ class NodeGroupControllerClient { future> ResizeNodeGroup( std::string const& name, std::int32_t size, Options opts = {}); + StatusOr ResizeNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::int32_t size, Options opts = {}); + // clang-format off /// /// Resizes a node group in a cluster. The returned @@ -256,6 +277,15 @@ class NodeGroupControllerClient { google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request, Options opts = {}); + StatusOr ResizeNodeGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::ResizeNodeGroupRequest const& request, + Options opts = {}); + + future> ResizeNodeGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the resource representation for a node group in a 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_client.cc b/google/cloud/dataproc/v1/session_controller_client.cc index 8873b37151291..49d066d283125 100644 --- a/google/cloud/dataproc/v1/session_controller_client.cc +++ b/google/cloud/dataproc/v1/session_controller_client.cc @@ -45,6 +45,20 @@ SessionControllerClient::CreateSession( return connection_->CreateSession(request); } +StatusOr SessionControllerClient::CreateSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataproc::v1::Session const& session, + std::string const& session_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::CreateSessionRequest request; + request.set_parent(parent); + *request.mutable_session() = session; + request.set_session_id(session_id); + return connection_->CreateSession(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SessionControllerClient::CreateSession( google::cloud::dataproc::v1::CreateSessionRequest const& request, @@ -53,6 +67,24 @@ SessionControllerClient::CreateSession( return connection_->CreateSession(request); } +StatusOr SessionControllerClient::CreateSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSession(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SessionControllerClient::CreateSession( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSession(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SessionControllerClient::GetSession(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -93,6 +125,18 @@ SessionControllerClient::TerminateSession(std::string const& name, return connection_->TerminateSession(request); } +StatusOr +SessionControllerClient::TerminateSession(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::TerminateSessionRequest request; + request.set_name(name); + return connection_->TerminateSession(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SessionControllerClient::TerminateSession( google::cloud::dataproc::v1::TerminateSessionRequest const& request, @@ -101,6 +145,25 @@ SessionControllerClient::TerminateSession( return connection_->TerminateSession(request); } +StatusOr +SessionControllerClient::TerminateSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TerminateSession(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SessionControllerClient::TerminateSession( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TerminateSession(google::cloud::ExperimentalTag{}, + operation); +} + future> SessionControllerClient::DeleteSession(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -109,6 +172,16 @@ SessionControllerClient::DeleteSession(std::string const& name, Options opts) { return connection_->DeleteSession(request); } +StatusOr SessionControllerClient::DeleteSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::DeleteSessionRequest request; + request.set_name(name); + return connection_->DeleteSession(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SessionControllerClient::DeleteSession( google::cloud::dataproc::v1::DeleteSessionRequest const& request, @@ -117,6 +190,24 @@ SessionControllerClient::DeleteSession( return connection_->DeleteSession(request); } +StatusOr SessionControllerClient::DeleteSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSession(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SessionControllerClient::DeleteSession( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSession(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dataproc_v1 } // namespace cloud diff --git a/google/cloud/dataproc/v1/session_controller_client.h b/google/cloud/dataproc/v1/session_controller_client.h index c8b585f2e8b92..57fd32e1fc394 100644 --- a/google/cloud/dataproc/v1/session_controller_client.h +++ b/google/cloud/dataproc/v1/session_controller_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPROC_V1_SESSION_CONTROLLER_CLIENT_H #include "google/cloud/dataproc/v1/session_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -128,6 +130,12 @@ class SessionControllerClient { google::cloud::dataproc::v1::Session const& session, std::string const& session_id, Options opts = {}); + StatusOr CreateSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataproc::v1::Session const& session, + std::string const& session_id, Options opts = {}); + // clang-format off /// /// Create an interactive session asynchronously. @@ -166,6 +174,15 @@ class SessionControllerClient { google::cloud::dataproc::v1::CreateSessionRequest const& request, Options opts = {}); + StatusOr CreateSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::CreateSessionRequest const& request, + Options opts = {}); + + future> CreateSession( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the resource representation for an interactive session. @@ -328,6 +345,10 @@ class SessionControllerClient { future> TerminateSession( std::string const& name, Options opts = {}); + StatusOr TerminateSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Terminates the interactive session. @@ -366,6 +387,15 @@ class SessionControllerClient { google::cloud::dataproc::v1::TerminateSessionRequest const& request, Options opts = {}); + StatusOr TerminateSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::TerminateSessionRequest const& request, + Options opts = {}); + + future> TerminateSession( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes the interactive session resource. If the session is not in terminal @@ -399,6 +429,10 @@ class SessionControllerClient { future> DeleteSession( std::string const& name, Options opts = {}); + StatusOr DeleteSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the interactive session resource. If the session is not in terminal @@ -438,6 +472,15 @@ class SessionControllerClient { google::cloud::dataproc::v1::DeleteSessionRequest const& request, Options opts = {}); + StatusOr DeleteSession( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::DeleteSessionRequest const& request, + Options opts = {}); + + future> DeleteSession( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/dataproc/v1/session_template_controller_client.h index 5447b5fff6a8b..2fca3ba30e061 100644 --- a/google/cloud/dataproc/v1/session_template_controller_client.h +++ b/google/cloud/dataproc/v1/session_template_controller_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPROC_V1_SESSION_TEMPLATE_CONTROLLER_CLIENT_H #include "google/cloud/dataproc/v1/session_template_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/dataproc/v1/workflow_template_client.cc index a20b874707f43..2458fe984f1df 100644 --- a/google/cloud/dataproc/v1/workflow_template_client.cc +++ b/google/cloud/dataproc/v1/workflow_template_client.cc @@ -78,6 +78,17 @@ WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( return connection_->InstantiateWorkflowTemplate(request); } +StatusOr +WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest request; + request.set_name(name); + return connection_->InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( std::string const& name, @@ -89,6 +100,19 @@ WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( return connection_->InstantiateWorkflowTemplate(request); } +StatusOr +WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + std::map const& parameters, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest request; + request.set_name(name); + *request.mutable_parameters() = {parameters.begin(), parameters.end()}; + return connection_->InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& @@ -98,6 +122,26 @@ WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( return connection_->InstantiateWorkflowTemplate(request); } +StatusOr +WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +WorkflowTemplateServiceClient::InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag{}, operation); +} + future> WorkflowTemplateServiceClient::InstantiateInlineWorkflowTemplate( std::string const& parent, @@ -110,6 +154,20 @@ WorkflowTemplateServiceClient::InstantiateInlineWorkflowTemplate( return connection_->InstantiateInlineWorkflowTemplate(request); } +StatusOr +WorkflowTemplateServiceClient::InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataproc::v1::WorkflowTemplate const& template_, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dataproc::v1::InstantiateInlineWorkflowTemplateRequest request; + request.set_parent(parent); + *request.mutable_template_() = template_; + return connection_->InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkflowTemplateServiceClient::InstantiateInlineWorkflowTemplate( google::cloud::dataproc::v1::InstantiateInlineWorkflowTemplateRequest const& @@ -119,6 +177,26 @@ WorkflowTemplateServiceClient::InstantiateInlineWorkflowTemplate( return connection_->InstantiateInlineWorkflowTemplate(request); } +StatusOr +WorkflowTemplateServiceClient::InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::InstantiateInlineWorkflowTemplateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +WorkflowTemplateServiceClient::InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr WorkflowTemplateServiceClient::UpdateWorkflowTemplate( google::cloud::dataproc::v1::WorkflowTemplate const& template_, diff --git a/google/cloud/dataproc/v1/workflow_template_client.h b/google/cloud/dataproc/v1/workflow_template_client.h index 8db2db3f4ae74..c343aaf565e0d 100644 --- a/google/cloud/dataproc/v1/workflow_template_client.h +++ b/google/cloud/dataproc/v1/workflow_template_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATAPROC_V1_WORKFLOW_TEMPLATE_CLIENT_H #include "google/cloud/dataproc/v1/workflow_template_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -297,6 +299,10 @@ class WorkflowTemplateServiceClient { future> InstantiateWorkflowTemplate(std::string const& name, Options opts = {}); + StatusOr InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Instantiates a template and begins execution. @@ -366,6 +372,11 @@ class WorkflowTemplateServiceClient { std::string const& name, std::map const& parameters, Options opts = {}); + StatusOr InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + std::map const& parameters, Options opts = {}); + // clang-format off /// /// Instantiates a template and begins execution. @@ -430,6 +441,17 @@ class WorkflowTemplateServiceClient { request, Options opts = {}); + StatusOr InstantiateWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1::InstantiateWorkflowTemplateRequest const& + request, + Options opts = {}); + + future> + InstantiateWorkflowTemplate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Instantiates a template and begins execution. @@ -507,6 +529,12 @@ class WorkflowTemplateServiceClient { google::cloud::dataproc::v1::WorkflowTemplate const& template_, Options opts = {}); + StatusOr InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dataproc::v1::WorkflowTemplate const& template_, + Options opts = {}); + // clang-format off /// /// Instantiates a template and begins execution. @@ -579,6 +607,17 @@ class WorkflowTemplateServiceClient { InstantiateInlineWorkflowTemplateRequest const& request, Options opts = {}); + StatusOr InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dataproc::v1:: + InstantiateInlineWorkflowTemplateRequest const& request, + Options opts = {}); + + future> + InstantiateInlineWorkflowTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates (replaces) workflow template. The updated template 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_client.cc b/google/cloud/datastore/admin/v1/datastore_admin_client.cc index e72229c21914d..e9b245744454c 100644 --- a/google/cloud/datastore/admin/v1/datastore_admin_client.cc +++ b/google/cloud/datastore/admin/v1/datastore_admin_client.cc @@ -47,6 +47,22 @@ DatastoreAdminClient::ExportEntities( return connection_->ExportEntities(request); } +StatusOr DatastoreAdminClient::ExportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, + std::map const& labels, + google::datastore::admin::v1::EntityFilter const& entity_filter, + std::string const& output_url_prefix, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::datastore::admin::v1::ExportEntitiesRequest request; + request.set_project_id(project_id); + *request.mutable_labels() = {labels.begin(), labels.end()}; + *request.mutable_entity_filter() = entity_filter; + request.set_output_url_prefix(output_url_prefix); + return connection_->ExportEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatastoreAdminClient::ExportEntities( google::datastore::admin::v1::ExportEntitiesRequest const& request, @@ -55,6 +71,24 @@ DatastoreAdminClient::ExportEntities( return connection_->ExportEntities(request); } +StatusOr DatastoreAdminClient::ExportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastoreAdminClient::ExportEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportEntities(google::cloud::ExperimentalTag{}, + operation); +} + future> DatastoreAdminClient::ImportEntities( std::string const& project_id, @@ -71,6 +105,23 @@ DatastoreAdminClient::ImportEntities( return connection_->ImportEntities(request); } +StatusOr DatastoreAdminClient::ImportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, + std::map const& labels, + std::string const& input_url, + google::datastore::admin::v1::EntityFilter const& entity_filter, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::datastore::admin::v1::ImportEntitiesRequest request; + request.set_project_id(project_id); + *request.mutable_labels() = {labels.begin(), labels.end()}; + request.set_input_url(input_url); + *request.mutable_entity_filter() = entity_filter; + return connection_->ImportEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatastoreAdminClient::ImportEntities( google::datastore::admin::v1::ImportEntitiesRequest const& request, @@ -79,6 +130,24 @@ DatastoreAdminClient::ImportEntities( return connection_->ImportEntities(request); } +StatusOr DatastoreAdminClient::ImportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastoreAdminClient::ImportEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportEntities(google::cloud::ExperimentalTag{}, + operation); +} + future> DatastoreAdminClient::CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request, @@ -87,6 +156,23 @@ DatastoreAdminClient::CreateIndex( return connection_->CreateIndex(request); } +StatusOr DatastoreAdminClient::CreateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastoreAdminClient::CreateIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateIndex(google::cloud::ExperimentalTag{}, operation); +} + future> DatastoreAdminClient::DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request, @@ -95,6 +181,23 @@ DatastoreAdminClient::DeleteIndex( return connection_->DeleteIndex(request); } +StatusOr DatastoreAdminClient::DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteIndex(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastoreAdminClient::DeleteIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteIndex(google::cloud::ExperimentalTag{}, operation); +} + StatusOr DatastoreAdminClient::GetIndex( google::datastore::admin::v1::GetIndexRequest const& request, Options opts) { diff --git a/google/cloud/datastore/admin/v1/datastore_admin_client.h b/google/cloud/datastore/admin/v1/datastore_admin_client.h index 02b833aa31636..2a309c904d633 100644 --- a/google/cloud/datastore/admin/v1/datastore_admin_client.h +++ b/google/cloud/datastore/admin/v1/datastore_admin_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATASTORE_ADMIN_V1_DATASTORE_ADMIN_CLIENT_H #include "google/cloud/datastore/admin/v1/datastore_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,13 @@ class DatastoreAdminClient { google::datastore::admin::v1::EntityFilter const& entity_filter, std::string const& output_url_prefix, Options opts = {}); + StatusOr ExportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, + std::map const& labels, + google::datastore::admin::v1::EntityFilter const& entity_filter, + std::string const& output_url_prefix, Options opts = {}); + // clang-format off /// /// Exports a copy of all or a subset of entities from Google Cloud Datastore @@ -243,6 +252,16 @@ class DatastoreAdminClient { google::datastore::admin::v1::ExportEntitiesRequest const& request, Options opts = {}); + StatusOr ExportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request, + Options opts = {}); + + future> + ExportEntities(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports entities into Google Cloud Datastore. Existing entities with the @@ -304,6 +323,14 @@ class DatastoreAdminClient { google::datastore::admin::v1::EntityFilter const& entity_filter, Options opts = {}); + StatusOr ImportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& project_id, + std::map const& labels, + std::string const& input_url, + google::datastore::admin::v1::EntityFilter const& entity_filter, + Options opts = {}); + // clang-format off /// /// Imports entities into Google Cloud Datastore. Existing entities with the @@ -347,6 +374,16 @@ class DatastoreAdminClient { google::datastore::admin::v1::ImportEntitiesRequest const& request, Options opts = {}); + StatusOr ImportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request, + Options opts = {}); + + future> + ImportEntities(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates the specified index. @@ -400,6 +437,15 @@ class DatastoreAdminClient { google::datastore::admin::v1::CreateIndexRequest const& request, Options opts = {}); + StatusOr CreateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request, + Options opts = {}); + + future> CreateIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an existing index. @@ -451,6 +497,15 @@ class DatastoreAdminClient { google::datastore::admin::v1::DeleteIndexRequest const& request, Options opts = {}); + StatusOr DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request, + Options opts = {}); + + future> DeleteIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets an index. 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..e294b2d23cd54 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,61 @@ DatastoreAdminConnectionImpl::ExportEntities( polling_policy(*current), __func__); } +StatusOr +DatastoreAdminConnectionImpl::ExportEntities( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +201,61 @@ DatastoreAdminConnectionImpl::ImportEntities( polling_policy(*current), __func__); } +StatusOr +DatastoreAdminConnectionImpl::ImportEntities( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +295,59 @@ DatastoreAdminConnectionImpl::CreateIndex( polling_policy(*current), __func__); } +StatusOr +DatastoreAdminConnectionImpl::CreateIndex( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +387,59 @@ DatastoreAdminConnectionImpl::DeleteIndex( polling_policy(*current), __func__); } +StatusOr +DatastoreAdminConnectionImpl::DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..56528f239f906 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request) + override; + + future> + ExportEntities(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportEntities(google::datastore::admin::v1::ImportEntitiesRequest const& request) override; + StatusOr ImportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request) + override; + + future> + ImportEntities(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request) override; + StatusOr CreateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request) override; + + future> CreateIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request) override; + StatusOr DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request) override; + + future> DeleteIndex( + google::cloud::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..b25b80ea386d4 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,30 @@ DatastoreAdminTracingConnection::ExportEntities( return internal::EndSpan(std::move(span), child_->ExportEntities(request)); } +StatusOr +DatastoreAdminTracingConnection::ExportEntities( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastoreAdminTracingConnection::ExportEntities( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatastoreAdminTracingConnection::ImportEntities( google::datastore::admin::v1::ImportEntitiesRequest const& request) { @@ -51,6 +75,30 @@ DatastoreAdminTracingConnection::ImportEntities( return internal::EndSpan(std::move(span), child_->ImportEntities(request)); } +StatusOr +DatastoreAdminTracingConnection::ImportEntities( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastoreAdminTracingConnection::ImportEntities( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatastoreAdminTracingConnection::CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request) { @@ -60,6 +108,30 @@ DatastoreAdminTracingConnection::CreateIndex( return internal::EndSpan(std::move(span), child_->CreateIndex(request)); } +StatusOr +DatastoreAdminTracingConnection::CreateIndex( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastoreAdminTracingConnection::CreateIndex( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatastoreAdminTracingConnection::DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request) { @@ -69,6 +141,30 @@ DatastoreAdminTracingConnection::DeleteIndex( return internal::EndSpan(std::move(span), child_->DeleteIndex(request)); } +StatusOr +DatastoreAdminTracingConnection::DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastoreAdminTracingConnection::DeleteIndex( + google::cloud::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(google::cloud::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..a0815939b7717 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request) + override; + + future> + ExportEntities(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportEntities(google::datastore::admin::v1::ImportEntitiesRequest const& request) override; + StatusOr ImportEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request) + override; + + future> + ImportEntities(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateIndex( google::datastore::admin::v1::CreateIndexRequest const& request) override; + StatusOr CreateIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request) override; + + future> CreateIndex( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteIndex( google::datastore::admin::v1::DeleteIndexRequest const& request) override; + StatusOr DeleteIndex( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request) override; + + future> DeleteIndex( + google::cloud::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..13e50fb1a91a9 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,70 @@ class MockDatastoreAdminConnection (google::datastore::admin::v1::ExportEntitiesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportEntities, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ExportEntitiesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportEntities, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportEntities, (google::datastore::admin::v1::ImportEntitiesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportEntities, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::ImportEntitiesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportEntities, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateIndex, (google::datastore::admin::v1::CreateIndexRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateIndex, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::CreateIndexRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateIndex, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteIndex, (google::datastore::admin::v1::DeleteIndexRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteIndex, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::datastore::admin::v1::DeleteIndexRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteIndex, + (google::cloud::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_client.h b/google/cloud/datastore/v1/datastore_client.h index 9af5ea5e504e0..3555f06851cd7 100644 --- a/google/cloud/datastore/v1/datastore_client.h +++ b/google/cloud/datastore/v1/datastore_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATASTORE_V1_DATASTORE_CLIENT_H #include "google/cloud/datastore/v1/datastore_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/datastream/v1/datastream_client.cc index d2ac73e6574c6..1b00809e35db8 100644 --- a/google/cloud/datastream/v1/datastream_client.cc +++ b/google/cloud/datastream/v1/datastream_client.cc @@ -78,6 +78,21 @@ DatastreamClient::CreateConnectionProfile( return connection_->CreateConnectionProfile(request); } +StatusOr +DatastreamClient::CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datastream::v1::ConnectionProfile const& connection_profile, + std::string const& connection_profile_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::CreateConnectionProfileRequest request; + request.set_parent(parent); + *request.mutable_connection_profile() = connection_profile; + request.set_connection_profile_id(connection_profile_id); + return connection_->CreateConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::CreateConnectionProfile( google::cloud::datastream::v1::CreateConnectionProfileRequest const& @@ -87,6 +102,26 @@ DatastreamClient::CreateConnectionProfile( return connection_->CreateConnectionProfile(request); } +StatusOr +DatastreamClient::CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::CreateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnectionProfile(google::cloud::ExperimentalTag{}, + operation); +} + future> DatastreamClient::UpdateConnectionProfile( google::cloud::datastream::v1::ConnectionProfile const& connection_profile, @@ -98,6 +133,19 @@ DatastreamClient::UpdateConnectionProfile( return connection_->UpdateConnectionProfile(request); } +StatusOr +DatastreamClient::UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::ConnectionProfile const& connection_profile, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::UpdateConnectionProfileRequest request; + *request.mutable_connection_profile() = connection_profile; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& @@ -107,6 +155,26 @@ DatastreamClient::UpdateConnectionProfile( return connection_->UpdateConnectionProfile(request); } +StatusOr +DatastreamClient::UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::UpdateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnectionProfile(google::cloud::ExperimentalTag{}, + operation); +} + future> DatastreamClient::DeleteConnectionProfile(std::string const& name, Options opts) { @@ -116,6 +184,18 @@ DatastreamClient::DeleteConnectionProfile(std::string const& name, return connection_->DeleteConnectionProfile(request); } +StatusOr +DatastreamClient::DeleteConnectionProfile(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::DeleteConnectionProfileRequest request; + request.set_name(name); + return connection_->DeleteConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& @@ -125,6 +205,26 @@ DatastreamClient::DeleteConnectionProfile( return connection_->DeleteConnectionProfile(request); } +StatusOr +DatastreamClient::DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnectionProfile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::DeleteConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnectionProfile(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DatastreamClient::DiscoverConnectionProfile( google::cloud::datastream::v1::DiscoverConnectionProfileRequest const& @@ -177,6 +277,20 @@ DatastreamClient::CreateStream( return connection_->CreateStream(request); } +StatusOr DatastreamClient::CreateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datastream::v1::Stream const& stream, + std::string const& stream_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::CreateStreamRequest request; + request.set_parent(parent); + *request.mutable_stream() = stream; + request.set_stream_id(stream_id); + return connection_->CreateStream(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::CreateStream( google::cloud::datastream::v1::CreateStreamRequest const& request, @@ -185,6 +299,23 @@ DatastreamClient::CreateStream( return connection_->CreateStream(request); } +StatusOr DatastreamClient::CreateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateStream(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::CreateStream(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateStream(google::cloud::ExperimentalTag{}, operation); +} + future> DatastreamClient::UpdateStream( google::cloud::datastream::v1::Stream const& stream, @@ -196,6 +327,18 @@ DatastreamClient::UpdateStream( return connection_->UpdateStream(request); } +StatusOr DatastreamClient::UpdateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::Stream const& stream, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::UpdateStreamRequest request; + *request.mutable_stream() = stream; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateStream(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request, @@ -204,6 +347,23 @@ DatastreamClient::UpdateStream( return connection_->UpdateStream(request); } +StatusOr DatastreamClient::UpdateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateStream(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::UpdateStream(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateStream(google::cloud::ExperimentalTag{}, operation); +} + future> DatastreamClient::DeleteStream(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -212,6 +372,16 @@ DatastreamClient::DeleteStream(std::string const& name, Options opts) { return connection_->DeleteStream(request); } +StatusOr DatastreamClient::DeleteStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::DeleteStreamRequest request; + request.set_name(name); + return connection_->DeleteStream(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::DeleteStream( google::cloud::datastream::v1::DeleteStreamRequest const& request, @@ -220,6 +390,23 @@ DatastreamClient::DeleteStream( return connection_->DeleteStream(request); } +StatusOr DatastreamClient::DeleteStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteStream(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::DeleteStream(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteStream(google::cloud::ExperimentalTag{}, operation); +} + StatusOr DatastreamClient::GetStreamObject(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -320,6 +507,21 @@ DatastreamClient::CreatePrivateConnection( return connection_->CreatePrivateConnection(request); } +StatusOr +DatastreamClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datastream::v1::PrivateConnection const& private_connection, + std::string const& private_connection_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::CreatePrivateConnectionRequest request; + request.set_parent(parent); + *request.mutable_private_connection() = private_connection; + request.set_private_connection_id(private_connection_id); + return connection_->CreatePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::CreatePrivateConnection( google::cloud::datastream::v1::CreatePrivateConnectionRequest const& @@ -329,6 +531,26 @@ DatastreamClient::CreatePrivateConnection( return connection_->CreatePrivateConnection(request); } +StatusOr +DatastreamClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePrivateConnection(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DatastreamClient::GetPrivateConnection(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -371,6 +593,18 @@ DatastreamClient::DeletePrivateConnection(std::string const& name, return connection_->DeletePrivateConnection(request); } +StatusOr +DatastreamClient::DeletePrivateConnection(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::DeletePrivateConnectionRequest request; + request.set_name(name); + return connection_->DeletePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::DeletePrivateConnection( google::cloud::datastream::v1::DeletePrivateConnectionRequest const& @@ -380,6 +614,26 @@ DatastreamClient::DeletePrivateConnection( return connection_->DeletePrivateConnection(request); } +StatusOr +DatastreamClient::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::DeletePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePrivateConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> DatastreamClient::CreateRoute(std::string const& parent, google::cloud::datastream::v1::Route const& route, @@ -392,6 +646,20 @@ DatastreamClient::CreateRoute(std::string const& parent, return connection_->CreateRoute(request); } +StatusOr DatastreamClient::CreateRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datastream::v1::Route const& route, + std::string const& route_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::CreateRouteRequest request; + request.set_parent(parent); + *request.mutable_route() = route; + request.set_route_id(route_id); + return connection_->CreateRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request, @@ -400,6 +668,23 @@ DatastreamClient::CreateRoute( return connection_->CreateRoute(request); } +StatusOr DatastreamClient::CreateRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::CreateRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRoute(google::cloud::ExperimentalTag{}, operation); +} + StatusOr DatastreamClient::GetRoute( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -437,6 +722,16 @@ DatastreamClient::DeleteRoute(std::string const& name, Options opts) { return connection_->DeleteRoute(request); } +StatusOr DatastreamClient::DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::datastream::v1::DeleteRouteRequest request; + request.set_name(name); + return connection_->DeleteRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatastreamClient::DeleteRoute( google::cloud::datastream::v1::DeleteRouteRequest const& request, @@ -445,6 +740,23 @@ DatastreamClient::DeleteRoute( return connection_->DeleteRoute(request); } +StatusOr DatastreamClient::DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatastreamClient::DeleteRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRoute(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace datastream_v1 } // namespace cloud diff --git a/google/cloud/datastream/v1/datastream_client.h b/google/cloud/datastream/v1/datastream_client.h index 1c9fa10bf049f..8fb8f76e2c76c 100644 --- a/google/cloud/datastream/v1/datastream_client.h +++ b/google/cloud/datastream/v1/datastream_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DATASTREAM_V1_DATASTREAM_CLIENT_H #include "google/cloud/datastream/v1/datastream_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -257,6 +259,13 @@ class DatastreamClient { connection_profile, std::string const& connection_profile_id, Options opts = {}); + StatusOr CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datastream::v1::ConnectionProfile const& + connection_profile, + std::string const& connection_profile_id, Options opts = {}); + // clang-format off /// /// Use this method to create a connection profile in a project and location. @@ -297,6 +306,17 @@ class DatastreamClient { request, Options opts = {}); + StatusOr CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request, + Options opts = {}); + + future> + CreateConnectionProfile(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Use this method to update the parameters of a connection profile. @@ -337,6 +357,12 @@ class DatastreamClient { connection_profile, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::ConnectionProfile const& + connection_profile, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Use this method to update the parameters of a connection profile. @@ -377,6 +403,17 @@ class DatastreamClient { request, Options opts = {}); + StatusOr UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request, + Options opts = {}); + + future> + UpdateConnectionProfile(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Use this method to delete a connection profile. @@ -409,6 +446,10 @@ class DatastreamClient { future> DeleteConnectionProfile(std::string const& name, Options opts = {}); + StatusOr DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Use this method to delete a connection profile. @@ -449,6 +490,17 @@ class DatastreamClient { request, Options opts = {}); + StatusOr DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request, + Options opts = {}); + + future> + DeleteConnectionProfile(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Use this method to discover a connection profile. @@ -651,6 +703,12 @@ class DatastreamClient { google::cloud::datastream::v1::Stream const& stream, std::string const& stream_id, Options opts = {}); + StatusOr CreateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datastream::v1::Stream const& stream, + std::string const& stream_id, Options opts = {}); + // clang-format off /// /// Use this method to create a stream. @@ -689,6 +747,15 @@ class DatastreamClient { google::cloud::datastream::v1::CreateStreamRequest const& request, Options opts = {}); + StatusOr CreateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request, + Options opts = {}); + + future> CreateStream( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Use this method to update the configuration of a stream. @@ -727,6 +794,11 @@ class DatastreamClient { google::cloud::datastream::v1::Stream const& stream, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::Stream const& stream, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Use this method to update the configuration of a stream. @@ -765,6 +837,15 @@ class DatastreamClient { google::cloud::datastream::v1::UpdateStreamRequest const& request, Options opts = {}); + StatusOr UpdateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request, + Options opts = {}); + + future> UpdateStream( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Use this method to delete a stream. @@ -797,6 +878,10 @@ class DatastreamClient { future> DeleteStream(std::string const& name, Options opts = {}); + StatusOr DeleteStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Use this method to delete a stream. @@ -836,6 +921,16 @@ class DatastreamClient { google::cloud::datastream::v1::DeleteStreamRequest const& request, Options opts = {}); + StatusOr DeleteStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request, + Options opts = {}); + + future> + DeleteStream(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Use this method to get details about a stream object. @@ -1222,6 +1317,13 @@ class DatastreamClient { private_connection, std::string const& private_connection_id, Options opts = {}); + StatusOr CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datastream::v1::PrivateConnection const& + private_connection, + std::string const& private_connection_id, Options opts = {}); + // clang-format off /// /// Use this method to create a private connectivity configuration. @@ -1262,6 +1364,17 @@ class DatastreamClient { request, Options opts = {}); + StatusOr CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request, + Options opts = {}); + + future> + CreatePrivateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Use this method to get details about a private connectivity configuration. @@ -1429,6 +1542,10 @@ class DatastreamClient { future> DeletePrivateConnection(std::string const& name, Options opts = {}); + StatusOr DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Use this method to delete a private connectivity configuration. @@ -1469,6 +1586,17 @@ class DatastreamClient { request, Options opts = {}); + StatusOr DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request, + Options opts = {}); + + future> + DeletePrivateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Use this method to create a route for a private connectivity configuration @@ -1506,6 +1634,12 @@ class DatastreamClient { google::cloud::datastream::v1::Route const& route, std::string const& route_id, Options opts = {}); + StatusOr CreateRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::datastream::v1::Route const& route, + std::string const& route_id, Options opts = {}); + // clang-format off /// /// Use this method to create a route for a private connectivity configuration @@ -1545,6 +1679,15 @@ class DatastreamClient { google::cloud::datastream::v1::CreateRouteRequest const& request, Options opts = {}); + StatusOr CreateRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request, + Options opts = {}); + + future> CreateRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Use this method to get details about a route. @@ -1709,6 +1852,10 @@ class DatastreamClient { future> DeleteRoute(std::string const& name, Options opts = {}); + StatusOr DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Use this method to delete a route. @@ -1747,6 +1894,16 @@ class DatastreamClient { DeleteRoute(google::cloud::datastream::v1::DeleteRouteRequest const& request, Options opts = {}); + StatusOr DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request, + Options opts = {}); + + future> + DeleteRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..e456f7b2e52e9 100644 --- a/google/cloud/datastream/v1/internal/datastream_connection_impl.cc +++ b/google/cloud/datastream/v1/internal/datastream_connection_impl.cc @@ -156,6 +156,62 @@ DatastreamConnectionImpl::CreateConnectionProfile( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +253,62 @@ DatastreamConnectionImpl::UpdateConnectionProfile( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +350,62 @@ DatastreamConnectionImpl::DeleteConnectionProfile( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +510,58 @@ DatastreamConnectionImpl::CreateStream( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::CreateStream( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +601,58 @@ DatastreamConnectionImpl::UpdateStream( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::UpdateStream( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +692,59 @@ DatastreamConnectionImpl::DeleteStream( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::DeleteStream( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +912,62 @@ DatastreamConnectionImpl::CreatePrivateConnection( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1060,62 @@ DatastreamConnectionImpl::DeletePrivateConnection( polling_policy(*current), __func__); } +StatusOr +DatastreamConnectionImpl::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1155,57 @@ DatastreamConnectionImpl::CreateRoute( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::CreateRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1293,58 @@ DatastreamConnectionImpl::DeleteRoute( polling_policy(*current), __func__); } +StatusOr DatastreamConnectionImpl::DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..6c01bb9578fb9 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request) override; + + future> + CreateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& request) override; + StatusOr UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request) override; + + future> + UpdateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& request) override; + StatusOr DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request) override; + + future> + DeleteConnectionProfile( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request) + override; + + future> CreateStream( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request) override; + StatusOr UpdateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request) + override; + + future> UpdateStream( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteStream(google::cloud::datastream::v1::DeleteStreamRequest const& request) override; + StatusOr DeleteStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request) + override; + + future> + DeleteStream(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request) override; + StatusOr CreateRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request) + override; + + future> CreateRoute( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request) + override; + + future> + DeleteRoute(google::cloud::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..481d69e77b396 100644 --- a/google/cloud/datastream/v1/internal/datastream_tracing_connection.cc +++ b/google/cloud/datastream/v1/internal/datastream_tracing_connection.cc @@ -65,6 +65,31 @@ DatastreamTracingConnection::CreateConnectionProfile( child_->CreateConnectionProfile(request)); } +StatusOr +DatastreamTracingConnection::CreateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::CreateConnectionProfile( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& @@ -76,6 +101,31 @@ DatastreamTracingConnection::UpdateConnectionProfile( child_->UpdateConnectionProfile(request)); } +StatusOr +DatastreamTracingConnection::UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::UpdateConnectionProfile( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& @@ -87,6 +137,31 @@ DatastreamTracingConnection::DeleteConnectionProfile( child_->DeleteConnectionProfile(request)); } +StatusOr +DatastreamTracingConnection::DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::DeleteConnectionProfile( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatastreamTracingConnection::DiscoverConnectionProfile( google::cloud::datastream::v1::DiscoverConnectionProfileRequest const& @@ -126,6 +201,30 @@ DatastreamTracingConnection::CreateStream( return internal::EndSpan(std::move(span), child_->CreateStream(request)); } +StatusOr +DatastreamTracingConnection::CreateStream( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::CreateStream( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request) { @@ -135,6 +234,30 @@ DatastreamTracingConnection::UpdateStream( return internal::EndSpan(std::move(span), child_->UpdateStream(request)); } +StatusOr +DatastreamTracingConnection::UpdateStream( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::UpdateStream( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::DeleteStream( google::cloud::datastream::v1::DeleteStreamRequest const& request) { @@ -144,6 +267,30 @@ DatastreamTracingConnection::DeleteStream( return internal::EndSpan(std::move(span), child_->DeleteStream(request)); } +StatusOr +DatastreamTracingConnection::DeleteStream( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::DeleteStream( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatastreamTracingConnection::GetStreamObject( google::cloud::datastream::v1::GetStreamObjectRequest const& request) { @@ -213,6 +360,31 @@ DatastreamTracingConnection::CreatePrivateConnection( child_->CreatePrivateConnection(request)); } +StatusOr +DatastreamTracingConnection::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatastreamTracingConnection::GetPrivateConnection( google::cloud::datastream::v1::GetPrivateConnectionRequest const& request) { @@ -245,6 +417,31 @@ DatastreamTracingConnection::DeletePrivateConnection( child_->DeletePrivateConnection(request)); } +StatusOr +DatastreamTracingConnection::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::DeletePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DatastreamTracingConnection::CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request) { @@ -254,6 +451,30 @@ DatastreamTracingConnection::CreateRoute( return internal::EndSpan(std::move(span), child_->CreateRoute(request)); } +StatusOr +DatastreamTracingConnection::CreateRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::CreateRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatastreamTracingConnection::GetRoute( google::cloud::datastream::v1::GetRouteRequest const& request) { @@ -283,6 +504,30 @@ DatastreamTracingConnection::DeleteRoute( return internal::EndSpan(std::move(span), child_->DeleteRoute(request)); } +StatusOr +DatastreamTracingConnection::DeleteRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatastreamTracingConnection::DeleteRoute( + google::cloud::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(google::cloud::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..1be6829ee6b75 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request) override; + + future> + CreateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectionProfile( google::cloud::datastream::v1::UpdateConnectionProfileRequest const& request) override; + StatusOr UpdateConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request) override; + + future> + UpdateConnectionProfile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectionProfile( google::cloud::datastream::v1::DeleteConnectionProfileRequest const& request) override; + StatusOr DeleteConnectionProfile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request) override; + + future> + DeleteConnectionProfile( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request) + override; + + future> CreateStream( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateStream( google::cloud::datastream::v1::UpdateStreamRequest const& request) override; + StatusOr UpdateStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request) + override; + + future> UpdateStream( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteStream(google::cloud::datastream::v1::DeleteStreamRequest const& request) override; + StatusOr DeleteStream( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request) + override; + + future> + DeleteStream(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRoute( google::cloud::datastream::v1::CreateRouteRequest const& request) override; + StatusOr CreateRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request) + override; + + future> CreateRoute( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request) + override; + + future> + DeleteRoute(google::cloud::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..5dccb64be09a0 100644 --- a/google/cloud/datastream/v1/mocks/mock_datastream_connection.h +++ b/google/cloud/datastream/v1/mocks/mock_datastream_connection.h @@ -65,6 +65,20 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateConnectionProfile, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateConnectionProfile, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConnectionProfile, @@ -72,6 +86,20 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, UpdateConnectionProfile, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateConnectionProfile, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnectionProfile, @@ -79,6 +107,20 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteConnectionProfile, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteConnectionProfileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteConnectionProfile, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::cloud::datastream::v1::DiscoverConnectionProfileResponse>, @@ -100,17 +142,54 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { (google::cloud::datastream::v1::CreateStreamRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateStream, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateStreamRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateStream, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateStream, (google::cloud::datastream::v1::UpdateStreamRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateStream, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::UpdateStreamRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateStream, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteStream, (google::cloud::datastream::v1::DeleteStreamRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteStream, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteStreamRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteStream, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetStreamObject, (google::cloud::datastream::v1::GetStreamObjectRequest const& request), @@ -149,6 +228,20 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreatePrivateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreatePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreatePrivateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetPrivateConnection, (google::cloud::datastream::v1::GetPrivateConnectionRequest const& @@ -168,11 +261,37 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeletePrivateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeletePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeletePrivateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateRoute, (google::cloud::datastream::v1::CreateRouteRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::CreateRouteRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetRoute, (google::cloud::datastream::v1::GetRouteRequest const& request), (override)); @@ -186,6 +305,19 @@ class MockDatastreamConnection : public datastream_v1::DatastreamConnection { DeleteRoute, (google::cloud::datastream::v1::DeleteRouteRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::datastream::v1::DeleteRouteRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/deploy/v1/cloud_deploy_client.cc b/google/cloud/deploy/v1/cloud_deploy_client.cc index c6af878a7aac1..3bdd1b6392818 100644 --- a/google/cloud/deploy/v1/cloud_deploy_client.cc +++ b/google/cloud/deploy/v1/cloud_deploy_client.cc @@ -78,6 +78,21 @@ CloudDeployClient::CreateDeliveryPipeline( return connection_->CreateDeliveryPipeline(request); } +StatusOr +CloudDeployClient::CreateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::DeliveryPipeline const& delivery_pipeline, + std::string const& delivery_pipeline_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::CreateDeliveryPipelineRequest request; + request.set_parent(parent); + *request.mutable_delivery_pipeline() = delivery_pipeline; + request.set_delivery_pipeline_id(delivery_pipeline_id); + return connection_->CreateDeliveryPipeline( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::CreateDeliveryPipeline( google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request, @@ -86,6 +101,25 @@ CloudDeployClient::CreateDeliveryPipeline( return connection_->CreateDeliveryPipeline(request); } +StatusOr +CloudDeployClient::CreateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDeliveryPipeline( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::CreateDeliveryPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDeliveryPipeline(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudDeployClient::UpdateDeliveryPipeline( google::cloud::deploy::v1::DeliveryPipeline const& delivery_pipeline, @@ -97,6 +131,19 @@ CloudDeployClient::UpdateDeliveryPipeline( return connection_->UpdateDeliveryPipeline(request); } +StatusOr +CloudDeployClient::UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeliveryPipeline const& delivery_pipeline, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest request; + *request.mutable_delivery_pipeline() = delivery_pipeline; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDeliveryPipeline( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request, @@ -105,6 +152,25 @@ CloudDeployClient::UpdateDeliveryPipeline( return connection_->UpdateDeliveryPipeline(request); } +StatusOr +CloudDeployClient::UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDeliveryPipeline( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDeliveryPipeline(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudDeployClient::DeleteDeliveryPipeline(std::string const& name, Options opts) { @@ -114,6 +180,18 @@ CloudDeployClient::DeleteDeliveryPipeline(std::string const& name, return connection_->DeleteDeliveryPipeline(request); } +StatusOr +CloudDeployClient::DeleteDeliveryPipeline(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest request; + request.set_name(name); + return connection_->DeleteDeliveryPipeline( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request, @@ -122,6 +200,25 @@ CloudDeployClient::DeleteDeliveryPipeline( return connection_->DeleteDeliveryPipeline(request); } +StatusOr +CloudDeployClient::DeleteDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDeliveryPipeline( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::DeleteDeliveryPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDeliveryPipeline(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CloudDeployClient::ListTargets( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -182,6 +279,19 @@ CloudDeployClient::CreateTarget(std::string const& parent, return connection_->CreateTarget(request); } +StatusOr CloudDeployClient::CreateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::deploy::v1::Target const& target, + std::string const& target_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::CreateTargetRequest request; + request.set_parent(parent); + *request.mutable_target() = target; + request.set_target_id(target_id); + return connection_->CreateTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::CreateTarget( google::cloud::deploy::v1::CreateTargetRequest const& request, @@ -190,6 +300,23 @@ CloudDeployClient::CreateTarget( return connection_->CreateTarget(request); } +StatusOr CloudDeployClient::CreateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::CreateTarget(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTarget(google::cloud::ExperimentalTag{}, operation); +} + future> CloudDeployClient::UpdateTarget(google::cloud::deploy::v1::Target const& target, google::protobuf::FieldMask const& update_mask, @@ -201,6 +328,18 @@ CloudDeployClient::UpdateTarget(google::cloud::deploy::v1::Target const& target, return connection_->UpdateTarget(request); } +StatusOr CloudDeployClient::UpdateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::Target const& target, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::UpdateTargetRequest request; + *request.mutable_target() = target; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request, @@ -209,6 +348,23 @@ CloudDeployClient::UpdateTarget( return connection_->UpdateTarget(request); } +StatusOr CloudDeployClient::UpdateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::UpdateTarget(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTarget(google::cloud::ExperimentalTag{}, operation); +} + future> CloudDeployClient::DeleteTarget(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -217,6 +373,16 @@ CloudDeployClient::DeleteTarget(std::string const& name, Options opts) { return connection_->DeleteTarget(request); } +StatusOr CloudDeployClient::DeleteTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::DeleteTargetRequest request; + request.set_name(name); + return connection_->DeleteTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const& request, @@ -225,6 +391,23 @@ CloudDeployClient::DeleteTarget( return connection_->DeleteTarget(request); } +StatusOr CloudDeployClient::DeleteTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTarget(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::DeleteTarget(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTarget(google::cloud::ExperimentalTag{}, operation); +} + StreamRange CloudDeployClient::ListCustomTargetTypes(std::string const& parent, Options opts) { @@ -271,6 +454,21 @@ CloudDeployClient::CreateCustomTargetType( return connection_->CreateCustomTargetType(request); } +StatusOr +CloudDeployClient::CreateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::CustomTargetType const& custom_target_type, + std::string const& custom_target_type_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::CreateCustomTargetTypeRequest request; + request.set_parent(parent); + *request.mutable_custom_target_type() = custom_target_type; + request.set_custom_target_type_id(custom_target_type_id); + return connection_->CreateCustomTargetType( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::CreateCustomTargetType( google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request, @@ -279,6 +477,25 @@ CloudDeployClient::CreateCustomTargetType( return connection_->CreateCustomTargetType(request); } +StatusOr +CloudDeployClient::CreateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCustomTargetType( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::CreateCustomTargetType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCustomTargetType(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudDeployClient::UpdateCustomTargetType( google::cloud::deploy::v1::CustomTargetType const& custom_target_type, @@ -290,6 +507,19 @@ CloudDeployClient::UpdateCustomTargetType( return connection_->UpdateCustomTargetType(request); } +StatusOr +CloudDeployClient::UpdateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CustomTargetType const& custom_target_type, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest request; + *request.mutable_custom_target_type() = custom_target_type; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCustomTargetType( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request, @@ -298,6 +528,25 @@ CloudDeployClient::UpdateCustomTargetType( return connection_->UpdateCustomTargetType(request); } +StatusOr +CloudDeployClient::UpdateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCustomTargetType( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::UpdateCustomTargetType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCustomTargetType(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudDeployClient::DeleteCustomTargetType(std::string const& name, Options opts) { @@ -307,6 +556,18 @@ CloudDeployClient::DeleteCustomTargetType(std::string const& name, return connection_->DeleteCustomTargetType(request); } +StatusOr +CloudDeployClient::DeleteCustomTargetType(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest request; + request.set_name(name); + return connection_->DeleteCustomTargetType( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request, @@ -315,6 +576,25 @@ CloudDeployClient::DeleteCustomTargetType( return connection_->DeleteCustomTargetType(request); } +StatusOr +CloudDeployClient::DeleteCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCustomTargetType( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::DeleteCustomTargetType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCustomTargetType(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CloudDeployClient::ListReleases( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -356,6 +636,20 @@ CloudDeployClient::CreateRelease( return connection_->CreateRelease(request); } +StatusOr CloudDeployClient::CreateRelease( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::Release const& release, + std::string const& release_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::CreateReleaseRequest request; + request.set_parent(parent); + *request.mutable_release() = release; + request.set_release_id(release_id); + return connection_->CreateRelease(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::CreateRelease( google::cloud::deploy::v1::CreateReleaseRequest const& request, @@ -364,6 +658,24 @@ CloudDeployClient::CreateRelease( return connection_->CreateRelease(request); } +StatusOr CloudDeployClient::CreateRelease( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRelease(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::CreateRelease( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRelease(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr CloudDeployClient::AbandonRelease(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -471,6 +783,20 @@ CloudDeployClient::CreateRollout( return connection_->CreateRollout(request); } +StatusOr CloudDeployClient::CreateRollout( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::Rollout const& rollout, + std::string const& rollout_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::CreateRolloutRequest request; + request.set_parent(parent); + *request.mutable_rollout() = rollout; + request.set_rollout_id(rollout_id); + return connection_->CreateRollout(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::CreateRollout( google::cloud::deploy::v1::CreateRolloutRequest const& request, @@ -479,6 +805,24 @@ CloudDeployClient::CreateRollout( return connection_->CreateRollout(request); } +StatusOr CloudDeployClient::CreateRollout( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRollout(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::CreateRollout( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRollout(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr CloudDeployClient::IgnoreJob(std::string const& rollout, std::string const& phase_id, @@ -588,6 +932,20 @@ CloudDeployClient::CreateAutomation( return connection_->CreateAutomation(request); } +StatusOr CloudDeployClient::CreateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::Automation const& automation, + std::string const& automation_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::CreateAutomationRequest request; + request.set_parent(parent); + *request.mutable_automation() = automation; + request.set_automation_id(automation_id); + return connection_->CreateAutomation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::CreateAutomation( google::cloud::deploy::v1::CreateAutomationRequest const& request, @@ -596,6 +954,24 @@ CloudDeployClient::CreateAutomation( return connection_->CreateAutomation(request); } +StatusOr CloudDeployClient::CreateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAutomation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::CreateAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAutomation(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudDeployClient::UpdateAutomation( google::cloud::deploy::v1::Automation const& automation, @@ -607,6 +983,18 @@ CloudDeployClient::UpdateAutomation( return connection_->UpdateAutomation(request); } +StatusOr CloudDeployClient::UpdateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::Automation const& automation, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::UpdateAutomationRequest request; + *request.mutable_automation() = automation; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAutomation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request, @@ -615,6 +1003,24 @@ CloudDeployClient::UpdateAutomation( return connection_->UpdateAutomation(request); } +StatusOr CloudDeployClient::UpdateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAutomation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::UpdateAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAutomation(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudDeployClient::DeleteAutomation(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -623,6 +1029,16 @@ CloudDeployClient::DeleteAutomation(std::string const& name, Options opts) { return connection_->DeleteAutomation(request); } +StatusOr CloudDeployClient::DeleteAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::deploy::v1::DeleteAutomationRequest request; + request.set_name(name); + return connection_->DeleteAutomation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudDeployClient::DeleteAutomation( google::cloud::deploy::v1::DeleteAutomationRequest const& request, @@ -631,6 +1047,24 @@ CloudDeployClient::DeleteAutomation( return connection_->DeleteAutomation(request); } +StatusOr CloudDeployClient::DeleteAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAutomation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudDeployClient::DeleteAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAutomation(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr CloudDeployClient::GetAutomation(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/deploy/v1/cloud_deploy_client.h b/google/cloud/deploy/v1/cloud_deploy_client.h index f72a74fde9183..c120687056b1d 100644 --- a/google/cloud/deploy/v1/cloud_deploy_client.h +++ b/google/cloud/deploy/v1/cloud_deploy_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DEPLOY_V1_CLOUD_DEPLOY_CLIENT_H #include "google/cloud/deploy/v1/cloud_deploy_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -260,6 +262,12 @@ class CloudDeployClient { google::cloud::deploy::v1::DeliveryPipeline const& delivery_pipeline, std::string const& delivery_pipeline_id, Options opts = {}); + StatusOr CreateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::DeliveryPipeline const& delivery_pipeline, + std::string const& delivery_pipeline_id, Options opts = {}); + // clang-format off /// /// Creates a new DeliveryPipeline in a given project and location. @@ -299,6 +307,16 @@ class CloudDeployClient { google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request, Options opts = {}); + StatusOr CreateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request, + Options opts = {}); + + future> + CreateDeliveryPipeline(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single DeliveryPipeline. @@ -338,6 +356,11 @@ class CloudDeployClient { google::cloud::deploy::v1::DeliveryPipeline const& delivery_pipeline, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeliveryPipeline const& delivery_pipeline, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single DeliveryPipeline. @@ -377,6 +400,16 @@ class CloudDeployClient { google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request, Options opts = {}); + StatusOr UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request, + Options opts = {}); + + future> + UpdateDeliveryPipeline(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single DeliveryPipeline. @@ -410,6 +443,10 @@ class CloudDeployClient { future> DeleteDeliveryPipeline(std::string const& name, Options opts = {}); + StatusOr DeleteDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single DeliveryPipeline. @@ -449,6 +486,16 @@ class CloudDeployClient { google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request, Options opts = {}); + StatusOr DeleteDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request, + Options opts = {}); + + future> + DeleteDeliveryPipeline(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Targets in a given project and location. @@ -679,6 +726,12 @@ class CloudDeployClient { google::cloud::deploy::v1::Target const& target, std::string const& target_id, Options opts = {}); + StatusOr CreateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::Target const& target, + std::string const& target_id, Options opts = {}); + // clang-format off /// /// Creates a new Target in a given project and location. @@ -717,6 +770,15 @@ class CloudDeployClient { google::cloud::deploy::v1::CreateTargetRequest const& request, Options opts = {}); + StatusOr CreateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request, + Options opts = {}); + + future> CreateTarget( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Target. @@ -755,6 +817,11 @@ class CloudDeployClient { google::cloud::deploy::v1::Target const& target, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::Target const& target, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Target. @@ -793,6 +860,15 @@ class CloudDeployClient { google::cloud::deploy::v1::UpdateTargetRequest const& request, Options opts = {}); + StatusOr UpdateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request, + Options opts = {}); + + future> UpdateTarget( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Target. @@ -826,6 +902,10 @@ class CloudDeployClient { future> DeleteTarget( std::string const& name, Options opts = {}); + StatusOr DeleteTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Target. @@ -864,6 +944,15 @@ class CloudDeployClient { google::cloud::deploy::v1::DeleteTargetRequest const& request, Options opts = {}); + StatusOr DeleteTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request, + Options opts = {}); + + future> DeleteTarget( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists CustomTargetTypes in a given project and location. @@ -1036,6 +1125,12 @@ class CloudDeployClient { google::cloud::deploy::v1::CustomTargetType const& custom_target_type, std::string const& custom_target_type_id, Options opts = {}); + StatusOr CreateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::CustomTargetType const& custom_target_type, + std::string const& custom_target_type_id, Options opts = {}); + // clang-format off /// /// Creates a new CustomTargetType in a given project and location. @@ -1075,6 +1170,16 @@ class CloudDeployClient { google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request, Options opts = {}); + StatusOr CreateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request, + Options opts = {}); + + future> + CreateCustomTargetType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a single CustomTargetType. @@ -1114,6 +1219,11 @@ class CloudDeployClient { google::cloud::deploy::v1::CustomTargetType const& custom_target_type, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CustomTargetType const& custom_target_type, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a single CustomTargetType. @@ -1153,6 +1263,16 @@ class CloudDeployClient { google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request, Options opts = {}); + StatusOr UpdateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request, + Options opts = {}); + + future> + UpdateCustomTargetType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single CustomTargetType. @@ -1186,6 +1306,10 @@ class CloudDeployClient { future> DeleteCustomTargetType(std::string const& name, Options opts = {}); + StatusOr DeleteCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single CustomTargetType. @@ -1225,6 +1349,16 @@ class CloudDeployClient { google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request, Options opts = {}); + StatusOr DeleteCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request, + Options opts = {}); + + future> + DeleteCustomTargetType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Releases in a given project and location. @@ -1395,6 +1529,12 @@ class CloudDeployClient { google::cloud::deploy::v1::Release const& release, std::string const& release_id, Options opts = {}); + StatusOr CreateRelease( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::Release const& release, + std::string const& release_id, Options opts = {}); + // clang-format off /// /// Creates a new Release in a given project and location. @@ -1433,6 +1573,15 @@ class CloudDeployClient { google::cloud::deploy::v1::CreateReleaseRequest const& request, Options opts = {}); + StatusOr CreateRelease( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request, + Options opts = {}); + + future> CreateRelease( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Abandons a Release in the Delivery Pipeline. @@ -1831,6 +1980,12 @@ class CloudDeployClient { google::cloud::deploy::v1::Rollout const& rollout, std::string const& rollout_id, Options opts = {}); + StatusOr CreateRollout( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::Rollout const& rollout, + std::string const& rollout_id, Options opts = {}); + // clang-format off /// /// Creates a new Rollout in a given project and location. @@ -1869,6 +2024,15 @@ class CloudDeployClient { google::cloud::deploy::v1::CreateRolloutRequest const& request, Options opts = {}); + StatusOr CreateRollout( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request, + Options opts = {}); + + future> CreateRollout( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Ignores the specified Job in a Rollout. @@ -2270,6 +2434,12 @@ class CloudDeployClient { google::cloud::deploy::v1::Automation const& automation, std::string const& automation_id, Options opts = {}); + StatusOr CreateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::deploy::v1::Automation const& automation, + std::string const& automation_id, Options opts = {}); + // clang-format off /// /// Creates a new Automation in a given project and location. @@ -2308,6 +2478,15 @@ class CloudDeployClient { google::cloud::deploy::v1::CreateAutomationRequest const& request, Options opts = {}); + StatusOr CreateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request, + Options opts = {}); + + future> CreateAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Automation resource. @@ -2346,6 +2525,11 @@ class CloudDeployClient { google::cloud::deploy::v1::Automation const& automation, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::Automation const& automation, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Automation resource. @@ -2384,6 +2568,15 @@ class CloudDeployClient { google::cloud::deploy::v1::UpdateAutomationRequest const& request, Options opts = {}); + StatusOr UpdateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request, + Options opts = {}); + + future> UpdateAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Automation resource. @@ -2417,6 +2610,10 @@ class CloudDeployClient { future> DeleteAutomation(std::string const& name, Options opts = {}); + StatusOr DeleteAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Automation resource. @@ -2456,6 +2653,16 @@ class CloudDeployClient { google::cloud::deploy::v1::DeleteAutomationRequest const& request, Options opts = {}); + StatusOr DeleteAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request, + Options opts = {}); + + future> + DeleteAutomation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single Automation. 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..aa7d1717d3253 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,60 @@ CloudDeployConnectionImpl::CreateDeliveryPipeline( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +247,60 @@ CloudDeployConnectionImpl::UpdateDeliveryPipeline( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +341,60 @@ CloudDeployConnectionImpl::DeleteDeliveryPipeline( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::DeleteDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +496,58 @@ CloudDeployConnectionImpl::CreateTarget( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateTarget( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +587,58 @@ CloudDeployConnectionImpl::UpdateTarget( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::UpdateTarget( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +678,59 @@ CloudDeployConnectionImpl::DeleteTarget( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::DeleteTarget( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +822,60 @@ CloudDeployConnectionImpl::CreateCustomTargetType( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +916,60 @@ CloudDeployConnectionImpl::UpdateCustomTargetType( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::UpdateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1010,60 @@ CloudDeployConnectionImpl::DeleteCustomTargetType( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::DeleteCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1151,58 @@ CloudDeployConnectionImpl::CreateRelease( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateRelease( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1346,58 @@ CloudDeployConnectionImpl::CreateRollout( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateRollout( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1541,59 @@ CloudDeployConnectionImpl::CreateAutomation( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::CreateAutomation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1633,59 @@ CloudDeployConnectionImpl::UpdateAutomation( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::UpdateAutomation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1725,60 @@ CloudDeployConnectionImpl::DeleteAutomation( polling_policy(*current), __func__); } +StatusOr +CloudDeployConnectionImpl::DeleteAutomation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..8564f2767cbc5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request) + override; + + future> + CreateDeliveryPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) override; + StatusOr UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) + override; + + future> + UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) override; + StatusOr DeleteDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) + override; + + future> + DeleteDeliveryPipeline( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request) override; + + future> CreateTarget( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request) override; + StatusOr UpdateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request) override; + + future> UpdateTarget( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const& request) override; + StatusOr DeleteTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request) override; + + future> DeleteTarget( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request) + override; + + future> + CreateCustomTargetType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) override; + StatusOr UpdateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) + override; + + future> + UpdateCustomTargetType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) override; + StatusOr DeleteCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) + override; + + future> + DeleteCustomTargetType( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request) override; + + future> CreateRelease( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request) override; + + future> CreateRollout( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request) + override; + + future> CreateAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request) override; + StatusOr UpdateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request) + override; + + future> UpdateAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAutomation(google::cloud::deploy::v1::DeleteAutomationRequest const& request) override; + StatusOr DeleteAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request) + override; + + future> + DeleteAutomation(google::cloud::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..54c37084a40f7 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,30 @@ CloudDeployTracingConnection::CreateDeliveryPipeline( child_->CreateDeliveryPipeline(request)); } +StatusOr +CloudDeployTracingConnection::CreateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateDeliveryPipeline( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) { @@ -74,6 +98,30 @@ CloudDeployTracingConnection::UpdateDeliveryPipeline( child_->UpdateDeliveryPipeline(request)); } +StatusOr +CloudDeployTracingConnection::UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::UpdateDeliveryPipeline( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) { @@ -84,6 +132,30 @@ CloudDeployTracingConnection::DeleteDeliveryPipeline( child_->DeleteDeliveryPipeline(request)); } +StatusOr +CloudDeployTracingConnection::DeleteDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::DeleteDeliveryPipeline( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CloudDeployTracingConnection::ListTargets( google::cloud::deploy::v1::ListTargetsRequest request) { @@ -121,6 +193,30 @@ CloudDeployTracingConnection::CreateTarget( return internal::EndSpan(std::move(span), child_->CreateTarget(request)); } +StatusOr +CloudDeployTracingConnection::CreateTarget( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateTarget( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request) { @@ -130,6 +226,30 @@ CloudDeployTracingConnection::UpdateTarget( return internal::EndSpan(std::move(span), child_->UpdateTarget(request)); } +StatusOr +CloudDeployTracingConnection::UpdateTarget( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::UpdateTarget( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const& request) { @@ -139,6 +259,30 @@ CloudDeployTracingConnection::DeleteTarget( return internal::EndSpan(std::move(span), child_->DeleteTarget(request)); } +StatusOr +CloudDeployTracingConnection::DeleteTarget( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::DeleteTarget( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CloudDeployTracingConnection::ListCustomTargetTypes( google::cloud::deploy::v1::ListCustomTargetTypesRequest request) { @@ -170,6 +314,30 @@ CloudDeployTracingConnection::CreateCustomTargetType( child_->CreateCustomTargetType(request)); } +StatusOr +CloudDeployTracingConnection::CreateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateCustomTargetType( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) { @@ -180,6 +348,30 @@ CloudDeployTracingConnection::UpdateCustomTargetType( child_->UpdateCustomTargetType(request)); } +StatusOr +CloudDeployTracingConnection::UpdateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::UpdateCustomTargetType( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) { @@ -190,6 +382,30 @@ CloudDeployTracingConnection::DeleteCustomTargetType( child_->DeleteCustomTargetType(request)); } +StatusOr +CloudDeployTracingConnection::DeleteCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::DeleteCustomTargetType( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CloudDeployTracingConnection::ListReleases( google::cloud::deploy::v1::ListReleasesRequest request) { @@ -219,6 +435,30 @@ CloudDeployTracingConnection::CreateRelease( return internal::EndSpan(std::move(span), child_->CreateRelease(request)); } +StatusOr +CloudDeployTracingConnection::CreateRelease( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateRelease( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CloudDeployTracingConnection::AbandonRelease( google::cloud::deploy::v1::AbandonReleaseRequest const& request) { @@ -284,6 +524,30 @@ CloudDeployTracingConnection::CreateRollout( return internal::EndSpan(std::move(span), child_->CreateRollout(request)); } +StatusOr +CloudDeployTracingConnection::CreateRollout( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateRollout( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CloudDeployTracingConnection::IgnoreJob( google::cloud::deploy::v1::IgnoreJobRequest const& request) { @@ -345,6 +609,30 @@ CloudDeployTracingConnection::CreateAutomation( return internal::EndSpan(std::move(span), child_->CreateAutomation(request)); } +StatusOr +CloudDeployTracingConnection::CreateAutomation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::CreateAutomation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request) { @@ -354,6 +642,30 @@ CloudDeployTracingConnection::UpdateAutomation( return internal::EndSpan(std::move(span), child_->UpdateAutomation(request)); } +StatusOr +CloudDeployTracingConnection::UpdateAutomation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::UpdateAutomation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudDeployTracingConnection::DeleteAutomation( google::cloud::deploy::v1::DeleteAutomationRequest const& request) { @@ -363,6 +675,30 @@ CloudDeployTracingConnection::DeleteAutomation( return internal::EndSpan(std::move(span), child_->DeleteAutomation(request)); } +StatusOr +CloudDeployTracingConnection::DeleteAutomation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudDeployTracingConnection::DeleteAutomation( + google::cloud::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(google::cloud::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..96869cd3432b4 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request) + override; + + future> + CreateDeliveryPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDeliveryPipeline( google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) override; + StatusOr UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request) + override; + + future> + UpdateDeliveryPipeline( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDeliveryPipeline( google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) override; + StatusOr DeleteDeliveryPipeline( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request) + override; + + future> + DeleteDeliveryPipeline( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request) override; + + future> CreateTarget( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTarget( google::cloud::deploy::v1::UpdateTargetRequest const& request) override; + StatusOr UpdateTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request) override; + + future> UpdateTarget( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTarget( google::cloud::deploy::v1::DeleteTargetRequest const& request) override; + StatusOr DeleteTarget( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request) override; + + future> DeleteTarget( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request) + override; + + future> + CreateCustomTargetType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCustomTargetType( google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) override; + StatusOr UpdateCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request) + override; + + future> + UpdateCustomTargetType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCustomTargetType( google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) override; + StatusOr DeleteCustomTargetType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request) + override; + + future> + DeleteCustomTargetType( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request) override; + + future> CreateRelease( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request) override; + + future> CreateRollout( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request) + override; + + future> CreateAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAutomation( google::cloud::deploy::v1::UpdateAutomationRequest const& request) override; + StatusOr UpdateAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request) + override; + + future> UpdateAutomation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAutomation(google::cloud::deploy::v1::DeleteAutomationRequest const& request) override; + StatusOr DeleteAutomation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request) + override; + + future> + DeleteAutomation(google::cloud::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..ba3c8525a4eb6 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateDeliveryPipelineRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDeliveryPipeline, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDeliveryPipeline, (google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDeliveryPipeline, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateDeliveryPipelineRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDeliveryPipeline, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDeliveryPipeline, (google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDeliveryPipeline, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteDeliveryPipelineRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteDeliveryPipeline, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateTarget, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTarget, (google::cloud::deploy::v1::UpdateTargetRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTarget, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateTarget, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteTarget, (google::cloud::deploy::v1::DeleteTargetRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteTarget, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteTargetRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTarget, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateCustomTargetTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCustomTargetType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCustomTargetType, (google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCustomTargetType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateCustomTargetTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCustomTargetType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCustomTargetType, (google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCustomTargetType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteCustomTargetTypeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteCustomTargetType, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateReleaseRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRelease, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateRolloutRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRollout, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::CreateAutomationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateAutomation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAutomation, (google::cloud::deploy::v1::UpdateAutomationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateAutomation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::UpdateAutomationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateAutomation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteAutomation, (google::cloud::deploy::v1::DeleteAutomationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteAutomation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::deploy::v1::DeleteAutomationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteAutomation, + (google::cloud::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_client.cc b/google/cloud/dialogflow_cx/agents_client.cc index d03c82bcbfe71..ed22a7d2363d5 100644 --- a/google/cloud/dialogflow_cx/agents_client.cc +++ b/google/cloud/dialogflow_cx/agents_client.cc @@ -118,6 +118,23 @@ AgentsClient::ExportAgent( return connection_->ExportAgent(request); } +StatusOr AgentsClient::ExportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportAgent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AgentsClient::ExportAgent(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportAgent(google::cloud::ExperimentalTag{}, operation); +} + future> AgentsClient::RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request, Options opts) { @@ -125,6 +142,22 @@ future> AgentsClient::RestoreAgent( return connection_->RestoreAgent(request); } +StatusOr AgentsClient::RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreAgent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> AgentsClient::RestoreAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreAgent(google::cloud::ExperimentalTag{}, operation); +} + StatusOr AgentsClient::ValidateAgent( google::cloud::dialogflow::cx::v3::ValidateAgentRequest const& request, diff --git a/google/cloud/dialogflow_cx/agents_client.h b/google/cloud/dialogflow_cx/agents_client.h index b774450636a3b..5b516ce487ed5 100644 --- a/google/cloud/dialogflow_cx/agents_client.h +++ b/google/cloud/dialogflow_cx/agents_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_AGENTS_CLIENT_H #include "google/cloud/dialogflow_cx/agents_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -451,6 +453,16 @@ class AgentsClient { google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request, Options opts = {}); + StatusOr ExportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request, + Options opts = {}); + + future> + ExportAgent(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Restores the specified agent from a binary file. @@ -505,6 +517,15 @@ class AgentsClient { google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request, Options opts = {}); + StatusOr RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request, + Options opts = {}); + + future> RestoreAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Validates the specified agent and creates or updates validation results. 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_client.h b/google/cloud/dialogflow_cx/changelogs_client.h index 46366a2ac1a44..91dcf1c5147e2 100644 --- a/google/cloud/dialogflow_cx/changelogs_client.h +++ b/google/cloud/dialogflow_cx/changelogs_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_CHANGELOGS_CLIENT_H #include "google/cloud/dialogflow_cx/changelogs_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/dialogflow_cx/deployments_client.h index 91497337e5157..42499bead97f0 100644 --- a/google/cloud/dialogflow_cx/deployments_client.h +++ b/google/cloud/dialogflow_cx/deployments_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_DEPLOYMENTS_CLIENT_H #include "google/cloud/dialogflow_cx/deployments_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/dialogflow_cx/entity_types_client.cc index 745a3e9a98612..2f7bc338da062 100644 --- a/google/cloud/dialogflow_cx/entity_types_client.cc +++ b/google/cloud/dialogflow_cx/entity_types_client.cc @@ -126,6 +126,24 @@ EntityTypesClient::ExportEntityTypes( return connection_->ExportEntityTypes(request); } +StatusOr EntityTypesClient::ExportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportEntityTypes(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EntityTypesClient::ExportEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportEntityTypes(google::cloud::ExperimentalTag{}, + operation); +} + future> EntityTypesClient::ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request, @@ -134,6 +152,24 @@ EntityTypesClient::ImportEntityTypes( return connection_->ImportEntityTypes(request); } +StatusOr EntityTypesClient::ImportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportEntityTypes(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EntityTypesClient::ImportEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportEntityTypes(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_cx } // namespace cloud diff --git a/google/cloud/dialogflow_cx/entity_types_client.h b/google/cloud/dialogflow_cx/entity_types_client.h index 3831d5f0e2b4d..e5300200a6750 100644 --- a/google/cloud/dialogflow_cx/entity_types_client.h +++ b/google/cloud/dialogflow_cx/entity_types_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_ENTITY_TYPES_CLIENT_H #include "google/cloud/dialogflow_cx/entity_types_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -454,6 +456,17 @@ class EntityTypesClient { request, Options opts = {}); + StatusOr ExportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request, + Options opts = {}); + + future> + ExportEntityTypes(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports the specified entitytypes into the agent. @@ -494,6 +507,17 @@ class EntityTypesClient { request, Options opts = {}); + StatusOr ImportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request, + Options opts = {}); + + future> + ImportEntityTypes(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/dialogflow_cx/environments_client.cc index bcacf15ec7685..181e539410a36 100644 --- a/google/cloud/dialogflow_cx/environments_client.cc +++ b/google/cloud/dialogflow_cx/environments_client.cc @@ -76,6 +76,19 @@ EnvironmentsClient::CreateEnvironment( return connection_->CreateEnvironment(request); } +StatusOr EnvironmentsClient::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::cx::v3::Environment const& environment, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest request; + request.set_parent(parent); + *request.mutable_environment() = environment; + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EnvironmentsClient::CreateEnvironment( google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& request, @@ -84,6 +97,24 @@ EnvironmentsClient::CreateEnvironment( return connection_->CreateEnvironment(request); } +StatusOr EnvironmentsClient::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EnvironmentsClient::CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + future> EnvironmentsClient::UpdateEnvironment( google::cloud::dialogflow::cx::v3::Environment const& environment, @@ -95,6 +126,18 @@ EnvironmentsClient::UpdateEnvironment( return connection_->UpdateEnvironment(request); } +StatusOr EnvironmentsClient::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::Environment const& environment, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest request; + *request.mutable_environment() = environment; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EnvironmentsClient::UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& request, @@ -103,6 +146,24 @@ EnvironmentsClient::UpdateEnvironment( return connection_->UpdateEnvironment(request); } +StatusOr EnvironmentsClient::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EnvironmentsClient::UpdateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + Status EnvironmentsClient::DeleteEnvironment(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -143,6 +204,24 @@ EnvironmentsClient::RunContinuousTest( return connection_->RunContinuousTest(request); } +StatusOr EnvironmentsClient::RunContinuousTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunContinuousTest(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EnvironmentsClient::RunContinuousTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunContinuousTest(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange EnvironmentsClient::ListContinuousTestResults(std::string const& parent, Options opts) { @@ -168,6 +247,23 @@ EnvironmentsClient::DeployFlow( return connection_->DeployFlow(request); } +StatusOr EnvironmentsClient::DeployFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployFlow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EnvironmentsClient::DeployFlow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployFlow(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_cx } // namespace cloud diff --git a/google/cloud/dialogflow_cx/environments_client.h b/google/cloud/dialogflow_cx/environments_client.h index 39db5ce6b9086..952827089782a 100644 --- a/google/cloud/dialogflow_cx/environments_client.h +++ b/google/cloud/dialogflow_cx/environments_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_ENVIRONMENTS_CLIENT_H #include "google/cloud/dialogflow_cx/environments_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -274,6 +276,12 @@ class EnvironmentsClient { google::cloud::dialogflow::cx::v3::Environment const& environment, Options opts = {}); + StatusOr CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::cx::v3::Environment const& environment, + Options opts = {}); + // clang-format off /// /// Creates an [Environment][google.cloud.dialogflow.cx.v3.Environment] in the @@ -323,6 +331,17 @@ class EnvironmentsClient { request, Options opts = {}); + StatusOr CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request, + Options opts = {}); + + future> + CreateEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified @@ -367,6 +386,11 @@ class EnvironmentsClient { google::cloud::dialogflow::cx::v3::Environment const& environment, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::Environment const& environment, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified @@ -416,6 +440,17 @@ class EnvironmentsClient { request, Options opts = {}); + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request, + Options opts = {}); + + future> + UpdateEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified @@ -607,6 +642,17 @@ class EnvironmentsClient { request, Options opts = {}); + StatusOr RunContinuousTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request, + Options opts = {}); + + future> + RunContinuousTest(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Fetches a list of continuous test results for a given environment. @@ -736,6 +782,16 @@ class EnvironmentsClient { google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request, Options opts = {}); + StatusOr DeployFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request, + Options opts = {}); + + future> + DeployFlow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/dialogflow_cx/experiments_client.h index 6c985c1d0bdbc..524436d38735a 100644 --- a/google/cloud/dialogflow_cx/experiments_client.h +++ b/google/cloud/dialogflow_cx/experiments_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_EXPERIMENTS_CLIENT_H #include "google/cloud/dialogflow_cx/experiments_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/dialogflow_cx/flows_client.cc index 2944446dae731..7657a1bff4c34 100644 --- a/google/cloud/dialogflow_cx/flows_client.cc +++ b/google/cloud/dialogflow_cx/flows_client.cc @@ -117,6 +117,16 @@ future> FlowsClient::TrainFlow( return connection_->TrainFlow(request); } +StatusOr FlowsClient::TrainFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::cx::v3::TrainFlowRequest request; + request.set_name(name); + return connection_->TrainFlow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FlowsClient::TrainFlow( google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request, Options opts) { @@ -124,6 +134,22 @@ future> FlowsClient::TrainFlow( return connection_->TrainFlow(request); } +StatusOr FlowsClient::TrainFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TrainFlow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> FlowsClient::TrainFlow( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TrainFlow(google::cloud::ExperimentalTag{}, operation); +} + StatusOr FlowsClient::ValidateFlow( google::cloud::dialogflow::cx::v3::ValidateFlowRequest const& request, @@ -157,6 +183,23 @@ FlowsClient::ImportFlow( return connection_->ImportFlow(request); } +StatusOr FlowsClient::ImportFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportFlow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FlowsClient::ImportFlow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportFlow(google::cloud::ExperimentalTag{}, operation); +} + future> FlowsClient::ExportFlow( google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request, @@ -165,6 +208,23 @@ FlowsClient::ExportFlow( return connection_->ExportFlow(request); } +StatusOr FlowsClient::ExportFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportFlow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FlowsClient::ExportFlow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportFlow(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_cx } // namespace cloud diff --git a/google/cloud/dialogflow_cx/flows_client.h b/google/cloud/dialogflow_cx/flows_client.h index 9e673a25ac902..e16b09232c606 100644 --- a/google/cloud/dialogflow_cx/flows_client.h +++ b/google/cloud/dialogflow_cx/flows_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_FLOWS_CLIENT_H #include "google/cloud/dialogflow_cx/flows_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -450,6 +452,10 @@ class FlowsClient { future> TrainFlow(std::string const& name, Options opts = {}); + StatusOr TrainFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Trains the specified flow. Note that only the flow in 'draft' environment @@ -502,6 +508,15 @@ class FlowsClient { google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request, Options opts = {}); + StatusOr TrainFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request, + Options opts = {}); + + future> TrainFlow( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Validates the specified flow and creates or updates validation results. @@ -649,6 +664,16 @@ class FlowsClient { google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request, Options opts = {}); + StatusOr ImportFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request, + Options opts = {}); + + future> + ImportFlow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Exports the specified flow to a binary file. @@ -700,6 +725,16 @@ class FlowsClient { google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request, Options opts = {}); + StatusOr ExportFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request, + Options opts = {}); + + future> + ExportFlow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/dialogflow_cx/generators_client.h index 55d234d0c1531..b037894077588 100644 --- a/google/cloud/dialogflow_cx/generators_client.h +++ b/google/cloud/dialogflow_cx/generators_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_GENERATORS_CLIENT_H #include "google/cloud/dialogflow_cx/generators_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/dialogflow_cx/intents_client.cc index 34df98074f120..4097ecc370abd 100644 --- a/google/cloud/dialogflow_cx/intents_client.cc +++ b/google/cloud/dialogflow_cx/intents_client.cc @@ -119,6 +119,24 @@ IntentsClient::ImportIntents( return connection_->ImportIntents(request); } +StatusOr IntentsClient::ImportIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportIntents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IntentsClient::ImportIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportIntents(google::cloud::ExperimentalTag{}, + operation); +} + future> IntentsClient::ExportIntents( google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request, @@ -127,6 +145,24 @@ IntentsClient::ExportIntents( return connection_->ExportIntents(request); } +StatusOr IntentsClient::ExportIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportIntents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IntentsClient::ExportIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportIntents(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_cx } // namespace cloud diff --git a/google/cloud/dialogflow_cx/intents_client.h b/google/cloud/dialogflow_cx/intents_client.h index 830b61e337d9b..d7d849fc160c0 100644 --- a/google/cloud/dialogflow_cx/intents_client.h +++ b/google/cloud/dialogflow_cx/intents_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_INTENTS_CLIENT_H #include "google/cloud/dialogflow_cx/intents_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -462,6 +464,16 @@ class IntentsClient { google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request, Options opts = {}); + StatusOr ImportIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request, + Options opts = {}); + + future> + ImportIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Exports the selected intents. @@ -511,6 +523,16 @@ class IntentsClient { google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request, Options opts = {}); + StatusOr ExportIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request, + Options opts = {}); + + future> + ExportIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..a0b56ecc10e73 100644 --- a/google/cloud/dialogflow_cx/internal/agents_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/agents_connection_impl.cc @@ -195,6 +195,58 @@ AgentsConnectionImpl::ExportAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::ExportAgent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +286,56 @@ future> AgentsConnectionImpl::RestoreAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..15d4595623b06 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request) + override; + + future> + ExportAgent(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) override; + StatusOr RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) + override; + + future> RestoreAgent( + google::cloud::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..766571e5b9f66 100644 --- a/google/cloud/dialogflow_cx/internal/agents_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/agents_tracing_connection.cc @@ -86,6 +86,29 @@ AgentsTracingConnection::ExportAgent( return internal::EndSpan(std::move(span), child_->ExportAgent(request)); } +StatusOr AgentsTracingConnection::ExportAgent( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AgentsTracingConnection::ExportAgent( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AgentsTracingConnection::RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) { @@ -95,6 +118,29 @@ AgentsTracingConnection::RestoreAgent( return internal::EndSpan(std::move(span), child_->RestoreAgent(request)); } +StatusOr AgentsTracingConnection::RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AgentsTracingConnection::RestoreAgent( + google::cloud::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(google::cloud::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..39e23bd81d8b7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request) + override; + + future> + ExportAgent(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreAgent( google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) override; + StatusOr RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request) + override; + + future> RestoreAgent( + google::cloud::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..b782ce71334d0 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,62 @@ EntityTypesConnectionImpl::ExportEntityTypes( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::ExportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +296,62 @@ EntityTypesConnectionImpl::ImportEntityTypes( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::ImportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..81f98f9a16879 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request) override; + + future> + ExportEntityTypes(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request) override; + StatusOr ImportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request) override; + + future> + ImportEntityTypes(google::cloud::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..0c84ebe744061 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,31 @@ EntityTypesTracingConnection::ExportEntityTypes( return internal::EndSpan(std::move(span), child_->ExportEntityTypes(request)); } +StatusOr +EntityTypesTracingConnection::ExportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::ExportEntityTypes( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& @@ -100,6 +125,31 @@ EntityTypesTracingConnection::ImportEntityTypes( return internal::EndSpan(std::move(span), child_->ImportEntityTypes(request)); } +StatusOr +EntityTypesTracingConnection::ImportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::ImportEntityTypes( + google::cloud::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(google::cloud::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..af79d75da9494 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request) override; + + future> + ExportEntityTypes(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportEntityTypes( google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request) override; + StatusOr ImportEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request) override; + + future> + ImportEntityTypes(google::cloud::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..5e53f84354edf 100644 --- a/google/cloud/dialogflow_cx/internal/environments_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/environments_connection_impl.cc @@ -154,6 +154,60 @@ EnvironmentsConnectionImpl::CreateEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +249,60 @@ EnvironmentsConnectionImpl::UpdateEnvironment( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +397,62 @@ EnvironmentsConnectionImpl::RunContinuousTest( polling_policy(*current), __func__); } +StatusOr +EnvironmentsConnectionImpl::RunContinuousTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +530,60 @@ EnvironmentsConnectionImpl::DeployFlow( polling_policy(*current), __func__); } +StatusOr EnvironmentsConnectionImpl::DeployFlow( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..75dcd0322cc2c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request) override; + + future> + CreateEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request) override; + + future> + UpdateEnvironment(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request) override; + + future> + RunContinuousTest(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) + override; + + future> + DeployFlow(google::cloud::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..5c6b29ce5f1b2 100644 --- a/google/cloud/dialogflow_cx/internal/environments_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/environments_tracing_connection.cc @@ -64,6 +64,31 @@ EnvironmentsTracingConnection::CreateEnvironment( return internal::EndSpan(std::move(span), child_->CreateEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::CreateEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EnvironmentsTracingConnection::UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& @@ -74,6 +99,31 @@ EnvironmentsTracingConnection::UpdateEnvironment( return internal::EndSpan(std::move(span), child_->UpdateEnvironment(request)); } +StatusOr +EnvironmentsTracingConnection::UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::UpdateEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + Status EnvironmentsTracingConnection::DeleteEnvironment( google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const& request) { @@ -106,6 +156,31 @@ EnvironmentsTracingConnection::RunContinuousTest( return internal::EndSpan(std::move(span), child_->RunContinuousTest(request)); } +StatusOr +EnvironmentsTracingConnection::RunContinuousTest( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::RunContinuousTest( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange EnvironmentsTracingConnection::ListContinuousTestResults( google::cloud::dialogflow::cx::v3::ListContinuousTestResultsRequest @@ -128,6 +203,30 @@ EnvironmentsTracingConnection::DeployFlow( return internal::EndSpan(std::move(span), child_->DeployFlow(request)); } +StatusOr +EnvironmentsTracingConnection::DeployFlow( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EnvironmentsTracingConnection::DeployFlow( + google::cloud::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(google::cloud::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..62a901512d479 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request) override; + + future> + CreateEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEnvironment( google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& request) override; + StatusOr UpdateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request) override; + + future> + UpdateEnvironment(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request) override; + + future> + RunContinuousTest(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request) + override; + + future> + DeployFlow(google::cloud::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..5e35e0e8982c7 100644 --- a/google/cloud/dialogflow_cx/internal/flows_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/flows_connection_impl.cc @@ -190,6 +190,56 @@ future> FlowsConnectionImpl::TrainFlow( polling_policy(*current), __func__); } +StatusOr FlowsConnectionImpl::TrainFlow( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +310,58 @@ FlowsConnectionImpl::ImportFlow( polling_policy(*current), __func__); } +StatusOr FlowsConnectionImpl::ImportFlow( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +401,58 @@ FlowsConnectionImpl::ExportFlow( polling_policy(*current), __func__); } +StatusOr FlowsConnectionImpl::ExportFlow( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..49aa1f6ed6785 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) + override; + + future> TrainFlow( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) + override; + + future> + ImportFlow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportFlow(google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) override; + StatusOr ExportFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) + override; + + future> + ExportFlow(google::cloud::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..dd53deb1be1c3 100644 --- a/google/cloud/dialogflow_cx/internal/flows_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/flows_tracing_connection.cc @@ -81,6 +81,26 @@ future> FlowsTracingConnection::TrainFlow( return internal::EndSpan(std::move(span), child_->TrainFlow(request)); } +StatusOr FlowsTracingConnection::TrainFlow( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> FlowsTracingConnection::TrainFlow( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr FlowsTracingConnection::ValidateFlow( google::cloud::dialogflow::cx::v3::ValidateFlowRequest const& request) { @@ -108,6 +128,27 @@ FlowsTracingConnection::ImportFlow( return internal::EndSpan(std::move(span), child_->ImportFlow(request)); } +StatusOr FlowsTracingConnection::ImportFlow( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FlowsTracingConnection::ImportFlow( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FlowsTracingConnection::ExportFlow( google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) { @@ -116,6 +157,27 @@ FlowsTracingConnection::ExportFlow( return internal::EndSpan(std::move(span), child_->ExportFlow(request)); } +StatusOr FlowsTracingConnection::ExportFlow( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FlowsTracingConnection::ExportFlow( + google::cloud::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(google::cloud::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..403d246a9d6dd 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request) + override; + + future> TrainFlow( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request) + override; + + future> + ImportFlow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportFlow(google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) override; + StatusOr ExportFlow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request) + override; + + future> + ExportFlow(google::cloud::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..04a0442e35b2b 100644 --- a/google/cloud/dialogflow_cx/internal/intents_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/intents_connection_impl.cc @@ -195,6 +195,60 @@ IntentsConnectionImpl::ImportIntents( polling_policy(*current), __func__); } +StatusOr IntentsConnectionImpl::ImportIntents( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +289,60 @@ IntentsConnectionImpl::ExportIntents( polling_policy(*current), __func__); } +StatusOr IntentsConnectionImpl::ExportIntents( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..93e093a7c13fe 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request) + override; + + future> + ImportIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportIntents(google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) override; + StatusOr ExportIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) + override; + + future> + ExportIntents(google::cloud::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..e4ddebc80a8f6 100644 --- a/google/cloud/dialogflow_cx/internal/intents_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/intents_tracing_connection.cc @@ -88,6 +88,30 @@ IntentsTracingConnection::ImportIntents( return internal::EndSpan(std::move(span), child_->ImportIntents(request)); } +StatusOr +IntentsTracingConnection::ImportIntents( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IntentsTracingConnection::ImportIntents( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> IntentsTracingConnection::ExportIntents( google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) { @@ -97,6 +121,30 @@ IntentsTracingConnection::ExportIntents( return internal::EndSpan(std::move(span), child_->ExportIntents(request)); } +StatusOr +IntentsTracingConnection::ExportIntents( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IntentsTracingConnection::ExportIntents( + google::cloud::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(google::cloud::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..a5d05eb3e3bcf 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request) + override; + + future> + ImportIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportIntents(google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) override; + StatusOr ExportIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request) + override; + + future> + ExportIntents(google::cloud::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..9ecc2a3026a90 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,60 @@ TestCasesConnectionImpl::RunTestCase( polling_policy(*current), __func__); } +StatusOr TestCasesConnectionImpl::RunTestCase( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +295,62 @@ TestCasesConnectionImpl::BatchRunTestCases( polling_policy(*current), __func__); } +StatusOr +TestCasesConnectionImpl::BatchRunTestCases( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +407,61 @@ TestCasesConnectionImpl::ImportTestCases( polling_policy(*current), __func__); } +StatusOr +TestCasesConnectionImpl::ImportTestCases( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +502,61 @@ TestCasesConnectionImpl::ExportTestCases( polling_policy(*current), __func__); } +StatusOr +TestCasesConnectionImpl::ExportTestCases( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..cf62ad7aa1153 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request) + override; + + future> + RunTestCase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& request) override; + StatusOr BatchRunTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request) override; + + future> + BatchRunTestCases(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request) + override; + + future> + ImportTestCases(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) override; + StatusOr ExportTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) + override; + + future> + ExportTestCases(google::cloud::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..51805bf617978 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,30 @@ TestCasesTracingConnection::RunTestCase( return internal::EndSpan(std::move(span), child_->RunTestCase(request)); } +StatusOr +TestCasesTracingConnection::RunTestCase( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TestCasesTracingConnection::RunTestCase( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TestCasesTracingConnection::BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& @@ -100,6 +124,31 @@ TestCasesTracingConnection::BatchRunTestCases( return internal::EndSpan(std::move(span), child_->BatchRunTestCases(request)); } +StatusOr +TestCasesTracingConnection::BatchRunTestCases( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TestCasesTracingConnection::BatchRunTestCases( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr TestCasesTracingConnection::CalculateCoverage( google::cloud::dialogflow::cx::v3::CalculateCoverageRequest const& @@ -119,6 +168,30 @@ TestCasesTracingConnection::ImportTestCases( return internal::EndSpan(std::move(span), child_->ImportTestCases(request)); } +StatusOr +TestCasesTracingConnection::ImportTestCases( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TestCasesTracingConnection::ImportTestCases( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TestCasesTracingConnection::ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) { @@ -128,6 +201,30 @@ TestCasesTracingConnection::ExportTestCases( return internal::EndSpan(std::move(span), child_->ExportTestCases(request)); } +StatusOr +TestCasesTracingConnection::ExportTestCases( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TestCasesTracingConnection::ExportTestCases( + google::cloud::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(google::cloud::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..4e02184f3d8d3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request) + override; + + future> + RunTestCase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& request) override; + StatusOr BatchRunTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request) override; + + future> + BatchRunTestCases(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request) + override; + + future> + ImportTestCases(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) override; + StatusOr ExportTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request) + override; + + future> + ExportTestCases(google::cloud::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..756c3b50baec0 100644 --- a/google/cloud/dialogflow_cx/internal/versions_connection_impl.cc +++ b/google/cloud/dialogflow_cx/internal/versions_connection_impl.cc @@ -152,6 +152,60 @@ VersionsConnectionImpl::CreateVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::CreateVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +274,56 @@ future> VersionsConnectionImpl::LoadVersion( polling_policy(*current), __func__); } +StatusOr VersionsConnectionImpl::LoadVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..dedc874b5db53 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request) + override; + + future> CreateVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request) + override; + + future> LoadVersion( + google::cloud::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..59be8f23e3f82 100644 --- a/google/cloud/dialogflow_cx/internal/versions_tracing_connection.cc +++ b/google/cloud/dialogflow_cx/internal/versions_tracing_connection.cc @@ -63,6 +63,30 @@ VersionsTracingConnection::CreateVersion( return internal::EndSpan(std::move(span), child_->CreateVersion(request)); } +StatusOr +VersionsTracingConnection::CreateVersion( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::CreateVersion( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VersionsTracingConnection::UpdateVersion( google::cloud::dialogflow::cx::v3::UpdateVersionRequest const& request) { @@ -89,6 +113,29 @@ VersionsTracingConnection::LoadVersion( return internal::EndSpan(std::move(span), child_->LoadVersion(request)); } +StatusOr VersionsTracingConnection::LoadVersion( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VersionsTracingConnection::LoadVersion( + google::cloud::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(google::cloud::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..192ed00b8803a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request) + override; + + future> CreateVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request) + override; + + future> LoadVersion( + google::cloud::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..8deab9ed8b5f8 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_agents_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_agents_connection.h @@ -77,11 +77,35 @@ class MockAgentsConnection : public dialogflow_cx::AgentsConnection { (google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportAgent, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportAgentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportAgent, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreAgent, (google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreAgent, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RestoreAgentRequest const& request), + (override)); + + MOCK_METHOD(future>, RestoreAgent, + (google::cloud::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..4b016023ce7cf 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,21 @@ class MockEntityTypesConnection : public dialogflow_cx::EntityTypesConnection { request), (override)); + MOCK_METHOD( + StatusOr, ExportEntityTypes, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportEntityTypesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ExportEntityTypes, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -89,6 +104,21 @@ class MockEntityTypesConnection : public dialogflow_cx::EntityTypesConnection { (google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportEntityTypes, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportEntityTypesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportEntityTypes, + (google::cloud::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..6d7788fabc7f1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateEnvironmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEnvironment, @@ -72,6 +85,19 @@ class MockEnvironmentsConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::UpdateEnvironmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteEnvironment, (google::cloud::dialogflow::cx::v3::DeleteEnvironmentRequest const& @@ -93,6 +119,21 @@ class MockEnvironmentsConnection request), (override)); + MOCK_METHOD( + StatusOr, RunContinuousTest, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunContinuousTestRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RunContinuousTest, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListContinuousTestResults, @@ -105,6 +146,19 @@ class MockEnvironmentsConnection DeployFlow, (google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeployFlow, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::DeployFlowRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeployFlow, + (google::cloud::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..f4b5e4f860287 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::TrainFlowRequest const& request), + (override)); + + MOCK_METHOD(future>, TrainFlow, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, ValidateFlow, @@ -94,11 +105,37 @@ class MockFlowsConnection : public dialogflow_cx::FlowsConnection { (google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportFlow, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportFlowRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportFlow, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportFlow, (google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ExportFlow, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportFlowRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportFlow, + (google::cloud::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..c5b80e094fa21 100644 --- a/google/cloud/dialogflow_cx/mocks/mock_intents_connection.h +++ b/google/cloud/dialogflow_cx/mocks/mock_intents_connection.h @@ -78,12 +78,40 @@ class MockIntentsConnection : public dialogflow_cx::IntentsConnection { (google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportIntents, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportIntentsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ImportIntents, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportIntentsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ExportIntents, + (google::cloud::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..5bb6f6c09f133 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,19 @@ class MockTestCasesConnection : public dialogflow_cx::TestCasesConnection { (google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RunTestCase, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RunTestCase, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -86,6 +99,21 @@ class MockTestCasesConnection : public dialogflow_cx::TestCasesConnection { request), (override)); + MOCK_METHOD( + StatusOr, BatchRunTestCases, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchRunTestCases, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CalculateCoverage, @@ -101,6 +129,20 @@ class MockTestCasesConnection : public dialogflow_cx::TestCasesConnection { request), (override)); + MOCK_METHOD(StatusOr, ImportTestCases, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ImportTestCases, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -109,6 +151,20 @@ class MockTestCasesConnection : public dialogflow_cx::TestCasesConnection { request), (override)); + MOCK_METHOD(StatusOr, ExportTestCases, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ExportTestCases, + (google::cloud::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..84fbc7e10ff70 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateVersion, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request), + (override)); + + MOCK_METHOD(future>, LoadVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CompareVersions, diff --git a/google/cloud/dialogflow_cx/pages_client.h b/google/cloud/dialogflow_cx/pages_client.h index a31eae6abee43..83f0f91f11780 100644 --- a/google/cloud/dialogflow_cx/pages_client.h +++ b/google/cloud/dialogflow_cx/pages_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_PAGES_CLIENT_H #include "google/cloud/dialogflow_cx/pages_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/dialogflow_cx/security_settings_client.h index 03df2f4f0bf6f..01e0ddb5025e8 100644 --- a/google/cloud/dialogflow_cx/security_settings_client.h +++ b/google/cloud/dialogflow_cx/security_settings_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_SECURITY_SETTINGS_CLIENT_H #include "google/cloud/dialogflow_cx/security_settings_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/dialogflow_cx/session_entity_types_client.h index 6c84a442e37e4..4a0d3a6feb89b 100644 --- a/google/cloud/dialogflow_cx/session_entity_types_client.h +++ b/google/cloud/dialogflow_cx/session_entity_types_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_SESSION_ENTITY_TYPES_CLIENT_H #include "google/cloud/dialogflow_cx/session_entity_types_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/dialogflow_cx/sessions_client.h index bb24c67cdef49..aa26c6fd0d2e7 100644 --- a/google/cloud/dialogflow_cx/sessions_client.h +++ b/google/cloud/dialogflow_cx/sessions_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_SESSIONS_CLIENT_H #include "google/cloud/dialogflow_cx/sessions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/dialogflow_cx/test_cases_client.cc index 74e2b70c33cb9..edae97df5f1f1 100644 --- a/google/cloud/dialogflow_cx/test_cases_client.cc +++ b/google/cloud/dialogflow_cx/test_cases_client.cc @@ -127,6 +127,23 @@ TestCasesClient::RunTestCase( return connection_->RunTestCase(request); } +StatusOr TestCasesClient::RunTestCase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunTestCase(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TestCasesClient::RunTestCase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunTestCase(google::cloud::ExperimentalTag{}, operation); +} + future> TestCasesClient::BatchRunTestCases( google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& request, @@ -135,6 +152,24 @@ TestCasesClient::BatchRunTestCases( return connection_->BatchRunTestCases(request); } +StatusOr TestCasesClient::BatchRunTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchRunTestCases(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TestCasesClient::BatchRunTestCases( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchRunTestCases(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TestCasesClient::CalculateCoverage( google::cloud::dialogflow::cx::v3::CalculateCoverageRequest const& request, @@ -151,6 +186,24 @@ TestCasesClient::ImportTestCases( return connection_->ImportTestCases(request); } +StatusOr TestCasesClient::ImportTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportTestCases(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TestCasesClient::ImportTestCases( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportTestCases(google::cloud::ExperimentalTag{}, + operation); +} + future> TestCasesClient::ExportTestCases( google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request, @@ -159,6 +212,24 @@ TestCasesClient::ExportTestCases( return connection_->ExportTestCases(request); } +StatusOr TestCasesClient::ExportTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportTestCases(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TestCasesClient::ExportTestCases( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportTestCases(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TestCasesClient::ListTestCaseResults(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/dialogflow_cx/test_cases_client.h b/google/cloud/dialogflow_cx/test_cases_client.h index 3100b9f50d5a3..5d8050e10b03c 100644 --- a/google/cloud/dialogflow_cx/test_cases_client.h +++ b/google/cloud/dialogflow_cx/test_cases_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_TEST_CASES_CLIENT_H #include "google/cloud/dialogflow_cx/test_cases_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -445,6 +447,16 @@ class TestCasesClient { google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request, Options opts = {}); + StatusOr RunTestCase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::RunTestCaseRequest const& request, + Options opts = {}); + + future> + RunTestCase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Kicks off a batch run of test cases. @@ -495,6 +507,17 @@ class TestCasesClient { request, Options opts = {}); + StatusOr BatchRunTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::BatchRunTestCasesRequest const& + request, + Options opts = {}); + + future> + BatchRunTestCases(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Calculates the test coverage for an agent. @@ -579,6 +602,16 @@ class TestCasesClient { google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request, Options opts = {}); + StatusOr ImportTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ImportTestCasesRequest const& request, + Options opts = {}); + + future> + ImportTestCases(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Exports the test cases under the agent to a Cloud Storage bucket or a local @@ -629,6 +662,16 @@ class TestCasesClient { google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request, Options opts = {}); + StatusOr ExportTestCases( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::ExportTestCasesRequest const& request, + Options opts = {}); + + future> + ExportTestCases(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Fetches the list of run results for the given test case. A maximum of 100 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_client.h b/google/cloud/dialogflow_cx/transition_route_groups_client.h index f513ac58a4166..172c6956dda7f 100644 --- a/google/cloud/dialogflow_cx/transition_route_groups_client.h +++ b/google/cloud/dialogflow_cx/transition_route_groups_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_TRANSITION_ROUTE_GROUPS_CLIENT_H #include "google/cloud/dialogflow_cx/transition_route_groups_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/dialogflow_cx/versions_client.cc index 91fb1558c285c..9051ca53fd3b1 100644 --- a/google/cloud/dialogflow_cx/versions_client.cc +++ b/google/cloud/dialogflow_cx/versions_client.cc @@ -74,6 +74,18 @@ VersionsClient::CreateVersion( return connection_->CreateVersion(request); } +StatusOr VersionsClient::CreateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::cx::v3::Version const& version, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::cx::v3::CreateVersionRequest request; + request.set_parent(parent); + *request.mutable_version() = version; + return connection_->CreateVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VersionsClient::CreateVersion( google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request, @@ -82,6 +94,24 @@ VersionsClient::CreateVersion( return connection_->CreateVersion(request); } +StatusOr VersionsClient::CreateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VersionsClient::CreateVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVersion(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VersionsClient::UpdateVersion( google::cloud::dialogflow::cx::v3::Version const& version, @@ -123,6 +153,16 @@ future> VersionsClient::LoadVersion( return connection_->LoadVersion(request); } +StatusOr VersionsClient::LoadVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::cx::v3::LoadVersionRequest request; + request.set_name(name); + return connection_->LoadVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VersionsClient::LoadVersion( google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request, Options opts) { @@ -130,6 +170,22 @@ future> VersionsClient::LoadVersion( return connection_->LoadVersion(request); } +StatusOr VersionsClient::LoadVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LoadVersion(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> VersionsClient::LoadVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LoadVersion(google::cloud::ExperimentalTag{}, operation); +} + StatusOr VersionsClient::CompareVersions(std::string const& base_version, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/dialogflow_cx/versions_client.h b/google/cloud/dialogflow_cx/versions_client.h index 1ebd072e5f2b6..743a2b7da26c6 100644 --- a/google/cloud/dialogflow_cx/versions_client.h +++ b/google/cloud/dialogflow_cx/versions_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_VERSIONS_CLIENT_H #include "google/cloud/dialogflow_cx/versions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -271,6 +273,12 @@ class VersionsClient { google::cloud::dialogflow::cx::v3::Version const& version, Options opts = {}); + StatusOr CreateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::cx::v3::Version const& version, + Options opts = {}); + // clang-format off /// /// Creates a [Version][google.cloud.dialogflow.cx.v3.Version] in the specified @@ -320,6 +328,15 @@ class VersionsClient { google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request, Options opts = {}); + StatusOr CreateVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::CreateVersionRequest const& request, + Options opts = {}); + + future> CreateVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the specified [Version][google.cloud.dialogflow.cx.v3.Version]. @@ -474,6 +491,10 @@ class VersionsClient { future> LoadVersion( std::string const& name, Options opts = {}); + StatusOr LoadVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Loads resources in the specified version to the draft flow. @@ -521,6 +542,15 @@ class VersionsClient { google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request, Options opts = {}); + StatusOr LoadVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::cx::v3::LoadVersionRequest const& request, + Options opts = {}); + + future> LoadVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Compares the specified base version with target version. 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_client.h b/google/cloud/dialogflow_cx/webhooks_client.h index 8f54ec8330da2..6aa40b8d03f81 100644 --- a/google/cloud/dialogflow_cx/webhooks_client.h +++ b/google/cloud/dialogflow_cx/webhooks_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_CX_WEBHOOKS_CLIENT_H #include "google/cloud/dialogflow_cx/webhooks_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/dialogflow_es/agents_client.cc index 91763f87eb5f6..6d648c19e0a95 100644 --- a/google/cloud/dialogflow_es/agents_client.cc +++ b/google/cloud/dialogflow_es/agents_client.cc @@ -98,6 +98,16 @@ future> AgentsClient::TrainAgent( return connection_->TrainAgent(request); } +StatusOr AgentsClient::TrainAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::TrainAgentRequest request; + request.set_parent(parent); + return connection_->TrainAgent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AgentsClient::TrainAgent( google::cloud::dialogflow::v2::TrainAgentRequest const& request, Options opts) { @@ -105,6 +115,22 @@ future> AgentsClient::TrainAgent( return connection_->TrainAgent(request); } +StatusOr AgentsClient::TrainAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TrainAgent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> AgentsClient::TrainAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TrainAgent(google::cloud::ExperimentalTag{}, operation); +} + future> AgentsClient::ExportAgent(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -113,6 +139,16 @@ AgentsClient::ExportAgent(std::string const& parent, Options opts) { return connection_->ExportAgent(request); } +StatusOr AgentsClient::ExportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::ExportAgentRequest request; + request.set_parent(parent); + return connection_->ExportAgent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AgentsClient::ExportAgent( google::cloud::dialogflow::v2::ExportAgentRequest const& request, @@ -121,6 +157,23 @@ AgentsClient::ExportAgent( return connection_->ExportAgent(request); } +StatusOr AgentsClient::ExportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportAgent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AgentsClient::ExportAgent(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportAgent(google::cloud::ExperimentalTag{}, operation); +} + future> AgentsClient::ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request, Options opts) { @@ -128,6 +181,22 @@ future> AgentsClient::ImportAgent( return connection_->ImportAgent(request); } +StatusOr AgentsClient::ImportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportAgent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> AgentsClient::ImportAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportAgent(google::cloud::ExperimentalTag{}, operation); +} + future> AgentsClient::RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request, Options opts) { @@ -135,6 +204,22 @@ future> AgentsClient::RestoreAgent( return connection_->RestoreAgent(request); } +StatusOr AgentsClient::RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreAgent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> AgentsClient::RestoreAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreAgent(google::cloud::ExperimentalTag{}, operation); +} + StatusOr AgentsClient::GetValidationResult( google::cloud::dialogflow::v2::GetValidationResultRequest const& request, diff --git a/google/cloud/dialogflow_es/agents_client.h b/google/cloud/dialogflow_es/agents_client.h index 5bf0964617379..9cb3435c73753 100644 --- a/google/cloud/dialogflow_es/agents_client.h +++ b/google/cloud/dialogflow_es/agents_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_AGENTS_CLIENT_H #include "google/cloud/dialogflow_es/agents_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -391,6 +393,10 @@ class AgentsClient { future> TrainAgent( std::string const& parent, Options opts = {}); + StatusOr TrainAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Trains the specified agent. @@ -442,6 +448,15 @@ class AgentsClient { google::cloud::dialogflow::v2::TrainAgentRequest const& request, Options opts = {}); + StatusOr TrainAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request, + Options opts = {}); + + future> TrainAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Exports the specified agent to a ZIP file. @@ -484,6 +499,10 @@ class AgentsClient { future> ExportAgent(std::string const& parent, Options opts = {}); + StatusOr ExportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Exports the specified agent to a ZIP file. @@ -531,6 +550,16 @@ class AgentsClient { ExportAgent(google::cloud::dialogflow::v2::ExportAgentRequest const& request, Options opts = {}); + StatusOr ExportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request, + Options opts = {}); + + future> + ExportAgent(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports the specified agent from a ZIP file. @@ -596,6 +625,15 @@ class AgentsClient { google::cloud::dialogflow::v2::ImportAgentRequest const& request, Options opts = {}); + StatusOr ImportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request, + Options opts = {}); + + future> ImportAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Restores the specified agent from a ZIP file. @@ -659,6 +697,15 @@ class AgentsClient { google::cloud::dialogflow::v2::RestoreAgentRequest const& request, Options opts = {}); + StatusOr RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request, + Options opts = {}); + + future> RestoreAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets agent validation result. Agent validation is performed during 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_client.h b/google/cloud/dialogflow_es/answer_records_client.h index e9074773a37d1..72cdc5b267a4f 100644 --- a/google/cloud/dialogflow_es/answer_records_client.h +++ b/google/cloud/dialogflow_es/answer_records_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_ANSWER_RECORDS_CLIENT_H #include "google/cloud/dialogflow_es/answer_records_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/dialogflow_es/contexts_client.h index 920f2174d5632..23e6d8d995ef1 100644 --- a/google/cloud/dialogflow_es/contexts_client.h +++ b/google/cloud/dialogflow_es/contexts_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_CONTEXTS_CLIENT_H #include "google/cloud/dialogflow_es/contexts_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/dialogflow_es/conversation_datasets_client.cc index bbaf6d206f674..6fd9d5ef07a13 100644 --- a/google/cloud/dialogflow_es/conversation_datasets_client.cc +++ b/google/cloud/dialogflow_es/conversation_datasets_client.cc @@ -45,6 +45,21 @@ ConversationDatasetsClient::CreateConversationDataset( return connection_->CreateConversationDataset(request); } +StatusOr +ConversationDatasetsClient::CreateConversationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::ConversationDataset const& + conversation_dataset, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::CreateConversationDatasetRequest request; + request.set_parent(parent); + *request.mutable_conversation_dataset() = conversation_dataset; + return connection_->CreateConversationDataset( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationDatasetsClient::CreateConversationDataset( google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& @@ -54,6 +69,26 @@ ConversationDatasetsClient::CreateConversationDataset( return connection_->CreateConversationDataset(request); } +StatusOr +ConversationDatasetsClient::CreateConversationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConversationDataset( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationDatasetsClient::CreateConversationDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConversationDataset( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr ConversationDatasetsClient::GetConversationDataset(std::string const& name, Options opts) { @@ -98,6 +133,17 @@ ConversationDatasetsClient::DeleteConversationDataset(std::string const& name, return connection_->DeleteConversationDataset(request); } +StatusOr +ConversationDatasetsClient::DeleteConversationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest request; + request.set_name(name); + return connection_->DeleteConversationDataset( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationDatasetsClient::DeleteConversationDataset( @@ -108,6 +154,27 @@ ConversationDatasetsClient::DeleteConversationDataset( return connection_->DeleteConversationDataset(request); } +StatusOr +ConversationDatasetsClient::DeleteConversationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConversationDataset( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationDatasetsClient::DeleteConversationDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConversationDataset( + google::cloud::ExperimentalTag{}, operation); +} + future> ConversationDatasetsClient::ImportConversationData( @@ -117,6 +184,26 @@ ConversationDatasetsClient::ImportConversationData( return connection_->ImportConversationData(request); } +StatusOr +ConversationDatasetsClient::ImportConversationData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportConversationData( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationDatasetsClient::ImportConversationData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportConversationData(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es } // namespace cloud diff --git a/google/cloud/dialogflow_es/conversation_datasets_client.h b/google/cloud/dialogflow_es/conversation_datasets_client.h index adee2466ab645..da867ac51d34c 100644 --- a/google/cloud/dialogflow_es/conversation_datasets_client.h +++ b/google/cloud/dialogflow_es/conversation_datasets_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_CONVERSATION_DATASETS_CLIENT_H #include "google/cloud/dialogflow_es/conversation_datasets_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -139,6 +141,13 @@ class ConversationDatasetsClient { conversation_dataset, Options opts = {}); + StatusOr CreateConversationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::ConversationDataset const& + conversation_dataset, + Options opts = {}); + // clang-format off /// /// Creates a new conversation dataset. @@ -189,6 +198,17 @@ class ConversationDatasetsClient { request, Options opts = {}); + StatusOr CreateConversationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request, + Options opts = {}); + + future> + CreateConversationDataset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the specified conversation dataset. @@ -369,6 +389,10 @@ class ConversationDatasetsClient { DeleteConversationDatasetOperationMetadata>> DeleteConversationDataset(std::string const& name, Options opts = {}); + StatusOr DeleteConversationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified conversation dataset. @@ -419,6 +443,18 @@ class ConversationDatasetsClient { request, Options opts = {}); + StatusOr DeleteConversationDataset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request, + Options opts = {}); + + future> + DeleteConversationDataset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Import data into the specified conversation dataset. Note that it @@ -472,6 +508,18 @@ class ConversationDatasetsClient { request, Options opts = {}); + StatusOr ImportConversationData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request, + Options opts = {}); + + future> + ImportConversationData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/dialogflow_es/conversation_models_client.cc index caf1dc249df69..ce4d5bfd97ff2 100644 --- a/google/cloud/dialogflow_es/conversation_models_client.cc +++ b/google/cloud/dialogflow_es/conversation_models_client.cc @@ -44,6 +44,20 @@ ConversationModelsClient::CreateConversationModel( return connection_->CreateConversationModel(request); } +StatusOr +ConversationModelsClient::CreateConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::ConversationModel const& conversation_model, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::CreateConversationModelRequest request; + request.set_parent(parent); + *request.mutable_conversation_model() = conversation_model; + return connection_->CreateConversationModel( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationModelsClient::CreateConversationModel( google::cloud::dialogflow::v2::CreateConversationModelRequest const& @@ -53,6 +67,26 @@ ConversationModelsClient::CreateConversationModel( return connection_->CreateConversationModel(request); } +StatusOr +ConversationModelsClient::CreateConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConversationModel( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationModelsClient::CreateConversationModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConversationModel(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ConversationModelsClient::GetConversationModel(std::string const& name, Options opts) { @@ -97,6 +131,17 @@ ConversationModelsClient::DeleteConversationModel(std::string const& name, return connection_->DeleteConversationModel(request); } +StatusOr +ConversationModelsClient::DeleteConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::DeleteConversationModelRequest request; + request.set_name(name); + return connection_->DeleteConversationModel( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationModelsClient::DeleteConversationModel( @@ -107,6 +152,27 @@ ConversationModelsClient::DeleteConversationModel( return connection_->DeleteConversationModel(request); } +StatusOr +ConversationModelsClient::DeleteConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConversationModel( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationModelsClient::DeleteConversationModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConversationModel(google::cloud::ExperimentalTag{}, + operation); +} + future> ConversationModelsClient::DeployConversationModel( @@ -117,6 +183,27 @@ ConversationModelsClient::DeployConversationModel( return connection_->DeployConversationModel(request); } +StatusOr +ConversationModelsClient::DeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployConversationModel( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationModelsClient::DeployConversationModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployConversationModel(google::cloud::ExperimentalTag{}, + operation); +} + future> ConversationModelsClient::UndeployConversationModel( @@ -127,6 +214,27 @@ ConversationModelsClient::UndeployConversationModel( return connection_->UndeployConversationModel(request); } +StatusOr +ConversationModelsClient::UndeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployConversationModel( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationModelsClient::UndeployConversationModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployConversationModel( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr ConversationModelsClient::GetConversationModelEvaluation( std::string const& name, Options opts) { @@ -179,6 +287,23 @@ ConversationModelsClient::CreateConversationModelEvaluation( return connection_->CreateConversationModelEvaluation(request); } +StatusOr +ConversationModelsClient::CreateConversationModelEvaluation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::ConversationModelEvaluation const& + conversation_model_evaluation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::CreateConversationModelEvaluationRequest + request; + request.set_parent(parent); + *request.mutable_conversation_model_evaluation() = + conversation_model_evaluation; + return connection_->CreateConversationModelEvaluation( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationModelsClient::CreateConversationModelEvaluation( google::cloud::dialogflow::v2:: @@ -188,6 +313,26 @@ ConversationModelsClient::CreateConversationModelEvaluation( return connection_->CreateConversationModelEvaluation(request); } +StatusOr +ConversationModelsClient::CreateConversationModelEvaluation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConversationModelEvaluation( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationModelsClient::CreateConversationModelEvaluation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConversationModelEvaluation( + google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es } // namespace cloud diff --git a/google/cloud/dialogflow_es/conversation_models_client.h b/google/cloud/dialogflow_es/conversation_models_client.h index 9384beb313110..f99a8a30e8edd 100644 --- a/google/cloud/dialogflow_es/conversation_models_client.h +++ b/google/cloud/dialogflow_es/conversation_models_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_CONVERSATION_MODELS_CLIENT_H #include "google/cloud/dialogflow_es/conversation_models_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -136,6 +138,13 @@ class ConversationModelsClient { conversation_model, Options opts = {}); + StatusOr CreateConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::ConversationModel const& + conversation_model, + Options opts = {}); + // clang-format off /// /// Creates a model. @@ -186,6 +195,17 @@ class ConversationModelsClient { request, Options opts = {}); + StatusOr CreateConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request, + Options opts = {}); + + future> + CreateConversationModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets conversation model. @@ -363,6 +383,10 @@ class ConversationModelsClient { google::cloud::dialogflow::v2::DeleteConversationModelOperationMetadata>> DeleteConversationModel(std::string const& name, Options opts = {}); + StatusOr DeleteConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a model. @@ -413,6 +437,18 @@ class ConversationModelsClient { request, Options opts = {}); + StatusOr DeleteConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request, + Options opts = {}); + + future> + DeleteConversationModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deploys a model. If a model is already deployed, deploying it @@ -466,6 +502,18 @@ class ConversationModelsClient { request, Options opts = {}); + StatusOr DeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request, + Options opts = {}); + + future> + DeployConversationModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Undeploys a model. If the model is not deployed this method has no effect. @@ -519,6 +567,18 @@ class ConversationModelsClient { request, Options opts = {}); + StatusOr UndeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request, + Options opts = {}); + + future> + UndeployConversationModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets an evaluation of conversation model. @@ -695,6 +755,13 @@ class ConversationModelsClient { conversation_model_evaluation, Options opts = {}); + StatusOr CreateConversationModelEvaluation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::ConversationModelEvaluation const& + conversation_model_evaluation, + Options opts = {}); + // clang-format off /// /// Creates evaluation of a conversation model. @@ -735,6 +802,17 @@ class ConversationModelsClient { CreateConversationModelEvaluationRequest const& request, Options opts = {}); + StatusOr CreateConversationModelEvaluation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request, + Options opts = {}); + + future> + CreateConversationModelEvaluation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/dialogflow_es/conversation_profiles_client.cc index 0daf254dbe438..69c3056c4dfea 100644 --- a/google/cloud/dialogflow_es/conversation_profiles_client.cc +++ b/google/cloud/dialogflow_es/conversation_profiles_client.cc @@ -134,6 +134,17 @@ ConversationProfilesClient::SetSuggestionFeatureConfig( return connection_->SetSuggestionFeatureConfig(request); } +StatusOr +ConversationProfilesClient::SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& conversation_profile, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest request; + request.set_conversation_profile(conversation_profile); + return connection_->SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationProfilesClient::SetSuggestionFeatureConfig( std::string const& conversation_profile, @@ -149,6 +160,23 @@ ConversationProfilesClient::SetSuggestionFeatureConfig( return connection_->SetSuggestionFeatureConfig(request); } +StatusOr +ConversationProfilesClient::SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& conversation_profile, + google::cloud::dialogflow::v2::Participant::Role participant_role, + google::cloud::dialogflow::v2::HumanAgentAssistantConfig:: + SuggestionFeatureConfig const& suggestion_feature_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest request; + request.set_conversation_profile(conversation_profile); + request.set_participant_role(participant_role); + *request.mutable_suggestion_feature_config() = suggestion_feature_config; + return connection_->SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationProfilesClient::SetSuggestionFeatureConfig( google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& @@ -158,6 +186,26 @@ ConversationProfilesClient::SetSuggestionFeatureConfig( return connection_->SetSuggestionFeatureConfig(request); } +StatusOr +ConversationProfilesClient::SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationProfilesClient::SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag{}, operation); +} + future> ConversationProfilesClient::ClearSuggestionFeatureConfig( std::string const& conversation_profile, Options opts) { @@ -167,6 +215,17 @@ ConversationProfilesClient::ClearSuggestionFeatureConfig( return connection_->ClearSuggestionFeatureConfig(request); } +StatusOr +ConversationProfilesClient::ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& conversation_profile, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest request; + request.set_conversation_profile(conversation_profile); + return connection_->ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationProfilesClient::ClearSuggestionFeatureConfig( std::string const& conversation_profile, @@ -182,6 +241,23 @@ ConversationProfilesClient::ClearSuggestionFeatureConfig( return connection_->ClearSuggestionFeatureConfig(request); } +StatusOr +ConversationProfilesClient::ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& conversation_profile, + google::cloud::dialogflow::v2::Participant::Role participant_role, + google::cloud::dialogflow::v2::SuggestionFeature::Type + suggestion_feature_type, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest request; + request.set_conversation_profile(conversation_profile); + request.set_participant_role(participant_role); + request.set_suggestion_feature_type(suggestion_feature_type); + return connection_->ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ConversationProfilesClient::ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& @@ -191,6 +267,26 @@ ConversationProfilesClient::ClearSuggestionFeatureConfig( return connection_->ClearSuggestionFeatureConfig(request); } +StatusOr +ConversationProfilesClient::ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ConversationProfilesClient::ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es } // namespace cloud diff --git a/google/cloud/dialogflow_es/conversation_profiles_client.h b/google/cloud/dialogflow_es/conversation_profiles_client.h index 815aadbd823a1..c70f7c6c94fc7 100644 --- a/google/cloud/dialogflow_es/conversation_profiles_client.h +++ b/google/cloud/dialogflow_es/conversation_profiles_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_CONVERSATION_PROFILES_CLIENT_H #include "google/cloud/dialogflow_es/conversation_profiles_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -480,6 +482,10 @@ class ConversationProfilesClient { SetSuggestionFeatureConfig(std::string const& conversation_profile, Options opts = {}); + StatusOr SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& conversation_profile, Options opts = {}); + // clang-format off /// /// Adds or updates a suggestion feature in a conversation profile. @@ -539,6 +545,14 @@ class ConversationProfilesClient { SuggestionFeatureConfig const& suggestion_feature_config, Options opts = {}); + StatusOr SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& conversation_profile, + google::cloud::dialogflow::v2::Participant::Role participant_role, + google::cloud::dialogflow::v2::HumanAgentAssistantConfig:: + SuggestionFeatureConfig const& suggestion_feature_config, + Options opts = {}); + // clang-format off /// /// Adds or updates a suggestion feature in a conversation profile. @@ -597,6 +611,17 @@ class ConversationProfilesClient { request, Options opts = {}); + StatusOr SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request, + Options opts = {}); + + future> + SetSuggestionFeatureConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Clears a suggestion feature from a conversation profile for the given @@ -642,6 +667,10 @@ class ConversationProfilesClient { ClearSuggestionFeatureConfig(std::string const& conversation_profile, Options opts = {}); + StatusOr ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& conversation_profile, Options opts = {}); + // clang-format off /// /// Clears a suggestion feature from a conversation profile for the given @@ -694,6 +723,14 @@ class ConversationProfilesClient { suggestion_feature_type, Options opts = {}); + StatusOr ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& conversation_profile, + google::cloud::dialogflow::v2::Participant::Role participant_role, + google::cloud::dialogflow::v2::SuggestionFeature::Type + suggestion_feature_type, + Options opts = {}); + // clang-format off /// /// Clears a suggestion feature from a conversation profile for the given @@ -745,6 +782,17 @@ class ConversationProfilesClient { request, Options opts = {}); + StatusOr ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request, + Options opts = {}); + + future> + ClearSuggestionFeatureConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/dialogflow_es/conversations_client.h index 497ebcb9ca5e2..e85d2c35ec500 100644 --- a/google/cloud/dialogflow_es/conversations_client.h +++ b/google/cloud/dialogflow_es/conversations_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_CONVERSATIONS_CLIENT_H #include "google/cloud/dialogflow_es/conversations_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/dialogflow_es/documents_client.cc index ff460d7fb5787..5b7da19dcac85 100644 --- a/google/cloud/dialogflow_es/documents_client.cc +++ b/google/cloud/dialogflow_es/documents_client.cc @@ -73,6 +73,18 @@ DocumentsClient::CreateDocument( return connection_->CreateDocument(request); } +StatusOr DocumentsClient::CreateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::Document const& document, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::CreateDocumentRequest request; + request.set_parent(parent); + *request.mutable_document() = document; + return connection_->CreateDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DocumentsClient::CreateDocument( google::cloud::dialogflow::v2::CreateDocumentRequest const& request, @@ -81,6 +93,24 @@ DocumentsClient::CreateDocument( return connection_->CreateDocument(request); } +StatusOr DocumentsClient::CreateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentsClient::CreateDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDocument(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentsClient::ImportDocuments( google::cloud::dialogflow::v2::ImportDocumentsRequest const& request, @@ -89,6 +119,24 @@ DocumentsClient::ImportDocuments( return connection_->ImportDocuments(request); } +StatusOr DocumentsClient::ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportDocuments(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentsClient::ImportDocuments( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportDocuments(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentsClient::DeleteDocument(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -97,6 +145,16 @@ DocumentsClient::DeleteDocument(std::string const& name, Options opts) { return connection_->DeleteDocument(request); } +StatusOr DocumentsClient::DeleteDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::DeleteDocumentRequest request; + request.set_name(name); + return connection_->DeleteDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DocumentsClient::DeleteDocument( google::cloud::dialogflow::v2::DeleteDocumentRequest const& request, @@ -105,6 +163,24 @@ DocumentsClient::DeleteDocument( return connection_->DeleteDocument(request); } +StatusOr DocumentsClient::DeleteDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentsClient::DeleteDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDocument(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentsClient::UpdateDocument( google::cloud::dialogflow::v2::Document const& document, @@ -116,6 +192,18 @@ DocumentsClient::UpdateDocument( return connection_->UpdateDocument(request); } +StatusOr DocumentsClient::UpdateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::Document const& document, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::UpdateDocumentRequest request; + *request.mutable_document() = document; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DocumentsClient::UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request, @@ -124,6 +212,24 @@ DocumentsClient::UpdateDocument( return connection_->UpdateDocument(request); } +StatusOr DocumentsClient::UpdateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentsClient::UpdateDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDocument(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentsClient::ReloadDocument(std::string const& name, std::string const& content_uri, Options opts) { @@ -134,6 +240,17 @@ DocumentsClient::ReloadDocument(std::string const& name, return connection_->ReloadDocument(request); } +StatusOr DocumentsClient::ReloadDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& content_uri, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::ReloadDocumentRequest request; + request.set_name(name); + request.set_content_uri(content_uri); + return connection_->ReloadDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DocumentsClient::ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request, @@ -142,6 +259,24 @@ DocumentsClient::ReloadDocument( return connection_->ReloadDocument(request); } +StatusOr DocumentsClient::ReloadDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReloadDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentsClient::ReloadDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReloadDocument(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentsClient::ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request, @@ -150,6 +285,24 @@ DocumentsClient::ExportDocument( return connection_->ExportDocument(request); } +StatusOr DocumentsClient::ExportDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentsClient::ExportDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportDocument(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es } // namespace cloud diff --git a/google/cloud/dialogflow_es/documents_client.h b/google/cloud/dialogflow_es/documents_client.h index 2950b002a973b..08e3142d398dd 100644 --- a/google/cloud/dialogflow_es/documents_client.h +++ b/google/cloud/dialogflow_es/documents_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_DOCUMENTS_CLIENT_H #include "google/cloud/dialogflow_es/documents_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -266,6 +268,12 @@ class DocumentsClient { google::cloud::dialogflow::v2::Document const& document, Options opts = {}); + StatusOr CreateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::Document const& document, + Options opts = {}); + // clang-format off /// /// Creates a new document. @@ -313,6 +321,15 @@ class DocumentsClient { google::cloud::dialogflow::v2::CreateDocumentRequest const& request, Options opts = {}); + StatusOr CreateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request, + Options opts = {}); + + future> CreateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates documents by importing data from external sources. @@ -364,6 +381,16 @@ class DocumentsClient { google::cloud::dialogflow::v2::ImportDocumentsRequest const& request, Options opts = {}); + StatusOr ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request, + Options opts = {}); + + future> + ImportDocuments(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified document. @@ -406,6 +433,10 @@ class DocumentsClient { future> DeleteDocument(std::string const& name, Options opts = {}); + StatusOr DeleteDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified document. @@ -454,6 +485,16 @@ class DocumentsClient { google::cloud::dialogflow::v2::DeleteDocumentRequest const& request, Options opts = {}); + StatusOr DeleteDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request, + Options opts = {}); + + future> + DeleteDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified document. @@ -499,6 +540,11 @@ class DocumentsClient { google::cloud::dialogflow::v2::Document const& document, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::Document const& document, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified document. @@ -546,6 +592,15 @@ class DocumentsClient { google::cloud::dialogflow::v2::UpdateDocumentRequest const& request, Options opts = {}); + StatusOr UpdateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request, + Options opts = {}); + + future> UpdateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Reloads the specified document from its specified source, content_uri or @@ -600,6 +655,11 @@ class DocumentsClient { std::string const& name, std::string const& content_uri, Options opts = {}); + StatusOr ReloadDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& content_uri, + Options opts = {}); + // clang-format off /// /// Reloads the specified document from its specified source, content_uri or @@ -653,6 +713,15 @@ class DocumentsClient { google::cloud::dialogflow::v2::ReloadDocumentRequest const& request, Options opts = {}); + StatusOr ReloadDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request, + Options opts = {}); + + future> ReloadDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Exports a smart messaging candidate document into the specified @@ -701,6 +770,15 @@ class DocumentsClient { google::cloud::dialogflow::v2::ExportDocumentRequest const& request, Options opts = {}); + StatusOr ExportDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request, + Options opts = {}); + + future> ExportDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/dialogflow_es/entity_types_client.cc index 197396733fddc..0fac209942433 100644 --- a/google/cloud/dialogflow_es/entity_types_client.cc +++ b/google/cloud/dialogflow_es/entity_types_client.cc @@ -171,6 +171,25 @@ EntityTypesClient::BatchUpdateEntityTypes( return connection_->BatchUpdateEntityTypes(request); } +StatusOr +EntityTypesClient::BatchUpdateEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchUpdateEntityTypes( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +EntityTypesClient::BatchUpdateEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchUpdateEntityTypes(google::cloud::ExperimentalTag{}, + operation); +} + future> EntityTypesClient::BatchDeleteEntityTypes( std::string const& parent, @@ -183,6 +202,20 @@ EntityTypesClient::BatchDeleteEntityTypes( return connection_->BatchDeleteEntityTypes(request); } +StatusOr +EntityTypesClient::BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& entity_type_names, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest request; + request.set_parent(parent); + *request.mutable_entity_type_names() = {entity_type_names.begin(), + entity_type_names.end()}; + return connection_->BatchDeleteEntityTypes( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> EntityTypesClient::BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request, @@ -191,6 +224,25 @@ EntityTypesClient::BatchDeleteEntityTypes( return connection_->BatchDeleteEntityTypes(request); } +StatusOr +EntityTypesClient::BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteEntityTypes( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +EntityTypesClient::BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteEntityTypes(google::cloud::ExperimentalTag{}, + operation); +} + future> EntityTypesClient::BatchCreateEntities( std::string const& parent, @@ -204,6 +256,20 @@ EntityTypesClient::BatchCreateEntities( return connection_->BatchCreateEntities(request); } +StatusOr EntityTypesClient::BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + entities, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest request; + request.set_parent(parent); + *request.mutable_entities() = {entities.begin(), entities.end()}; + return connection_->BatchCreateEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EntityTypesClient::BatchCreateEntities( std::string const& parent, @@ -218,6 +284,21 @@ EntityTypesClient::BatchCreateEntities( return connection_->BatchCreateEntities(request); } +StatusOr EntityTypesClient::BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + entities, + std::string const& language_code, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest request; + request.set_parent(parent); + *request.mutable_entities() = {entities.begin(), entities.end()}; + request.set_language_code(language_code); + return connection_->BatchCreateEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EntityTypesClient::BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request, @@ -226,6 +307,24 @@ EntityTypesClient::BatchCreateEntities( return connection_->BatchCreateEntities(request); } +StatusOr EntityTypesClient::BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EntityTypesClient::BatchCreateEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateEntities(google::cloud::ExperimentalTag{}, + operation); +} + future> EntityTypesClient::BatchUpdateEntities( std::string const& parent, @@ -239,6 +338,20 @@ EntityTypesClient::BatchUpdateEntities( return connection_->BatchUpdateEntities(request); } +StatusOr EntityTypesClient::BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + entities, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest request; + request.set_parent(parent); + *request.mutable_entities() = {entities.begin(), entities.end()}; + return connection_->BatchUpdateEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EntityTypesClient::BatchUpdateEntities( std::string const& parent, @@ -253,6 +366,21 @@ EntityTypesClient::BatchUpdateEntities( return connection_->BatchUpdateEntities(request); } +StatusOr EntityTypesClient::BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + entities, + std::string const& language_code, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest request; + request.set_parent(parent); + *request.mutable_entities() = {entities.begin(), entities.end()}; + request.set_language_code(language_code); + return connection_->BatchUpdateEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EntityTypesClient::BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request, @@ -261,6 +389,24 @@ EntityTypesClient::BatchUpdateEntities( return connection_->BatchUpdateEntities(request); } +StatusOr EntityTypesClient::BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchUpdateEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EntityTypesClient::BatchUpdateEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchUpdateEntities(google::cloud::ExperimentalTag{}, + operation); +} + future> EntityTypesClient::BatchDeleteEntities( std::string const& parent, std::vector const& entity_values, @@ -273,6 +419,19 @@ EntityTypesClient::BatchDeleteEntities( return connection_->BatchDeleteEntities(request); } +StatusOr EntityTypesClient::BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& entity_values, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest request; + request.set_parent(parent); + *request.mutable_entity_values() = {entity_values.begin(), + entity_values.end()}; + return connection_->BatchDeleteEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EntityTypesClient::BatchDeleteEntities( std::string const& parent, std::vector const& entity_values, @@ -286,6 +445,20 @@ EntityTypesClient::BatchDeleteEntities( return connection_->BatchDeleteEntities(request); } +StatusOr EntityTypesClient::BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& entity_values, + std::string const& language_code, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest request; + request.set_parent(parent); + *request.mutable_entity_values() = {entity_values.begin(), + entity_values.end()}; + request.set_language_code(language_code); + return connection_->BatchDeleteEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EntityTypesClient::BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request, @@ -294,6 +467,24 @@ EntityTypesClient::BatchDeleteEntities( return connection_->BatchDeleteEntities(request); } +StatusOr EntityTypesClient::BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteEntities(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EntityTypesClient::BatchDeleteEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteEntities(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es } // namespace cloud diff --git a/google/cloud/dialogflow_es/entity_types_client.h b/google/cloud/dialogflow_es/entity_types_client.h index 1058c3510450b..18b886c83fce5 100644 --- a/google/cloud/dialogflow_es/entity_types_client.h +++ b/google/cloud/dialogflow_es/entity_types_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_ENTITY_TYPES_CLIENT_H #include "google/cloud/dialogflow_es/entity_types_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -612,6 +614,18 @@ class EntityTypesClient { request, Options opts = {}); + StatusOr BatchUpdateEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request, + Options opts = {}); + + future< + StatusOr> + BatchUpdateEntityTypes(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes entity types in the specified agent. @@ -661,6 +675,11 @@ class EntityTypesClient { std::string const& parent, std::vector const& entity_type_names, Options opts = {}); + StatusOr BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& entity_type_names, Options opts = {}); + // clang-format off /// /// Deletes entity types in the specified agent. @@ -713,6 +732,16 @@ class EntityTypesClient { request, Options opts = {}); + StatusOr BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request, + Options opts = {}); + + future> BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates multiple new entities in the specified entity type. @@ -763,6 +792,13 @@ class EntityTypesClient { entities, Options opts = {}); + StatusOr BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + entities, + Options opts = {}); + // clang-format off /// /// Creates multiple new entities in the specified entity type. @@ -818,6 +854,13 @@ class EntityTypesClient { entities, std::string const& language_code, Options opts = {}); + StatusOr BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + entities, + std::string const& language_code, Options opts = {}); + // clang-format off /// /// Creates multiple new entities in the specified entity type. @@ -869,6 +912,15 @@ class EntityTypesClient { google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request, Options opts = {}); + StatusOr BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request, + Options opts = {}); + + future> BatchCreateEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates or creates multiple entities in the specified entity type. This @@ -922,6 +974,13 @@ class EntityTypesClient { entities, Options opts = {}); + StatusOr BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + entities, + Options opts = {}); + // clang-format off /// /// Updates or creates multiple entities in the specified entity type. This @@ -980,6 +1039,13 @@ class EntityTypesClient { entities, std::string const& language_code, Options opts = {}); + StatusOr BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& + entities, + std::string const& language_code, Options opts = {}); + // clang-format off /// /// Updates or creates multiple entities in the specified entity type. This @@ -1034,6 +1100,15 @@ class EntityTypesClient { google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request, Options opts = {}); + StatusOr BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request, + Options opts = {}); + + future> BatchUpdateEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes entities in the specified entity type. @@ -1084,6 +1159,11 @@ class EntityTypesClient { std::string const& parent, std::vector const& entity_values, Options opts = {}); + StatusOr BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& entity_values, + Options opts = {}); + // clang-format off /// /// Deletes entities in the specified entity type. @@ -1139,6 +1219,11 @@ class EntityTypesClient { std::string const& parent, std::vector const& entity_values, std::string const& language_code, Options opts = {}); + StatusOr BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& entity_values, + std::string const& language_code, Options opts = {}); + // clang-format off /// /// Deletes entities in the specified entity type. @@ -1190,6 +1275,15 @@ class EntityTypesClient { google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request, Options opts = {}); + StatusOr BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request, + Options opts = {}); + + future> BatchDeleteEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/dialogflow_es/environments_client.h index 8b4bc5bd6af26..4c626d12f0b26 100644 --- a/google/cloud/dialogflow_es/environments_client.h +++ b/google/cloud/dialogflow_es/environments_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_ENVIRONMENTS_CLIENT_H #include "google/cloud/dialogflow_es/environments_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/dialogflow_es/fulfillments_client.h index d96a1f64a3097..02255aa304f62 100644 --- a/google/cloud/dialogflow_es/fulfillments_client.h +++ b/google/cloud/dialogflow_es/fulfillments_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_FULFILLMENTS_CLIENT_H #include "google/cloud/dialogflow_es/fulfillments_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/dialogflow_es/intents_client.cc index 6da19f691dda1..b1ab725477aa8 100644 --- a/google/cloud/dialogflow_es/intents_client.cc +++ b/google/cloud/dialogflow_es/intents_client.cc @@ -162,6 +162,18 @@ IntentsClient::BatchUpdateIntents(std::string const& parent, return connection_->BatchUpdateIntents(request); } +StatusOr IntentsClient::BatchUpdateIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& intent_batch_uri, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest request; + request.set_parent(parent); + request.set_intent_batch_uri(intent_batch_uri); + return connection_->BatchUpdateIntents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IntentsClient::BatchUpdateIntents( std::string const& parent, @@ -174,6 +186,19 @@ IntentsClient::BatchUpdateIntents( return connection_->BatchUpdateIntents(request); } +StatusOr IntentsClient::BatchUpdateIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::IntentBatch const& intent_batch_inline, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest request; + request.set_parent(parent); + *request.mutable_intent_batch_inline() = intent_batch_inline; + return connection_->BatchUpdateIntents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IntentsClient::BatchUpdateIntents( google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request, @@ -182,6 +207,24 @@ IntentsClient::BatchUpdateIntents( return connection_->BatchUpdateIntents(request); } +StatusOr IntentsClient::BatchUpdateIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchUpdateIntents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IntentsClient::BatchUpdateIntents( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchUpdateIntents(google::cloud::ExperimentalTag{}, + operation); +} + future> IntentsClient::BatchDeleteIntents( std::string const& parent, std::vector const& intents, @@ -193,6 +236,19 @@ future> IntentsClient::BatchDeleteIntents( return connection_->BatchDeleteIntents(request); } +StatusOr IntentsClient::BatchDeleteIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& intents, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest request; + request.set_parent(parent); + *request.mutable_intents() = {intents.begin(), intents.end()}; + return connection_->BatchDeleteIntents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IntentsClient::BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request, Options opts) { @@ -200,6 +256,23 @@ future> IntentsClient::BatchDeleteIntents( return connection_->BatchDeleteIntents(request); } +StatusOr IntentsClient::BatchDeleteIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteIntents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> IntentsClient::BatchDeleteIntents( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteIntents(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace dialogflow_es } // namespace cloud diff --git a/google/cloud/dialogflow_es/intents_client.h b/google/cloud/dialogflow_es/intents_client.h index 1bd7e599b9a6d..9cbcc0cf234f2 100644 --- a/google/cloud/dialogflow_es/intents_client.h +++ b/google/cloud/dialogflow_es/intents_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_INTENTS_CLIENT_H #include "google/cloud/dialogflow_es/intents_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -627,6 +629,11 @@ class IntentsClient { BatchUpdateIntents(std::string const& parent, std::string const& intent_batch_uri, Options opts = {}); + StatusOr BatchUpdateIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& intent_batch_uri, + Options opts = {}); + // clang-format off /// /// Updates/Creates multiple intents in the specified agent. @@ -677,6 +684,12 @@ class IntentsClient { google::cloud::dialogflow::v2::IntentBatch const& intent_batch_inline, Options opts = {}); + StatusOr BatchUpdateIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::dialogflow::v2::IntentBatch const& intent_batch_inline, + Options opts = {}); + // clang-format off /// /// Updates/Creates multiple intents in the specified agent. @@ -729,6 +742,16 @@ class IntentsClient { google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request, Options opts = {}); + StatusOr BatchUpdateIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request, + Options opts = {}); + + future> + BatchUpdateIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes intents in the specified agent. @@ -779,6 +802,12 @@ class IntentsClient { std::vector const& intents, Options opts = {}); + StatusOr BatchDeleteIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& intents, + Options opts = {}); + // clang-format off /// /// Deletes intents in the specified agent. @@ -830,6 +859,15 @@ class IntentsClient { google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request, Options opts = {}); + StatusOr BatchDeleteIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request, + Options opts = {}); + + future> BatchDeleteIntents( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..5b0bb51a30f35 100644 --- a/google/cloud/dialogflow_es/internal/agents_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/agents_connection_impl.cc @@ -173,6 +173,55 @@ future> AgentsConnectionImpl::TrainAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::TrainAgent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +261,57 @@ AgentsConnectionImpl::ExportAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::ExportAgent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +350,55 @@ future> AgentsConnectionImpl::ImportAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::ImportAgent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +437,56 @@ future> AgentsConnectionImpl::RestoreAgent( polling_policy(*current), __func__); } +StatusOr AgentsConnectionImpl::RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..c2480b6c1e167 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request) override; + + future> TrainAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportAgent(google::cloud::dialogflow::v2::ExportAgentRequest const& request) override; + StatusOr ExportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request) + override; + + future> + ExportAgent(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request) override; + StatusOr ImportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request) + override; + + future> ImportAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request) override; + StatusOr RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request) + override; + + future> RestoreAgent( + google::cloud::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..2bee73fa3234c 100644 --- a/google/cloud/dialogflow_es/internal/agents_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/agents_tracing_connection.cc @@ -75,6 +75,26 @@ future> AgentsTracingConnection::TrainAgent( return internal::EndSpan(std::move(span), child_->TrainAgent(request)); } +StatusOr AgentsTracingConnection::TrainAgent( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> AgentsTracingConnection::TrainAgent( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AgentsTracingConnection::ExportAgent( google::cloud::dialogflow::v2::ExportAgentRequest const& request) { @@ -84,6 +104,29 @@ AgentsTracingConnection::ExportAgent( return internal::EndSpan(std::move(span), child_->ExportAgent(request)); } +StatusOr AgentsTracingConnection::ExportAgent( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AgentsTracingConnection::ExportAgent( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AgentsTracingConnection::ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request) { auto span = @@ -92,6 +135,28 @@ future> AgentsTracingConnection::ImportAgent( return internal::EndSpan(std::move(span), child_->ImportAgent(request)); } +StatusOr AgentsTracingConnection::ImportAgent( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> AgentsTracingConnection::ImportAgent( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AgentsTracingConnection::RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request) { @@ -101,6 +166,29 @@ AgentsTracingConnection::RestoreAgent( return internal::EndSpan(std::move(span), child_->RestoreAgent(request)); } +StatusOr AgentsTracingConnection::RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AgentsTracingConnection::RestoreAgent( + google::cloud::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(google::cloud::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..6d50a451dc5ba 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request) override; + + future> TrainAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportAgent(google::cloud::dialogflow::v2::ExportAgentRequest const& request) override; + StatusOr ExportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request) + override; + + future> + ExportAgent(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportAgent( google::cloud::dialogflow::v2::ImportAgentRequest const& request) override; + StatusOr ImportAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request) + override; + + future> ImportAgent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreAgent( google::cloud::dialogflow::v2::RestoreAgentRequest const& request) override; + StatusOr RestoreAgent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request) + override; + + future> RestoreAgent( + google::cloud::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..350589f5b5062 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,63 @@ ConversationDatasetsConnectionImpl::CreateConversationDataset( polling_policy(*current), __func__); } +StatusOr +ConversationDatasetsConnectionImpl::CreateConversationDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +262,67 @@ ConversationDatasetsConnectionImpl::DeleteConversationDataset( polling_policy(*current), __func__); } +StatusOr +ConversationDatasetsConnectionImpl::DeleteConversationDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +366,65 @@ ConversationDatasetsConnectionImpl::ImportConversationData( polling_policy(*current), __func__); } +StatusOr +ConversationDatasetsConnectionImpl::ImportConversationData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..3611c8d57e988 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request) override; + + future> + CreateConversationDataset( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request) override; + + future> + DeleteConversationDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportConversationData( google::cloud::dialogflow::v2::ImportConversationDataRequest const& request) override; + StatusOr ImportConversationData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request) override; + + future> + ImportConversationData( + google::cloud::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..0daf57ded94b0 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,33 @@ ConversationDatasetsTracingConnection::CreateConversationDataset( child_->CreateConversationDataset(request)); } +StatusOr +ConversationDatasetsTracingConnection::CreateConversationDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationDatasetsTracingConnection::CreateConversationDataset( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ConversationDatasetsTracingConnection::GetConversationDataset( google::cloud::dialogflow::v2::GetConversationDatasetRequest const& @@ -81,6 +108,34 @@ ConversationDatasetsTracingConnection::DeleteConversationDataset( child_->DeleteConversationDataset(request)); } +StatusOr +ConversationDatasetsTracingConnection::DeleteConversationDataset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationDatasetsTracingConnection::DeleteConversationDataset( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ConversationDatasetsTracingConnection::ImportConversationData( @@ -93,6 +148,32 @@ ConversationDatasetsTracingConnection::ImportConversationData( child_->ImportConversationData(request)); } +StatusOr +ConversationDatasetsTracingConnection::ImportConversationData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationDatasetsTracingConnection::ImportConversationData( + google::cloud::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( + google::cloud::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..d11b025fed6ad 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request) override; + + future> + CreateConversationDataset( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request) override; + + future> + DeleteConversationDataset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportConversationData( google::cloud::dialogflow::v2::ImportConversationDataRequest const& request) override; + StatusOr ImportConversationData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request) override; + + future> + ImportConversationData( + google::cloud::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..66cb969b15c84 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,63 @@ ConversationModelsConnectionImpl::CreateConversationModel( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::CreateConversationModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +259,66 @@ ConversationModelsConnectionImpl::DeleteConversationModel( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::DeleteConversationModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +362,66 @@ ConversationModelsConnectionImpl::DeployConversationModel( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::DeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +466,67 @@ ConversationModelsConnectionImpl::UndeployConversationModel( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::UndeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +624,64 @@ ConversationModelsConnectionImpl::CreateConversationModelEvaluation( polling_policy(*current), __func__); } +StatusOr +ConversationModelsConnectionImpl::CreateConversationModelEvaluation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..258c0182dd86c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request) override; + + future> + CreateConversationModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request) override; + + future> + DeleteConversationModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployConversationModel( google::cloud::dialogflow::v2::DeployConversationModelRequest const& request) override; + StatusOr DeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request) override; + + future> + DeployConversationModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployConversationModel( google::cloud::dialogflow::v2::UndeployConversationModelRequest const& request) override; + StatusOr UndeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request) override; + + future> + UndeployConversationModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request) override; + + future> + CreateConversationModelEvaluation( + google::cloud::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..c591fd632939e 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,31 @@ ConversationModelsTracingConnection::CreateConversationModel( child_->CreateConversationModel(request)); } +StatusOr +ConversationModelsTracingConnection::CreateConversationModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationModelsTracingConnection::CreateConversationModel( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ConversationModelsTracingConnection::GetConversationModel( google::cloud::dialogflow::v2::GetConversationModelRequest const& request) { @@ -77,6 +102,32 @@ ConversationModelsTracingConnection::DeleteConversationModel( child_->DeleteConversationModel(request)); } +StatusOr +ConversationModelsTracingConnection::DeleteConversationModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationModelsTracingConnection::DeleteConversationModel( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ConversationModelsTracingConnection::DeployConversationModel( @@ -89,6 +140,32 @@ ConversationModelsTracingConnection::DeployConversationModel( child_->DeployConversationModel(request)); } +StatusOr +ConversationModelsTracingConnection::DeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationModelsTracingConnection::DeployConversationModel( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ConversationModelsTracingConnection::UndeployConversationModel( @@ -101,6 +178,32 @@ ConversationModelsTracingConnection::UndeployConversationModel( child_->UndeployConversationModel(request)); } +StatusOr +ConversationModelsTracingConnection::UndeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationModelsTracingConnection::UndeployConversationModel( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ConversationModelsTracingConnection::GetConversationModelEvaluation( google::cloud::dialogflow::v2::GetConversationModelEvaluationRequest const& @@ -139,6 +242,33 @@ ConversationModelsTracingConnection::CreateConversationModelEvaluation( child_->CreateConversationModelEvaluation(request)); } +StatusOr +ConversationModelsTracingConnection::CreateConversationModelEvaluation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationModelsTracingConnection::CreateConversationModelEvaluation( + google::cloud::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( + google::cloud::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..a3707f171668e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request) override; + + future> + CreateConversationModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request) override; + + future> + DeleteConversationModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeployConversationModel( google::cloud::dialogflow::v2::DeployConversationModelRequest const& request) override; + StatusOr DeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request) override; + + future> + DeployConversationModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeployConversationModel( google::cloud::dialogflow::v2::UndeployConversationModelRequest const& request) override; + StatusOr UndeployConversationModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request) override; + + future> + UndeployConversationModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request) override; + + future> + CreateConversationModelEvaluation( + google::cloud::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..01e8e4eb9deb8 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,62 @@ ConversationProfilesConnectionImpl::SetSuggestionFeatureConfig( polling_policy(*current), __func__); } +StatusOr +ConversationProfilesConnectionImpl::SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +306,62 @@ ConversationProfilesConnectionImpl::ClearSuggestionFeatureConfig( polling_policy(*current), __func__); } +StatusOr +ConversationProfilesConnectionImpl::ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..f14e72dbcb213 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request) override; + + future> + SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& request) override; + StatusOr ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request) override; + + future> + ClearSuggestionFeatureConfig( + google::cloud::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..64d34db6d4628 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,33 @@ ConversationProfilesTracingConnection::SetSuggestionFeatureConfig( child_->SetSuggestionFeatureConfig(request)); } +StatusOr +ConversationProfilesTracingConnection::SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationProfilesTracingConnection::SetSuggestionFeatureConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ConversationProfilesTracingConnection::ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& @@ -112,6 +139,33 @@ ConversationProfilesTracingConnection::ClearSuggestionFeatureConfig( child_->ClearSuggestionFeatureConfig(request)); } +StatusOr +ConversationProfilesTracingConnection::ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConversationProfilesTracingConnection::ClearSuggestionFeatureConfig( + google::cloud::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( + google::cloud::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..11e812dcf459e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request) override; + + future> + SetSuggestionFeatureConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ClearSuggestionFeatureConfig( google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& request) override; + StatusOr ClearSuggestionFeatureConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request) override; + + future> + ClearSuggestionFeatureConfig( + google::cloud::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..f561756ac395f 100644 --- a/google/cloud/dialogflow_es/internal/documents_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/documents_connection_impl.cc @@ -151,6 +151,60 @@ DocumentsConnectionImpl::CreateDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::CreateDocument( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +245,61 @@ DocumentsConnectionImpl::ImportDocuments( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +339,61 @@ DocumentsConnectionImpl::DeleteDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::DeleteDocument( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +433,60 @@ DocumentsConnectionImpl::UpdateDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::UpdateDocument( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +526,60 @@ DocumentsConnectionImpl::ReloadDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::ReloadDocument( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +619,60 @@ DocumentsConnectionImpl::ExportDocument( polling_policy(*current), __func__); } +StatusOr +DocumentsConnectionImpl::ExportDocument( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..160a10e1401c1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request) + override; + + future> CreateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportDocuments(google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) override; + StatusOr ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) + override; + + future> + ImportDocuments(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDocument(google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) override; + StatusOr DeleteDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) + override; + + future> + DeleteDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) override; + StatusOr UpdateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) + override; + + future> UpdateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) override; + StatusOr ReloadDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) + override; + + future> ReloadDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request) override; + StatusOr ExportDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request) + override; + + future> ExportDocument( + google::cloud::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..23694f688a594 100644 --- a/google/cloud/dialogflow_es/internal/documents_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/documents_tracing_connection.cc @@ -62,6 +62,30 @@ DocumentsTracingConnection::CreateDocument( return internal::EndSpan(std::move(span), child_->CreateDocument(request)); } +StatusOr +DocumentsTracingConnection::CreateDocument( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::CreateDocument( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::ImportDocuments( google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) { @@ -71,6 +95,30 @@ DocumentsTracingConnection::ImportDocuments( return internal::EndSpan(std::move(span), child_->ImportDocuments(request)); } +StatusOr +DocumentsTracingConnection::ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::ImportDocuments( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::DeleteDocument( google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) { @@ -80,6 +128,30 @@ DocumentsTracingConnection::DeleteDocument( return internal::EndSpan(std::move(span), child_->DeleteDocument(request)); } +StatusOr +DocumentsTracingConnection::DeleteDocument( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::DeleteDocument( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) { @@ -89,6 +161,30 @@ DocumentsTracingConnection::UpdateDocument( return internal::EndSpan(std::move(span), child_->UpdateDocument(request)); } +StatusOr +DocumentsTracingConnection::UpdateDocument( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::UpdateDocument( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) { @@ -98,6 +194,30 @@ DocumentsTracingConnection::ReloadDocument( return internal::EndSpan(std::move(span), child_->ReloadDocument(request)); } +StatusOr +DocumentsTracingConnection::ReloadDocument( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::ReloadDocument( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentsTracingConnection::ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request) { @@ -107,6 +227,30 @@ DocumentsTracingConnection::ExportDocument( return internal::EndSpan(std::move(span), child_->ExportDocument(request)); } +StatusOr +DocumentsTracingConnection::ExportDocument( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentsTracingConnection::ExportDocument( + google::cloud::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(google::cloud::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..4a289f5c7f717 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request) + override; + + future> CreateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportDocuments(google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) override; + StatusOr ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request) + override; + + future> + ImportDocuments(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDocument(google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) override; + StatusOr DeleteDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request) + override; + + future> + DeleteDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateDocument( google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) override; + StatusOr UpdateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request) + override; + + future> UpdateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReloadDocument( google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) override; + StatusOr ReloadDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request) + override; + + future> ReloadDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportDocument( google::cloud::dialogflow::v2::ExportDocumentRequest const& request) override; + StatusOr ExportDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request) + override; + + future> ExportDocument( + google::cloud::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..b42b73fe4d867 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,60 @@ EntityTypesConnectionImpl::BatchUpdateEntityTypes( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchUpdateEntityTypes( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +293,59 @@ EntityTypesConnectionImpl::BatchDeleteEntityTypes( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +386,58 @@ EntityTypesConnectionImpl::BatchCreateEntities( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +478,58 @@ EntityTypesConnectionImpl::BatchUpdateEntities( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +570,58 @@ EntityTypesConnectionImpl::BatchDeleteEntities( polling_policy(*current), __func__); } +StatusOr +EntityTypesConnectionImpl::BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..71c18c31bde00 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request) override; + + future< + StatusOr> + BatchUpdateEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request) override; + StatusOr BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request) override; + + future> BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) override; + StatusOr BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) + override; + + future> BatchCreateEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) override; + StatusOr BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) + override; + + future> BatchUpdateEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) override; + StatusOr BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) + override; + + future> BatchDeleteEntities( + google::cloud::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..4ec53dc196453 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,31 @@ EntityTypesTracingConnection::BatchUpdateEntityTypes( child_->BatchUpdateEntityTypes(request)); } +StatusOr +EntityTypesTracingConnection::BatchUpdateEntityTypes( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchUpdateEntityTypes( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& @@ -102,6 +127,31 @@ EntityTypesTracingConnection::BatchDeleteEntityTypes( child_->BatchDeleteEntityTypes(request)); } +StatusOr +EntityTypesTracingConnection::BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchDeleteEntityTypes( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) { @@ -112,6 +162,30 @@ EntityTypesTracingConnection::BatchCreateEntities( child_->BatchCreateEntities(request)); } +StatusOr +EntityTypesTracingConnection::BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchCreateEntities( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) { @@ -122,6 +196,30 @@ EntityTypesTracingConnection::BatchUpdateEntities( child_->BatchUpdateEntities(request)); } +StatusOr +EntityTypesTracingConnection::BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchUpdateEntities( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EntityTypesTracingConnection::BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) { @@ -132,6 +230,30 @@ EntityTypesTracingConnection::BatchDeleteEntities( child_->BatchDeleteEntities(request)); } +StatusOr +EntityTypesTracingConnection::BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EntityTypesTracingConnection::BatchDeleteEntities( + google::cloud::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(google::cloud::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..b3b67c85030fe 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request) override; + + future< + StatusOr> + BatchUpdateEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteEntityTypes( google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request) override; + StatusOr BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request) override; + + future> BatchDeleteEntityTypes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateEntities( google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) override; + StatusOr BatchCreateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request) + override; + + future> BatchCreateEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchUpdateEntities( google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) override; + StatusOr BatchUpdateEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request) + override; + + future> BatchUpdateEntities( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteEntities( google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) override; + StatusOr BatchDeleteEntities( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request) + override; + + future> BatchDeleteEntities( + google::cloud::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..221cbaa43a72b 100644 --- a/google/cloud/dialogflow_es/internal/intents_connection_impl.cc +++ b/google/cloud/dialogflow_es/internal/intents_connection_impl.cc @@ -194,6 +194,59 @@ IntentsConnectionImpl::BatchUpdateIntents( polling_policy(*current), __func__); } +StatusOr +IntentsConnectionImpl::BatchUpdateIntents( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +287,58 @@ IntentsConnectionImpl::BatchDeleteIntents( polling_policy(*current), __func__); } +StatusOr +IntentsConnectionImpl::BatchDeleteIntents( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..89ba0bc47d4cd 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request) + override; + + future> + BatchUpdateIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) override; + StatusOr BatchDeleteIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) + override; + + future> BatchDeleteIntents( + google::cloud::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..4d4755c7a19ae 100644 --- a/google/cloud/dialogflow_es/internal/intents_tracing_connection.cc +++ b/google/cloud/dialogflow_es/internal/intents_tracing_connection.cc @@ -88,6 +88,30 @@ IntentsTracingConnection::BatchUpdateIntents( child_->BatchUpdateIntents(request)); } +StatusOr +IntentsTracingConnection::BatchUpdateIntents( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IntentsTracingConnection::BatchUpdateIntents( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> IntentsTracingConnection::BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) { @@ -98,6 +122,30 @@ IntentsTracingConnection::BatchDeleteIntents( child_->BatchDeleteIntents(request)); } +StatusOr +IntentsTracingConnection::BatchDeleteIntents( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IntentsTracingConnection::BatchDeleteIntents( + google::cloud::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(google::cloud::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..92e802f3e4844 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request) + override; + + future> + BatchUpdateIntents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchDeleteIntents( google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) override; + StatusOr BatchDeleteIntents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request) + override; + + future> BatchDeleteIntents( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/dialogflow_es/knowledge_bases_client.h b/google/cloud/dialogflow_es/knowledge_bases_client.h index 56cad49318a79..fd984695b5f4c 100644 --- a/google/cloud/dialogflow_es/knowledge_bases_client.h +++ b/google/cloud/dialogflow_es/knowledge_bases_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_KNOWLEDGE_BASES_CLIENT_H #include "google/cloud/dialogflow_es/knowledge_bases_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..253e04d8f2ebd 100644 --- a/google/cloud/dialogflow_es/mocks/mock_agents_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_agents_connection.h @@ -67,22 +67,67 @@ class MockAgentsConnection : public dialogflow_es::AgentsConnection { (google::cloud::dialogflow::v2::TrainAgentRequest const& request), (override)); + MOCK_METHOD(StatusOr, TrainAgent, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::TrainAgentRequest const& request), + (override)); + + MOCK_METHOD(future>, TrainAgent, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportAgent, (google::cloud::dialogflow::v2::ExportAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportAgent, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportAgentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ExportAgent, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportAgent, (google::cloud::dialogflow::v2::ImportAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportAgent, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportAgentRequest const& request), + (override)); + + MOCK_METHOD(future>, ImportAgent, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreAgent, (google::cloud::dialogflow::v2::RestoreAgentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreAgent, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::RestoreAgentRequest const& request), + (override)); + + MOCK_METHOD(future>, RestoreAgent, + (google::cloud::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..64e9e60c50c91 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,20 @@ class MockConversationDatasetsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateConversationDataset, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationDatasetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateConversationDataset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetConversationDataset, @@ -75,6 +89,20 @@ class MockConversationDatasetsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteConversationDataset, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationDatasetRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteConversationDataset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -82,6 +110,20 @@ class MockConversationDatasetsConnection (google::cloud::dialogflow::v2::ImportConversationDataRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportConversationData, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportConversationDataRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ImportConversationData, + (google::cloud::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..e0c253d2176cc 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,20 @@ class MockConversationModelsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateConversationModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateConversationModelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateConversationModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetConversationModel, (google::cloud::dialogflow::v2::GetConversationModelRequest const& @@ -74,6 +88,20 @@ class MockConversationModelsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteConversationModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteConversationModelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteConversationModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -82,6 +110,20 @@ class MockConversationModelsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeployConversationModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeployConversationModelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeployConversationModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -90,6 +132,20 @@ class MockConversationModelsConnection request), (override)); + MOCK_METHOD( + StatusOr, UndeployConversationModel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UndeployConversationModelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeployConversationModel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetConversationModelEvaluation, @@ -111,6 +167,21 @@ class MockConversationModelsConnection (google::cloud::dialogflow::v2:: CreateConversationModelEvaluationRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + CreateConversationModelEvaluation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2:: + CreateConversationModelEvaluationRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateConversationModelEvaluation, + (google::cloud::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..e716fa602496e 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,40 @@ class MockConversationProfilesConnection request), (override)); + MOCK_METHOD( + StatusOr, SetSuggestionFeatureConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::SetSuggestionFeatureConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + SetSuggestionFeatureConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ClearSuggestionFeatureConfig, (google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ClearSuggestionFeatureConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ClearSuggestionFeatureConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ClearSuggestionFeatureConfig, + (google::cloud::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..016eae2b751f3 100644 --- a/google/cloud/dialogflow_es/mocks/mock_documents_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_documents_connection.h @@ -61,12 +61,37 @@ class MockDocumentsConnection : public dialogflow_es::DocumentsConnection { (google::cloud::dialogflow::v2::CreateDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateDocument, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::CreateDocumentRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateDocument, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportDocuments, (google::cloud::dialogflow::v2::ImportDocumentsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportDocuments, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ImportDocumentsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportDocuments, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -74,20 +99,70 @@ class MockDocumentsConnection : public dialogflow_es::DocumentsConnection { (google::cloud::dialogflow::v2::DeleteDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteDocument, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::DeleteDocumentRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteDocument, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateDocument, (google::cloud::dialogflow::v2::UpdateDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateDocument, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::UpdateDocumentRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateDocument, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReloadDocument, (google::cloud::dialogflow::v2::ReloadDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReloadDocument, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ReloadDocumentRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReloadDocument, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportDocument, (google::cloud::dialogflow::v2::ExportDocumentRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ExportDocument, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::ExportDocumentRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportDocument, + (google::cloud::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..761ebcdc58240 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,87 @@ class MockEntityTypesConnection : public dialogflow_es::EntityTypesConnection { request), (override)); + MOCK_METHOD( + StatusOr, BatchUpdateEntityTypes, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntityTypesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchUpdateEntityTypes, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, BatchDeleteEntityTypes, (google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchDeleteEntityTypes, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntityTypesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BatchDeleteEntityTypes, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, BatchCreateEntities, (google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& request), (override)); + MOCK_METHOD(StatusOr, BatchCreateEntities, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchCreateEntitiesRequest const& + request), + (override)); + + MOCK_METHOD(future>, BatchCreateEntities, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, BatchUpdateEntities, (google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& request), (override)); + MOCK_METHOD(StatusOr, BatchUpdateEntities, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateEntitiesRequest const& + request), + (override)); + + MOCK_METHOD(future>, BatchUpdateEntities, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, BatchDeleteEntities, (google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& request), (override)); + + MOCK_METHOD(StatusOr, BatchDeleteEntities, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteEntitiesRequest const& + request), + (override)); + + MOCK_METHOD(future>, BatchDeleteEntities, + (google::cloud::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..033ec3f5c871d 100644 --- a/google/cloud/dialogflow_es/mocks/mock_intents_connection.h +++ b/google/cloud/dialogflow_es/mocks/mock_intents_connection.h @@ -76,10 +76,35 @@ class MockIntentsConnection : public dialogflow_es::IntentsConnection { (google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchUpdateIntents, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchUpdateIntentsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + BatchUpdateIntents, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, BatchDeleteIntents, (google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, BatchDeleteIntents, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::dialogflow::v2::BatchDeleteIntentsRequest const& request), + (override)); + + MOCK_METHOD(future>, BatchDeleteIntents, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/dialogflow_es/participants_client.h b/google/cloud/dialogflow_es/participants_client.h index 70e0baab1e6d0..ca3c0311b8ef9 100644 --- a/google/cloud/dialogflow_es/participants_client.h +++ b/google/cloud/dialogflow_es/participants_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_PARTICIPANTS_CLIENT_H #include "google/cloud/dialogflow_es/participants_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/dialogflow_es/session_entity_types_client.h index 3aa157f775a55..f8ff15142d0b6 100644 --- a/google/cloud/dialogflow_es/session_entity_types_client.h +++ b/google/cloud/dialogflow_es/session_entity_types_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_SESSION_ENTITY_TYPES_CLIENT_H #include "google/cloud/dialogflow_es/session_entity_types_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/dialogflow_es/sessions_client.h index 7583c131f30dc..d428f1f16b85d 100644 --- a/google/cloud/dialogflow_es/sessions_client.h +++ b/google/cloud/dialogflow_es/sessions_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_SESSIONS_CLIENT_H #include "google/cloud/dialogflow_es/sessions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/dialogflow_es/versions_client.h index c7834f11b878c..e713041d1128c 100644 --- a/google/cloud/dialogflow_es/versions_client.h +++ b/google/cloud/dialogflow_es/versions_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DIALOGFLOW_ES_VERSIONS_CLIENT_H #include "google/cloud/dialogflow_es/versions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/discoveryengine/v1/completion_client.cc index 3ec893d124c4d..c800546a275d0 100644 --- a/google/cloud/discoveryengine/v1/completion_client.cc +++ b/google/cloud/discoveryengine/v1/completion_client.cc @@ -50,6 +50,27 @@ CompletionServiceClient::ImportSuggestionDenyListEntries( return connection_->ImportSuggestionDenyListEntries(request); } +StatusOr +CompletionServiceClient::ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CompletionServiceClient::ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag{}, operation); +} + future> CompletionServiceClient::PurgeSuggestionDenyListEntries( @@ -60,6 +81,27 @@ CompletionServiceClient::PurgeSuggestionDenyListEntries( return connection_->PurgeSuggestionDenyListEntries(request); } +StatusOr +CompletionServiceClient::PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CompletionServiceClient::PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1 } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/completion_client.h b/google/cloud/discoveryengine/v1/completion_client.h index d8405aa88bfd4..e39f84bed9867 100644 --- a/google/cloud/discoveryengine/v1/completion_client.h +++ b/google/cloud/discoveryengine/v1/completion_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_COMPLETION_CLIENT_H #include "google/cloud/discoveryengine/v1/completion_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -163,6 +165,18 @@ class CompletionServiceClient { ImportSuggestionDenyListEntriesRequest const& request, Options opts = {}); + StatusOr ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request, + Options opts = {}); + + future> + ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Permanently deletes all @@ -207,6 +221,18 @@ class CompletionServiceClient { PurgeSuggestionDenyListEntriesRequest const& request, Options opts = {}); + StatusOr PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request, + Options opts = {}); + + future> + PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/discoveryengine/v1/control_client.h index e644019a7bc6b..7f9900373c6de 100644 --- a/google/cloud/discoveryengine/v1/control_client.h +++ b/google/cloud/discoveryengine/v1/control_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_CONTROL_CLIENT_H #include "google/cloud/discoveryengine/v1/control_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/discoveryengine/v1/conversational_search_client.h index 6d15084e7b19e..76937793908f7 100644 --- a/google/cloud/discoveryengine/v1/conversational_search_client.h +++ b/google/cloud/discoveryengine/v1/conversational_search_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_CONVERSATIONAL_SEARCH_CLIENT_H #include "google/cloud/discoveryengine/v1/conversational_search_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/discoveryengine/v1/data_store_client.cc index 52b37aed918f4..86419a0fd5513 100644 --- a/google/cloud/discoveryengine/v1/data_store_client.cc +++ b/google/cloud/discoveryengine/v1/data_store_client.cc @@ -45,6 +45,21 @@ DataStoreServiceClient::CreateDataStore( return connection_->CreateDataStore(request); } +StatusOr +DataStoreServiceClient::CreateDataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::discoveryengine::v1::DataStore const& data_store, + std::string const& data_store_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::CreateDataStoreRequest request; + request.set_parent(parent); + *request.mutable_data_store() = data_store; + request.set_data_store_id(data_store_id); + return connection_->CreateDataStore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataStoreServiceClient::CreateDataStore( google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request, @@ -53,6 +68,25 @@ DataStoreServiceClient::CreateDataStore( return connection_->CreateDataStore(request); } +StatusOr +DataStoreServiceClient::CreateDataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataStore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataStoreServiceClient::CreateDataStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDataStore(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DataStoreServiceClient::GetDataStore(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -94,6 +128,17 @@ DataStoreServiceClient::DeleteDataStore(std::string const& name, Options opts) { return connection_->DeleteDataStore(request); } +StatusOr +DataStoreServiceClient::DeleteDataStore(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::DeleteDataStoreRequest request; + request.set_name(name); + return connection_->DeleteDataStore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataStoreServiceClient::DeleteDataStore( google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request, @@ -102,6 +147,25 @@ DataStoreServiceClient::DeleteDataStore( return connection_->DeleteDataStore(request); } +StatusOr +DataStoreServiceClient::DeleteDataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataStore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataStoreServiceClient::DeleteDataStore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDataStore(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DataStoreServiceClient::UpdateDataStore( google::cloud::discoveryengine::v1::DataStore const& data_store, diff --git a/google/cloud/discoveryengine/v1/data_store_client.h b/google/cloud/discoveryengine/v1/data_store_client.h index 655dffd2bc544..b31020309f444 100644 --- a/google/cloud/discoveryengine/v1/data_store_client.h +++ b/google/cloud/discoveryengine/v1/data_store_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_DATA_STORE_CLIENT_H #include "google/cloud/discoveryengine/v1/data_store_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -143,6 +145,12 @@ class DataStoreServiceClient { google::cloud::discoveryengine::v1::DataStore const& data_store, std::string const& data_store_id, Options opts = {}); + StatusOr CreateDataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::discoveryengine::v1::DataStore const& data_store, + std::string const& data_store_id, Options opts = {}); + // clang-format off /// /// Creates a [DataStore][google.cloud.discoveryengine.v1.DataStore]. @@ -188,6 +196,16 @@ class DataStoreServiceClient { google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request, Options opts = {}); + StatusOr CreateDataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request, + Options opts = {}); + + future> + CreateDataStore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a [DataStore][google.cloud.discoveryengine.v1.DataStore]. @@ -377,6 +395,10 @@ class DataStoreServiceClient { future> DeleteDataStore(std::string const& name, Options opts = {}); + StatusOr DeleteDataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a [DataStore][google.cloud.discoveryengine.v1.DataStore]. @@ -417,6 +439,16 @@ class DataStoreServiceClient { google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request, Options opts = {}); + StatusOr DeleteDataStore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request, + Options opts = {}); + + future> + DeleteDataStore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a [DataStore][google.cloud.discoveryengine.v1.DataStore] 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_client.cc b/google/cloud/discoveryengine/v1/document_client.cc index a674eba00af68..b173117cdcf51 100644 --- a/google/cloud/discoveryengine/v1/document_client.cc +++ b/google/cloud/discoveryengine/v1/document_client.cc @@ -127,6 +127,24 @@ DocumentServiceClient::ImportDocuments( return connection_->ImportDocuments(request); } +StatusOr DocumentServiceClient::ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportDocuments(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentServiceClient::ImportDocuments( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportDocuments(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentServiceClient::PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request, @@ -135,6 +153,24 @@ DocumentServiceClient::PurgeDocuments( return connection_->PurgeDocuments(request); } +StatusOr DocumentServiceClient::PurgeDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeDocuments(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentServiceClient::PurgeDocuments( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeDocuments(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1 } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/document_client.h b/google/cloud/discoveryengine/v1/document_client.h index d2fbfbce4f087..ad0b3e9b59185 100644 --- a/google/cloud/discoveryengine/v1/document_client.h +++ b/google/cloud/discoveryengine/v1/document_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_DOCUMENT_CLIENT_H #include "google/cloud/discoveryengine/v1/document_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -492,6 +494,16 @@ class DocumentServiceClient { google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request, Options opts = {}); + StatusOr ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request, + Options opts = {}); + + future> + ImportDocuments(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Permanently deletes all selected @@ -550,6 +562,16 @@ class DocumentServiceClient { google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request, Options opts = {}); + StatusOr PurgeDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request, + Options opts = {}); + + future> + PurgeDocuments(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/discoveryengine/v1/engine_client.cc index 3a617804bf15d..5e7affafc5b3c 100644 --- a/google/cloud/discoveryengine/v1/engine_client.cc +++ b/google/cloud/discoveryengine/v1/engine_client.cc @@ -45,6 +45,20 @@ EngineServiceClient::CreateEngine( return connection_->CreateEngine(request); } +StatusOr EngineServiceClient::CreateEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::discoveryengine::v1::Engine const& engine, + std::string const& engine_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::CreateEngineRequest request; + request.set_parent(parent); + *request.mutable_engine() = engine; + request.set_engine_id(engine_id); + return connection_->CreateEngine(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EngineServiceClient::CreateEngine( google::cloud::discoveryengine::v1::CreateEngineRequest const& request, @@ -53,6 +67,23 @@ EngineServiceClient::CreateEngine( return connection_->CreateEngine(request); } +StatusOr EngineServiceClient::CreateEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEngine(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EngineServiceClient::CreateEngine( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEngine(google::cloud::ExperimentalTag{}, operation); +} + future> EngineServiceClient::DeleteEngine(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -61,6 +92,16 @@ EngineServiceClient::DeleteEngine(std::string const& name, Options opts) { return connection_->DeleteEngine(request); } +StatusOr EngineServiceClient::DeleteEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::DeleteEngineRequest request; + request.set_name(name); + return connection_->DeleteEngine(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EngineServiceClient::DeleteEngine( google::cloud::discoveryengine::v1::DeleteEngineRequest const& request, @@ -69,6 +110,23 @@ EngineServiceClient::DeleteEngine( return connection_->DeleteEngine(request); } +StatusOr EngineServiceClient::DeleteEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEngine(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EngineServiceClient::DeleteEngine( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEngine(google::cloud::ExperimentalTag{}, operation); +} + StatusOr EngineServiceClient::UpdateEngine( google::cloud::discoveryengine::v1::Engine const& engine, diff --git a/google/cloud/discoveryengine/v1/engine_client.h b/google/cloud/discoveryengine/v1/engine_client.h index 6fc38a49a9072..5c5969a60ba95 100644 --- a/google/cloud/discoveryengine/v1/engine_client.h +++ b/google/cloud/discoveryengine/v1/engine_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_ENGINE_CLIENT_H #include "google/cloud/discoveryengine/v1/engine_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -134,6 +136,12 @@ class EngineServiceClient { google::cloud::discoveryengine::v1::Engine const& engine, std::string const& engine_id, Options opts = {}); + StatusOr CreateEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::discoveryengine::v1::Engine const& engine, + std::string const& engine_id, Options opts = {}); + // clang-format off /// /// Creates a [Engine][google.cloud.discoveryengine.v1.Engine]. @@ -172,6 +180,15 @@ class EngineServiceClient { google::cloud::discoveryengine::v1::CreateEngineRequest const& request, Options opts = {}); + StatusOr CreateEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request, + Options opts = {}); + + future> CreateEngine( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a [Engine][google.cloud.discoveryengine.v1.Engine]. @@ -214,6 +231,10 @@ class EngineServiceClient { future> DeleteEngine(std::string const& name, Options opts = {}); + StatusOr DeleteEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a [Engine][google.cloud.discoveryengine.v1.Engine]. @@ -254,6 +275,16 @@ class EngineServiceClient { google::cloud::discoveryengine::v1::DeleteEngineRequest const& request, Options opts = {}); + StatusOr DeleteEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request, + Options opts = {}); + + future> + DeleteEngine(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an [Engine][google.cloud.discoveryengine.v1.Engine] 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_client.h b/google/cloud/discoveryengine/v1/grounded_generation_client.h index ecb0a4f9881de..04c71e470ba3e 100644 --- a/google/cloud/discoveryengine/v1/grounded_generation_client.h +++ b/google/cloud/discoveryengine/v1/grounded_generation_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_GROUNDED_GENERATION_CLIENT_H #include "google/cloud/discoveryengine/v1/grounded_generation_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..b39a4a4b3ae1a 100644 --- a/google/cloud/discoveryengine/v1/internal/completion_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/completion_connection_impl.cc @@ -130,6 +130,67 @@ CompletionServiceConnectionImpl::ImportSuggestionDenyListEntries( polling_policy(*current), __func__); } +StatusOr +CompletionServiceConnectionImpl::ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +235,66 @@ CompletionServiceConnectionImpl::PurgeSuggestionDenyListEntries( polling_policy(*current), __func__); } +StatusOr +CompletionServiceConnectionImpl::PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..ced92a3c83bc8 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request) override; + + future> + ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeSuggestionDenyListEntries( google::cloud::discoveryengine::v1:: PurgeSuggestionDenyListEntriesRequest const& request) override; + StatusOr PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request) override; + + future> + PurgeSuggestionDenyListEntries( + google::cloud::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..3e673a060b108 100644 --- a/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/completion_tracing_connection.cc @@ -54,6 +54,34 @@ CompletionServiceTracingConnection::ImportSuggestionDenyListEntries( child_->ImportSuggestionDenyListEntries(request)); } +StatusOr +CompletionServiceTracingConnection::ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CompletionServiceTracingConnection::ImportSuggestionDenyListEntries( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CompletionServiceTracingConnection::PurgeSuggestionDenyListEntries( @@ -67,6 +95,34 @@ CompletionServiceTracingConnection::PurgeSuggestionDenyListEntries( child_->PurgeSuggestionDenyListEntries(request)); } +StatusOr +CompletionServiceTracingConnection::PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CompletionServiceTracingConnection::PurgeSuggestionDenyListEntries( + google::cloud::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( + google::cloud::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..549d523c7abff 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request) override; + + future> + ImportSuggestionDenyListEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeSuggestionDenyListEntries( google::cloud::discoveryengine::v1:: PurgeSuggestionDenyListEntriesRequest const& request) override; + StatusOr PurgeSuggestionDenyListEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request) override; + + future> + PurgeSuggestionDenyListEntries( + google::cloud::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..4ae47276b74f2 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,61 @@ DataStoreServiceConnectionImpl::CreateDataStore( polling_policy(*current), __func__); } +StatusOr +DataStoreServiceConnectionImpl::CreateDataStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +253,61 @@ DataStoreServiceConnectionImpl::DeleteDataStore( polling_policy(*current), __func__); } +StatusOr +DataStoreServiceConnectionImpl::DeleteDataStore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..cc58cfd942c1d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request) + override; + + future> + CreateDataStore(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request) + override; + + future> + DeleteDataStore(google::cloud::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..e2315cdd800eb 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,30 @@ DataStoreServiceTracingConnection::CreateDataStore( return internal::EndSpan(std::move(span), child_->CreateDataStore(request)); } +StatusOr +DataStoreServiceTracingConnection::CreateDataStore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataStoreServiceTracingConnection::CreateDataStore( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DataStoreServiceTracingConnection::GetDataStore( google::cloud::discoveryengine::v1::GetDataStoreRequest const& request) { @@ -72,6 +96,30 @@ DataStoreServiceTracingConnection::DeleteDataStore( return internal::EndSpan(std::move(span), child_->DeleteDataStore(request)); } +StatusOr +DataStoreServiceTracingConnection::DeleteDataStore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataStoreServiceTracingConnection::DeleteDataStore( + google::cloud::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(google::cloud::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..7fd8b5f155ff3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& request) + override; + + future> + CreateDataStore(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& request) + override; + + future> + DeleteDataStore(google::cloud::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..5f789f8a37b5a 100644 --- a/google/cloud/discoveryengine/v1/internal/document_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/document_connection_impl.cc @@ -202,6 +202,61 @@ DocumentServiceConnectionImpl::ImportDocuments( polling_policy(*current), __func__); } +StatusOr +DocumentServiceConnectionImpl::ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +297,61 @@ DocumentServiceConnectionImpl::PurgeDocuments( polling_policy(*current), __func__); } +StatusOr +DocumentServiceConnectionImpl::PurgeDocuments( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..af7ba2dbfbf74 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request) + override; + + future> + ImportDocuments(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) override; + StatusOr PurgeDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) + override; + + future> + PurgeDocuments(google::cloud::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..e02c8efe2deb7 100644 --- a/google/cloud/discoveryengine/v1/internal/document_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/document_tracing_connection.cc @@ -89,6 +89,30 @@ DocumentServiceTracingConnection::ImportDocuments( return internal::EndSpan(std::move(span), child_->ImportDocuments(request)); } +StatusOr +DocumentServiceTracingConnection::ImportDocuments( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentServiceTracingConnection::ImportDocuments( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentServiceTracingConnection::PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) { @@ -98,6 +122,30 @@ DocumentServiceTracingConnection::PurgeDocuments( return internal::EndSpan(std::move(span), child_->PurgeDocuments(request)); } +StatusOr +DocumentServiceTracingConnection::PurgeDocuments( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentServiceTracingConnection::PurgeDocuments( + google::cloud::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(google::cloud::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..096e929058530 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& request) + override; + + future> + ImportDocuments(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeDocuments( google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) override; + StatusOr PurgeDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request) + override; + + future> + PurgeDocuments(google::cloud::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..3d7e29d08c14f 100644 --- a/google/cloud/discoveryengine/v1/internal/engine_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/engine_connection_impl.cc @@ -107,6 +107,61 @@ EngineServiceConnectionImpl::CreateEngine( polling_policy(*current), __func__); } +StatusOr +EngineServiceConnectionImpl::CreateEngine( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +202,61 @@ EngineServiceConnectionImpl::DeleteEngine( polling_policy(*current), __func__); } +StatusOr +EngineServiceConnectionImpl::DeleteEngine( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..c55447bbcd2d2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request) + override; + + future> CreateEngine( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEngine(google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) override; + StatusOr DeleteEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) + override; + + future> + DeleteEngine(google::cloud::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..18b0e0e5db53a 100644 --- a/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/engine_tracing_connection.cc @@ -42,6 +42,30 @@ EngineServiceTracingConnection::CreateEngine( return internal::EndSpan(std::move(span), child_->CreateEngine(request)); } +StatusOr +EngineServiceTracingConnection::CreateEngine( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EngineServiceTracingConnection::CreateEngine( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EngineServiceTracingConnection::DeleteEngine( google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) { @@ -51,6 +75,30 @@ EngineServiceTracingConnection::DeleteEngine( return internal::EndSpan(std::move(span), child_->DeleteEngine(request)); } +StatusOr +EngineServiceTracingConnection::DeleteEngine( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EngineServiceTracingConnection::DeleteEngine( + google::cloud::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(google::cloud::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..b6bf680d58ae5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request) + override; + + future> CreateEngine( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEngine(google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) override; + StatusOr DeleteEngine( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request) + override; + + future> + DeleteEngine(google::cloud::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..9d3202b167773 100644 --- a/google/cloud/discoveryengine/v1/internal/project_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/project_connection_impl.cc @@ -108,6 +108,62 @@ ProjectServiceConnectionImpl::ProvisionProject( polling_policy(*current), __func__); } +StatusOr +ProjectServiceConnectionImpl::ProvisionProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..97a73ebdabcef 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request) override; + + future> + ProvisionProject(google::cloud::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..fc94c4ee9cb88 100644 --- a/google/cloud/discoveryengine/v1/internal/project_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/project_tracing_connection.cc @@ -42,6 +42,31 @@ ProjectServiceTracingConnection::ProvisionProject( return internal::EndSpan(std::move(span), child_->ProvisionProject(request)); } +StatusOr +ProjectServiceTracingConnection::ProvisionProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectServiceTracingConnection::ProvisionProject( + google::cloud::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(google::cloud::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..fe1af5cb25c97 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request) override; + + future> + ProvisionProject(google::cloud::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..6304decbc18f7 100644 --- a/google/cloud/discoveryengine/v1/internal/schema_connection_impl.cc +++ b/google/cloud/discoveryengine/v1/internal/schema_connection_impl.cc @@ -156,6 +156,61 @@ SchemaServiceConnectionImpl::CreateSchema( polling_policy(*current), __func__); } +StatusOr +SchemaServiceConnectionImpl::CreateSchema( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +251,61 @@ SchemaServiceConnectionImpl::UpdateSchema( polling_policy(*current), __func__); } +StatusOr +SchemaServiceConnectionImpl::UpdateSchema( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +346,61 @@ SchemaServiceConnectionImpl::DeleteSchema( polling_policy(*current), __func__); } +StatusOr +SchemaServiceConnectionImpl::DeleteSchema( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..379bcd8abd118 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request) + override; + + future> CreateSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) override; + StatusOr UpdateSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) + override; + + future> UpdateSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSchema(google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) override; + StatusOr DeleteSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) + override; + + future> + DeleteSchema(google::cloud::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..994e465dcd601 100644 --- a/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.cc +++ b/google/cloud/discoveryengine/v1/internal/schema_tracing_connection.cc @@ -63,6 +63,30 @@ SchemaServiceTracingConnection::CreateSchema( return internal::EndSpan(std::move(span), child_->CreateSchema(request)); } +StatusOr +SchemaServiceTracingConnection::CreateSchema( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SchemaServiceTracingConnection::CreateSchema( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SchemaServiceTracingConnection::UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) { @@ -72,6 +96,30 @@ SchemaServiceTracingConnection::UpdateSchema( return internal::EndSpan(std::move(span), child_->UpdateSchema(request)); } +StatusOr +SchemaServiceTracingConnection::UpdateSchema( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SchemaServiceTracingConnection::UpdateSchema( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SchemaServiceTracingConnection::DeleteSchema( google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) { @@ -81,6 +129,30 @@ SchemaServiceTracingConnection::DeleteSchema( return internal::EndSpan(std::move(span), child_->DeleteSchema(request)); } +StatusOr +SchemaServiceTracingConnection::DeleteSchema( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SchemaServiceTracingConnection::DeleteSchema( + google::cloud::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(google::cloud::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..89847082024a9 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request) + override; + + future> CreateSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) override; + StatusOr UpdateSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request) + override; + + future> UpdateSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSchema(google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) override; + StatusOr DeleteSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request) + override; + + future> + DeleteSchema(google::cloud::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..326aaeab37f5c 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,62 @@ SiteSearchEngineServiceConnectionImpl::CreateTargetSite( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::CreateTargetSite( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +228,63 @@ SiteSearchEngineServiceConnectionImpl::BatchCreateTargetSites( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::BatchCreateTargetSites( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +341,62 @@ SiteSearchEngineServiceConnectionImpl::UpdateTargetSite( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::UpdateTargetSite( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +438,62 @@ SiteSearchEngineServiceConnectionImpl::DeleteTargetSite( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::DeleteTargetSite( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +570,63 @@ SiteSearchEngineServiceConnectionImpl::EnableAdvancedSiteSearch( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::EnableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +669,64 @@ SiteSearchEngineServiceConnectionImpl::DisableAdvancedSiteSearch( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +767,61 @@ SiteSearchEngineServiceConnectionImpl::RecrawlUris( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::RecrawlUris( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +863,63 @@ SiteSearchEngineServiceConnectionImpl::BatchVerifyTargetSites( polling_policy(*current), __func__); } +StatusOr +SiteSearchEngineServiceConnectionImpl::BatchVerifyTargetSites( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..338478671e9a1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request) override; + + future> + CreateTargetSite(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateTargetSites( google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& request) override; + StatusOr BatchCreateTargetSites( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request) override; + + future> + BatchCreateTargetSites( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request) override; + + future> + UpdateTargetSite(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& request) override; + StatusOr DeleteTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request) override; + + future> + DeleteTargetSite(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request) override; + + future> + EnableAdvancedSiteSearch( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableAdvancedSiteSearch( google::cloud::discoveryengine::v1:: DisableAdvancedSiteSearchRequest const& request) override; + StatusOr DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request) override; + + future> + DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RecrawlUris(google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) override; + StatusOr RecrawlUris( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) + override; + + future> + RecrawlUris(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchVerifyTargetSites( google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& request) override; + StatusOr BatchVerifyTargetSites( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request) override; + + future> + BatchVerifyTargetSites( + google::cloud::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..829c6ab5ec035 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,33 @@ SiteSearchEngineServiceTracingConnection::CreateTargetSite( return internal::EndSpan(std::move(span), child_->CreateTargetSite(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::CreateTargetSite( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::CreateTargetSite( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::BatchCreateTargetSites( @@ -70,6 +97,34 @@ SiteSearchEngineServiceTracingConnection::BatchCreateTargetSites( child_->BatchCreateTargetSites(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::BatchCreateTargetSites( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::BatchCreateTargetSites( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SiteSearchEngineServiceTracingConnection::GetTargetSite( google::cloud::discoveryengine::v1::GetTargetSiteRequest const& request) { @@ -90,6 +145,33 @@ SiteSearchEngineServiceTracingConnection::UpdateTargetSite( return internal::EndSpan(std::move(span), child_->UpdateTargetSite(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::UpdateTargetSite( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::UpdateTargetSite( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& @@ -101,6 +183,33 @@ SiteSearchEngineServiceTracingConnection::DeleteTargetSite( return internal::EndSpan(std::move(span), child_->DeleteTargetSite(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::DeleteTargetSite( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::DeleteTargetSite( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SiteSearchEngineServiceTracingConnection::ListTargetSites( google::cloud::discoveryengine::v1::ListTargetSitesRequest request) { @@ -126,6 +235,34 @@ SiteSearchEngineServiceTracingConnection::EnableAdvancedSiteSearch( child_->EnableAdvancedSiteSearch(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::EnableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::EnableAdvancedSiteSearch( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::DisableAdvancedSiteSearch( @@ -139,6 +276,34 @@ SiteSearchEngineServiceTracingConnection::DisableAdvancedSiteSearch( child_->DisableAdvancedSiteSearch(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::DisableAdvancedSiteSearch( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::RecrawlUris( google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) { @@ -148,6 +313,30 @@ SiteSearchEngineServiceTracingConnection::RecrawlUris( return internal::EndSpan(std::move(span), child_->RecrawlUris(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::RecrawlUris( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::RecrawlUris( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SiteSearchEngineServiceTracingConnection::BatchVerifyTargetSites( @@ -161,6 +350,34 @@ SiteSearchEngineServiceTracingConnection::BatchVerifyTargetSites( child_->BatchVerifyTargetSites(request)); } +StatusOr +SiteSearchEngineServiceTracingConnection::BatchVerifyTargetSites( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SiteSearchEngineServiceTracingConnection::BatchVerifyTargetSites( + google::cloud::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( + google::cloud::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..9637e4bb77e90 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request) override; + + future> + CreateTargetSite(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchCreateTargetSites( google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& request) override; + StatusOr BatchCreateTargetSites( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request) override; + + future> + BatchCreateTargetSites( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request) override; + + future> + UpdateTargetSite(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& request) override; + StatusOr DeleteTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request) override; + + future> + DeleteTargetSite(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request) override; + + future> + EnableAdvancedSiteSearch( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableAdvancedSiteSearch( google::cloud::discoveryengine::v1:: DisableAdvancedSiteSearchRequest const& request) override; + StatusOr DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request) override; + + future> + DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RecrawlUris(google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) override; + StatusOr RecrawlUris( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request) + override; + + future> + RecrawlUris(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> BatchVerifyTargetSites( google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& request) override; + StatusOr BatchVerifyTargetSites( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request) override; + + future> + BatchVerifyTargetSites( + google::cloud::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..aefcb55d75c6b 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,62 @@ UserEventServiceConnectionImpl::ImportUserEvents( polling_policy(*current), __func__); } +StatusOr +UserEventServiceConnectionImpl::ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..e049205be774a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request) override; + + future> + ImportUserEvents(google::cloud::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..3294b8ef8144c 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,31 @@ UserEventServiceTracingConnection::ImportUserEvents( return internal::EndSpan(std::move(span), child_->ImportUserEvents(request)); } +StatusOr +UserEventServiceTracingConnection::ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UserEventServiceTracingConnection::ImportUserEvents( + google::cloud::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(google::cloud::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..a4a05db423479 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request) override; + + future> + ImportUserEvents(google::cloud::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..3792b7abeba59 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + ImportSuggestionDenyListEntriesRequest const& request), + (override)); + + MOCK_METHOD(future>, + ImportSuggestionDenyListEntries, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, PurgeSuggestionDenyListEntries, (google::cloud::discoveryengine::v1:: PurgeSuggestionDenyListEntriesRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + PurgeSuggestionDenyListEntries, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + PurgeSuggestionDenyListEntriesRequest const& request), + (override)); + + MOCK_METHOD(future>, + PurgeSuggestionDenyListEntries, + (google::cloud::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..fb53802e4c3d1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateDataStoreRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateDataStore, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteDataStoreRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteDataStore, + (google::cloud::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..982d3f422c57b 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportDocumentsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ImportDocuments, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -89,6 +102,20 @@ class MockDocumentServiceConnection (google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, PurgeDocuments, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::PurgeDocumentsRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + PurgeDocuments, + (google::cloud::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..d763be5135aa0 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateEngineRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEngine, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -60,6 +72,20 @@ class MockEngineServiceConnection (google::cloud::discoveryengine::v1::DeleteEngineRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEngine, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteEngineRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteEngine, + (google::cloud::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..5ac7773bf7316 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ProvisionProject, + (google::cloud::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..6b3d4f3a18213 100644 --- a/google/cloud/discoveryengine/v1/mocks/mock_schema_connection.h +++ b/google/cloud/discoveryengine/v1/mocks/mock_schema_connection.h @@ -63,18 +63,56 @@ class MockSchemaServiceConnection (google::cloud::discoveryengine::v1::CreateSchemaRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSchema, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSchema, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSchema, (google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSchema, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSchema, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, DeleteSchema, (google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteSchema, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteSchema, + (google::cloud::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..8213e6fd5d5d3 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTargetSite, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -69,6 +82,21 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchCreateTargetSites, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchCreateTargetSites, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetTargetSite, (google::cloud::discoveryengine::v1::GetTargetSiteRequest const& request), @@ -81,6 +109,19 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateTargetSite, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTargetSite, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -89,6 +130,21 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTargetSite, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTargetSite, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTargetSites, @@ -102,6 +158,20 @@ class MockSiteSearchEngineServiceConnection EnableAdvancedSiteSearchRequest const& request), (override)); + MOCK_METHOD(StatusOr, + EnableAdvancedSiteSearch, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + EnableAdvancedSiteSearchRequest const& request), + (override)); + + MOCK_METHOD(future>, + EnableAdvancedSiteSearch, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DisableAdvancedSiteSearch, @@ -109,12 +179,39 @@ class MockSiteSearchEngineServiceConnection DisableAdvancedSiteSearchRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DisableAdvancedSiteSearch, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request), + (override)); + + MOCK_METHOD(future>, + DisableAdvancedSiteSearch, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RecrawlUris, (google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RecrawlUris, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RecrawlUris, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -123,6 +220,21 @@ class MockSiteSearchEngineServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchVerifyTargetSites, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchVerifyTargetSites, + (google::cloud::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..f3afa42d06a15 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,21 @@ class MockUserEventServiceConnection (google::cloud::discoveryengine::v1::ImportUserEventsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportUserEvents, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportUserEvents, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/discoveryengine/v1/project_client.cc b/google/cloud/discoveryengine/v1/project_client.cc index e213109532fcf..aeb6d3678f509 100644 --- a/google/cloud/discoveryengine/v1/project_client.cc +++ b/google/cloud/discoveryengine/v1/project_client.cc @@ -40,6 +40,16 @@ ProjectServiceClient::ProvisionProject(std::string const& name, Options opts) { return connection_->ProvisionProject(request); } +StatusOr ProjectServiceClient::ProvisionProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::ProvisionProjectRequest request; + request.set_name(name); + return connection_->ProvisionProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectServiceClient::ProvisionProject( google::cloud::discoveryengine::v1::ProvisionProjectRequest const& request, @@ -48,6 +58,24 @@ ProjectServiceClient::ProvisionProject( return connection_->ProvisionProject(request); } +StatusOr ProjectServiceClient::ProvisionProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ProvisionProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectServiceClient::ProvisionProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ProvisionProject(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1 } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/project_client.h b/google/cloud/discoveryengine/v1/project_client.h index b6c420713bf23..aa84ba73e174e 100644 --- a/google/cloud/discoveryengine/v1/project_client.h +++ b/google/cloud/discoveryengine/v1/project_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_PROJECT_CLIENT_H #include "google/cloud/discoveryengine/v1/project_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -129,6 +131,10 @@ class ProjectServiceClient { future> ProvisionProject(std::string const& name, Options opts = {}); + StatusOr ProvisionProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Provisions the project resource. During the @@ -174,6 +180,17 @@ class ProjectServiceClient { request, Options opts = {}); + StatusOr ProvisionProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ProvisionProjectRequest const& + request, + Options opts = {}); + + future> + ProvisionProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/discoveryengine/v1/rank_client.h index 17d5890fd4f08..561febcd9640a 100644 --- a/google/cloud/discoveryengine/v1/rank_client.h +++ b/google/cloud/discoveryengine/v1/rank_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_RANK_CLIENT_H #include "google/cloud/discoveryengine/v1/rank_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/discoveryengine/v1/recommendation_client.h index 0088eac37df4f..08106aa5cf58d 100644 --- a/google/cloud/discoveryengine/v1/recommendation_client.h +++ b/google/cloud/discoveryengine/v1/recommendation_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_RECOMMENDATION_CLIENT_H #include "google/cloud/discoveryengine/v1/recommendation_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/discoveryengine/v1/schema_client.cc index 61566a385fe4a..2db48ec728cff 100644 --- a/google/cloud/discoveryengine/v1/schema_client.cc +++ b/google/cloud/discoveryengine/v1/schema_client.cc @@ -77,6 +77,20 @@ SchemaServiceClient::CreateSchema( return connection_->CreateSchema(request); } +StatusOr SchemaServiceClient::CreateSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::discoveryengine::v1::Schema const& schema, + std::string const& schema_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::CreateSchemaRequest request; + request.set_parent(parent); + *request.mutable_schema() = schema; + request.set_schema_id(schema_id); + return connection_->CreateSchema(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SchemaServiceClient::CreateSchema( google::cloud::discoveryengine::v1::CreateSchemaRequest const& request, @@ -85,6 +99,23 @@ SchemaServiceClient::CreateSchema( return connection_->CreateSchema(request); } +StatusOr SchemaServiceClient::CreateSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSchema(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SchemaServiceClient::CreateSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSchema(google::cloud::ExperimentalTag{}, operation); +} + future> SchemaServiceClient::UpdateSchema( google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request, @@ -93,6 +124,23 @@ SchemaServiceClient::UpdateSchema( return connection_->UpdateSchema(request); } +StatusOr SchemaServiceClient::UpdateSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSchema(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SchemaServiceClient::UpdateSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSchema(google::cloud::ExperimentalTag{}, operation); +} + future> SchemaServiceClient::DeleteSchema(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -101,6 +149,16 @@ SchemaServiceClient::DeleteSchema(std::string const& name, Options opts) { return connection_->DeleteSchema(request); } +StatusOr SchemaServiceClient::DeleteSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::DeleteSchemaRequest request; + request.set_name(name); + return connection_->DeleteSchema(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SchemaServiceClient::DeleteSchema( google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request, @@ -109,6 +167,23 @@ SchemaServiceClient::DeleteSchema( return connection_->DeleteSchema(request); } +StatusOr SchemaServiceClient::DeleteSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSchema(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SchemaServiceClient::DeleteSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSchema(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1 } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/schema_client.h b/google/cloud/discoveryengine/v1/schema_client.h index 2ca509b650e45..6ac7e34ab58ac 100644 --- a/google/cloud/discoveryengine/v1/schema_client.h +++ b/google/cloud/discoveryengine/v1/schema_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_SCHEMA_CLIENT_H #include "google/cloud/discoveryengine/v1/schema_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -266,6 +268,12 @@ class SchemaServiceClient { google::cloud::discoveryengine::v1::Schema const& schema, std::string const& schema_id, Options opts = {}); + StatusOr CreateSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::discoveryengine::v1::Schema const& schema, + std::string const& schema_id, Options opts = {}); + // clang-format off /// /// Creates a [Schema][google.cloud.discoveryengine.v1.Schema]. @@ -304,6 +312,15 @@ class SchemaServiceClient { google::cloud::discoveryengine::v1::CreateSchemaRequest const& request, Options opts = {}); + StatusOr CreateSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateSchemaRequest const& request, + Options opts = {}); + + future> CreateSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a [Schema][google.cloud.discoveryengine.v1.Schema]. @@ -342,6 +359,15 @@ class SchemaServiceClient { google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request, Options opts = {}); + StatusOr UpdateSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateSchemaRequest const& request, + Options opts = {}); + + future> UpdateSchema( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a [Schema][google.cloud.discoveryengine.v1.Schema]. @@ -376,6 +402,10 @@ class SchemaServiceClient { future> DeleteSchema(std::string const& name, Options opts = {}); + StatusOr DeleteSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a [Schema][google.cloud.discoveryengine.v1.Schema]. @@ -416,6 +446,16 @@ class SchemaServiceClient { google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request, Options opts = {}); + StatusOr DeleteSchema( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteSchemaRequest const& request, + Options opts = {}); + + future> + DeleteSchema(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/discoveryengine/v1/search_client.h index 0edd940bcb5fe..ec935b0931fa7 100644 --- a/google/cloud/discoveryengine/v1/search_client.h +++ b/google/cloud/discoveryengine/v1/search_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_SEARCH_CLIENT_H #include "google/cloud/discoveryengine/v1/search_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/discoveryengine/v1/site_search_engine_client.cc index 6d5f2ee596b64..2d649d2573356 100644 --- a/google/cloud/discoveryengine/v1/site_search_engine_client.cc +++ b/google/cloud/discoveryengine/v1/site_search_engine_client.cc @@ -62,6 +62,20 @@ SiteSearchEngineServiceClient::CreateTargetSite( return connection_->CreateTargetSite(request); } +StatusOr +SiteSearchEngineServiceClient::CreateTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::discoveryengine::v1::TargetSite const& target_site, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::CreateTargetSiteRequest request; + request.set_parent(parent); + *request.mutable_target_site() = target_site; + return connection_->CreateTargetSite(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SiteSearchEngineServiceClient::CreateTargetSite( google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& request, @@ -70,6 +84,25 @@ SiteSearchEngineServiceClient::CreateTargetSite( return connection_->CreateTargetSite(request); } +StatusOr +SiteSearchEngineServiceClient::CreateTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTargetSite(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SiteSearchEngineServiceClient::CreateTargetSite( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTargetSite(google::cloud::ExperimentalTag{}, + operation); +} + future> SiteSearchEngineServiceClient::BatchCreateTargetSites( @@ -80,6 +113,27 @@ SiteSearchEngineServiceClient::BatchCreateTargetSites( return connection_->BatchCreateTargetSites(request); } +StatusOr +SiteSearchEngineServiceClient::BatchCreateTargetSites( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateTargetSites( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SiteSearchEngineServiceClient::BatchCreateTargetSites( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateTargetSites(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SiteSearchEngineServiceClient::GetTargetSite(std::string const& name, Options opts) { @@ -107,6 +161,18 @@ SiteSearchEngineServiceClient::UpdateTargetSite( return connection_->UpdateTargetSite(request); } +StatusOr +SiteSearchEngineServiceClient::UpdateTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::TargetSite const& target_site, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest request; + *request.mutable_target_site() = target_site; + return connection_->UpdateTargetSite(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SiteSearchEngineServiceClient::UpdateTargetSite( google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& request, @@ -115,6 +181,25 @@ SiteSearchEngineServiceClient::UpdateTargetSite( return connection_->UpdateTargetSite(request); } +StatusOr +SiteSearchEngineServiceClient::UpdateTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTargetSite(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SiteSearchEngineServiceClient::UpdateTargetSite( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTargetSite(google::cloud::ExperimentalTag{}, + operation); +} + future> SiteSearchEngineServiceClient::DeleteTargetSite(std::string const& name, Options opts) { @@ -124,6 +209,18 @@ SiteSearchEngineServiceClient::DeleteTargetSite(std::string const& name, return connection_->DeleteTargetSite(request); } +StatusOr +SiteSearchEngineServiceClient::DeleteTargetSite(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest request; + request.set_name(name); + return connection_->DeleteTargetSite(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SiteSearchEngineServiceClient::DeleteTargetSite( google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& request, @@ -132,6 +229,25 @@ SiteSearchEngineServiceClient::DeleteTargetSite( return connection_->DeleteTargetSite(request); } +StatusOr +SiteSearchEngineServiceClient::DeleteTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetSite(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SiteSearchEngineServiceClient::DeleteTargetSite( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetSite(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SiteSearchEngineServiceClient::ListTargetSites(std::string const& parent, Options opts) { @@ -159,6 +275,27 @@ SiteSearchEngineServiceClient::EnableAdvancedSiteSearch( return connection_->EnableAdvancedSiteSearch(request); } +StatusOr +SiteSearchEngineServiceClient::EnableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableAdvancedSiteSearch( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SiteSearchEngineServiceClient::EnableAdvancedSiteSearch( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableAdvancedSiteSearch(google::cloud::ExperimentalTag{}, + operation); +} + future> SiteSearchEngineServiceClient::DisableAdvancedSiteSearch( @@ -169,6 +306,27 @@ SiteSearchEngineServiceClient::DisableAdvancedSiteSearch( return connection_->DisableAdvancedSiteSearch(request); } +StatusOr +SiteSearchEngineServiceClient::DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DisableAdvancedSiteSearchRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SiteSearchEngineServiceClient::DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag{}, operation); +} + future> SiteSearchEngineServiceClient::RecrawlUris( google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request, @@ -177,6 +335,24 @@ SiteSearchEngineServiceClient::RecrawlUris( return connection_->RecrawlUris(request); } +StatusOr +SiteSearchEngineServiceClient::RecrawlUris( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RecrawlUris(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SiteSearchEngineServiceClient::RecrawlUris( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RecrawlUris(google::cloud::ExperimentalTag{}, operation); +} + future> SiteSearchEngineServiceClient::BatchVerifyTargetSites( @@ -187,6 +363,27 @@ SiteSearchEngineServiceClient::BatchVerifyTargetSites( return connection_->BatchVerifyTargetSites(request); } +StatusOr +SiteSearchEngineServiceClient::BatchVerifyTargetSites( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchVerifyTargetSites( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SiteSearchEngineServiceClient::BatchVerifyTargetSites( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchVerifyTargetSites(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SiteSearchEngineServiceClient::FetchDomainVerificationStatus( google::cloud::discoveryengine::v1::FetchDomainVerificationStatusRequest diff --git a/google/cloud/discoveryengine/v1/site_search_engine_client.h b/google/cloud/discoveryengine/v1/site_search_engine_client.h index a7d9fd09891e2..df3e0c98ec558 100644 --- a/google/cloud/discoveryengine/v1/site_search_engine_client.h +++ b/google/cloud/discoveryengine/v1/site_search_engine_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_SITE_SEARCH_ENGINE_CLIENT_H #include "google/cloud/discoveryengine/v1/site_search_engine_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,12 @@ class SiteSearchEngineServiceClient { google::cloud::discoveryengine::v1::TargetSite const& target_site, Options opts = {}); + StatusOr CreateTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::discoveryengine::v1::TargetSite const& target_site, + Options opts = {}); + // clang-format off /// /// Creates a [TargetSite][google.cloud.discoveryengine.v1.TargetSite]. @@ -235,6 +243,17 @@ class SiteSearchEngineServiceClient { request, Options opts = {}); + StatusOr CreateTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::CreateTargetSiteRequest const& + request, + Options opts = {}); + + future> + CreateTargetSite(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates [TargetSite][google.cloud.discoveryengine.v1.TargetSite] in a @@ -278,6 +297,18 @@ class SiteSearchEngineServiceClient { request, Options opts = {}); + StatusOr BatchCreateTargetSites( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchCreateTargetSitesRequest const& + request, + Options opts = {}); + + future> + BatchCreateTargetSites(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a [TargetSite][google.cloud.discoveryengine.v1.TargetSite]. @@ -383,6 +414,11 @@ class SiteSearchEngineServiceClient { google::cloud::discoveryengine::v1::TargetSite const& target_site, Options opts = {}); + StatusOr UpdateTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::TargetSite const& target_site, + Options opts = {}); + // clang-format off /// /// Updates a [TargetSite][google.cloud.discoveryengine.v1.TargetSite]. @@ -423,6 +459,17 @@ class SiteSearchEngineServiceClient { request, Options opts = {}); + StatusOr UpdateTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::UpdateTargetSiteRequest const& + request, + Options opts = {}); + + future> + UpdateTargetSite(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a [TargetSite][google.cloud.discoveryengine.v1.TargetSite]. @@ -465,6 +512,10 @@ class SiteSearchEngineServiceClient { future> DeleteTargetSite(std::string const& name, Options opts = {}); + StatusOr DeleteTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a [TargetSite][google.cloud.discoveryengine.v1.TargetSite]. @@ -506,6 +557,17 @@ class SiteSearchEngineServiceClient { request, Options opts = {}); + StatusOr DeleteTargetSite( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::DeleteTargetSiteRequest const& + request, + Options opts = {}); + + future> + DeleteTargetSite(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a list of [TargetSite][google.cloud.discoveryengine.v1.TargetSite]s. @@ -627,6 +689,18 @@ class SiteSearchEngineServiceClient { request, Options opts = {}); + StatusOr EnableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::EnableAdvancedSiteSearchRequest const& + request, + Options opts = {}); + + future> + EnableAdvancedSiteSearch(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Downgrade from advanced site search to basic site search. @@ -667,6 +741,18 @@ class SiteSearchEngineServiceClient { DisableAdvancedSiteSearchRequest const& request, Options opts = {}); + StatusOr DisableAdvancedSiteSearch( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1:: + DisableAdvancedSiteSearchRequest const& request, + Options opts = {}); + + future> + DisableAdvancedSiteSearch(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Request on-demand recrawl for a list of URIs. @@ -706,6 +792,16 @@ class SiteSearchEngineServiceClient { google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request, Options opts = {}); + StatusOr RecrawlUris( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::RecrawlUrisRequest const& request, + Options opts = {}); + + future> + RecrawlUris(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Verify target sites' ownership and validity. @@ -749,6 +845,18 @@ class SiteSearchEngineServiceClient { request, Options opts = {}); + StatusOr BatchVerifyTargetSites( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::BatchVerifyTargetSitesRequest const& + request, + Options opts = {}); + + future> + BatchVerifyTargetSites(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns list of target sites with its domain verification status. 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_client.cc b/google/cloud/discoveryengine/v1/user_event_client.cc index 4697cbdebc354..f03fbc0af8560 100644 --- a/google/cloud/discoveryengine/v1/user_event_client.cc +++ b/google/cloud/discoveryengine/v1/user_event_client.cc @@ -55,6 +55,25 @@ UserEventServiceClient::ImportUserEvents( return connection_->ImportUserEvents(request); } +StatusOr +UserEventServiceClient::ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportUserEvents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UserEventServiceClient::ImportUserEvents( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportUserEvents(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace discoveryengine_v1 } // namespace cloud diff --git a/google/cloud/discoveryengine/v1/user_event_client.h b/google/cloud/discoveryengine/v1/user_event_client.h index 3455c6fa19f03..30758155a29a8 100644 --- a/google/cloud/discoveryengine/v1/user_event_client.h +++ b/google/cloud/discoveryengine/v1/user_event_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DISCOVERYENGINE_V1_USER_EVENT_CLIENT_H #include "google/cloud/discoveryengine/v1/user_event_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,6 +203,17 @@ class UserEventServiceClient { request, Options opts = {}); + StatusOr ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::discoveryengine::v1::ImportUserEventsRequest const& + request, + Options opts = {}); + + future> + ImportUserEvents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/dlp/v2/dlp_client.h index bbe3ab42f384e..fa63a45099700 100644 --- a/google/cloud/dlp/v2/dlp_client.h +++ b/google/cloud/dlp/v2/dlp_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DLP_V2_DLP_CLIENT_H #include "google/cloud/dlp/v2/dlp_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/documentai/v1/document_processor_client.cc index 78542a560a152..fe0963f45f61f 100644 --- a/google/cloud/documentai/v1/document_processor_client.cc +++ b/google/cloud/documentai/v1/document_processor_client.cc @@ -59,6 +59,17 @@ DocumentProcessorServiceClient::BatchProcessDocuments(std::string const& name, return connection_->BatchProcessDocuments(request); } +StatusOr +DocumentProcessorServiceClient::BatchProcessDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::documentai::v1::BatchProcessRequest request; + request.set_name(name); + return connection_->BatchProcessDocuments( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DocumentProcessorServiceClient::BatchProcessDocuments( google::cloud::documentai::v1::BatchProcessRequest const& request, @@ -67,6 +78,25 @@ DocumentProcessorServiceClient::BatchProcessDocuments( return connection_->BatchProcessDocuments(request); } +StatusOr +DocumentProcessorServiceClient::BatchProcessDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchProcessDocuments( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentProcessorServiceClient::BatchProcessDocuments( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchProcessDocuments(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DocumentProcessorServiceClient::FetchProcessorTypes(std::string const& parent, Options opts) { @@ -164,6 +194,20 @@ DocumentProcessorServiceClient::TrainProcessorVersion( return connection_->TrainProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::TrainProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::documentai::v1::ProcessorVersion const& processor_version, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::documentai::v1::TrainProcessorVersionRequest request; + request.set_parent(parent); + *request.mutable_processor_version() = processor_version; + return connection_->TrainProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DocumentProcessorServiceClient::TrainProcessorVersion( google::cloud::documentai::v1::TrainProcessorVersionRequest const& request, @@ -172,6 +216,25 @@ DocumentProcessorServiceClient::TrainProcessorVersion( return connection_->TrainProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::TrainProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TrainProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentProcessorServiceClient::TrainProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TrainProcessorVersion(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DocumentProcessorServiceClient::GetProcessorVersion(std::string const& name, Options opts) { @@ -215,6 +278,17 @@ DocumentProcessorServiceClient::DeleteProcessorVersion(std::string const& name, return connection_->DeleteProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::DeleteProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::documentai::v1::DeleteProcessorVersionRequest request; + request.set_name(name); + return connection_->DeleteProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DocumentProcessorServiceClient::DeleteProcessorVersion( google::cloud::documentai::v1::DeleteProcessorVersionRequest const& request, @@ -223,6 +297,25 @@ DocumentProcessorServiceClient::DeleteProcessorVersion( return connection_->DeleteProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::DeleteProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentProcessorServiceClient::DeleteProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteProcessorVersion(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentProcessorServiceClient::DeployProcessorVersion(std::string const& name, Options opts) { @@ -232,6 +325,17 @@ DocumentProcessorServiceClient::DeployProcessorVersion(std::string const& name, return connection_->DeployProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::DeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::documentai::v1::DeployProcessorVersionRequest request; + request.set_name(name); + return connection_->DeployProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DocumentProcessorServiceClient::DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& request, @@ -240,6 +344,25 @@ DocumentProcessorServiceClient::DeployProcessorVersion( return connection_->DeployProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::DeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentProcessorServiceClient::DeployProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeployProcessorVersion(google::cloud::ExperimentalTag{}, + operation); +} + future< StatusOr> DocumentProcessorServiceClient::UndeployProcessorVersion( @@ -250,6 +373,17 @@ DocumentProcessorServiceClient::UndeployProcessorVersion( return connection_->UndeployProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::UndeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::documentai::v1::UndeployProcessorVersionRequest request; + request.set_name(name); + return connection_->UndeployProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> DocumentProcessorServiceClient::UndeployProcessorVersion( @@ -260,6 +394,27 @@ DocumentProcessorServiceClient::UndeployProcessorVersion( return connection_->UndeployProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::UndeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +DocumentProcessorServiceClient::UndeployProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeployProcessorVersion(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DocumentProcessorServiceClient::CreateProcessor( std::string const& parent, @@ -288,6 +443,18 @@ DocumentProcessorServiceClient::DeleteProcessor(std::string const& name, return connection_->DeleteProcessor(request); } +StatusOr +DocumentProcessorServiceClient::DeleteProcessor(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::documentai::v1::DeleteProcessorRequest request; + request.set_name(name); + return connection_->DeleteProcessor(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DocumentProcessorServiceClient::DeleteProcessor( google::cloud::documentai::v1::DeleteProcessorRequest const& request, @@ -296,6 +463,25 @@ DocumentProcessorServiceClient::DeleteProcessor( return connection_->DeleteProcessor(request); } +StatusOr +DocumentProcessorServiceClient::DeleteProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteProcessor(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentProcessorServiceClient::DeleteProcessor( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteProcessor(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentProcessorServiceClient::EnableProcessor( google::cloud::documentai::v1::EnableProcessorRequest const& request, @@ -304,6 +490,25 @@ DocumentProcessorServiceClient::EnableProcessor( return connection_->EnableProcessor(request); } +StatusOr +DocumentProcessorServiceClient::EnableProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableProcessor(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentProcessorServiceClient::EnableProcessor( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableProcessor(google::cloud::ExperimentalTag{}, + operation); +} + future> DocumentProcessorServiceClient::DisableProcessor( google::cloud::documentai::v1::DisableProcessorRequest const& request, @@ -312,6 +517,25 @@ DocumentProcessorServiceClient::DisableProcessor( return connection_->DisableProcessor(request); } +StatusOr +DocumentProcessorServiceClient::DisableProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableProcessor(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentProcessorServiceClient::DisableProcessor( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableProcessor(google::cloud::ExperimentalTag{}, + operation); +} + future< StatusOr> DocumentProcessorServiceClient::SetDefaultProcessorVersion( @@ -322,6 +546,27 @@ DocumentProcessorServiceClient::SetDefaultProcessorVersion( return connection_->SetDefaultProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetDefaultProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +DocumentProcessorServiceClient::SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetDefaultProcessorVersion( + google::cloud::ExperimentalTag{}, operation); +} + future> DocumentProcessorServiceClient::ReviewDocument( std::string const& human_review_config, Options opts) { @@ -331,6 +576,17 @@ DocumentProcessorServiceClient::ReviewDocument( return connection_->ReviewDocument(request); } +StatusOr +DocumentProcessorServiceClient::ReviewDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& human_review_config, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::documentai::v1::ReviewDocumentRequest request; + request.set_human_review_config(human_review_config); + return connection_->ReviewDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DocumentProcessorServiceClient::ReviewDocument( google::cloud::documentai::v1::ReviewDocumentRequest const& request, @@ -339,6 +595,25 @@ DocumentProcessorServiceClient::ReviewDocument( return connection_->ReviewDocument(request); } +StatusOr +DocumentProcessorServiceClient::ReviewDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReviewDocument(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DocumentProcessorServiceClient::ReviewDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReviewDocument(google::cloud::ExperimentalTag{}, + operation); +} + future< StatusOr> DocumentProcessorServiceClient::EvaluateProcessorVersion( @@ -349,6 +624,17 @@ DocumentProcessorServiceClient::EvaluateProcessorVersion( return connection_->EvaluateProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::EvaluateProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& processor_version, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::documentai::v1::EvaluateProcessorVersionRequest request; + request.set_processor_version(processor_version); + return connection_->EvaluateProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> DocumentProcessorServiceClient::EvaluateProcessorVersion( @@ -359,6 +645,27 @@ DocumentProcessorServiceClient::EvaluateProcessorVersion( return connection_->EvaluateProcessorVersion(request); } +StatusOr +DocumentProcessorServiceClient::EvaluateProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EvaluateProcessorVersion( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +DocumentProcessorServiceClient::EvaluateProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EvaluateProcessorVersion(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DocumentProcessorServiceClient::GetEvaluation(std::string const& name, Options opts) { diff --git a/google/cloud/documentai/v1/document_processor_client.h b/google/cloud/documentai/v1/document_processor_client.h index f70e94777ea91..9ae04d6a6586e 100644 --- a/google/cloud/documentai/v1/document_processor_client.h +++ b/google/cloud/documentai/v1/document_processor_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DOCUMENTAI_V1_DOCUMENT_PROCESSOR_CLIENT_H #include "google/cloud/documentai/v1/document_processor_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,6 +204,10 @@ class DocumentProcessorServiceClient { future> BatchProcessDocuments(std::string const& name, Options opts = {}); + StatusOr BatchProcessDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// LRO endpoint to batch process many documents. The output is written @@ -242,6 +248,16 @@ class DocumentProcessorServiceClient { google::cloud::documentai::v1::BatchProcessRequest const& request, Options opts = {}); + StatusOr BatchProcessDocuments( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request, + Options opts = {}); + + future> + BatchProcessDocuments(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Fetches processor types. Note that we don't use @@ -609,6 +625,12 @@ class DocumentProcessorServiceClient { google::cloud::documentai::v1::ProcessorVersion const& processor_version, Options opts = {}); + StatusOr TrainProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::documentai::v1::ProcessorVersion const& processor_version, + Options opts = {}); + // clang-format off /// /// Trains a new processor version. @@ -652,6 +674,17 @@ class DocumentProcessorServiceClient { request, Options opts = {}); + StatusOr TrainProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request, + Options opts = {}); + + future> + TrainProcessorVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets a processor version detail. @@ -819,6 +852,10 @@ class DocumentProcessorServiceClient { StatusOr> DeleteProcessorVersion(std::string const& name, Options opts = {}); + StatusOr DeleteProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the processor version, all artifacts under the processor version @@ -861,6 +898,18 @@ class DocumentProcessorServiceClient { request, Options opts = {}); + StatusOr DeleteProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request, + Options opts = {}); + + future< + StatusOr> + DeleteProcessorVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deploys the processor version. @@ -894,6 +943,10 @@ class DocumentProcessorServiceClient { StatusOr> DeployProcessorVersion(std::string const& name, Options opts = {}); + StatusOr DeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deploys the processor version. @@ -935,6 +988,18 @@ class DocumentProcessorServiceClient { request, Options opts = {}); + StatusOr DeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request, + Options opts = {}); + + future< + StatusOr> + DeployProcessorVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Undeploys the processor version. @@ -968,6 +1033,10 @@ class DocumentProcessorServiceClient { StatusOr> UndeployProcessorVersion(std::string const& name, Options opts = {}); + StatusOr UndeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Undeploys the processor version. @@ -1009,6 +1078,18 @@ class DocumentProcessorServiceClient { request, Options opts = {}); + StatusOr UndeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request, + Options opts = {}); + + future< + StatusOr> + UndeployProcessorVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a processor from the @@ -1116,6 +1197,10 @@ class DocumentProcessorServiceClient { future> DeleteProcessor(std::string const& name, Options opts = {}); + StatusOr DeleteProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the processor, unloads all deployed model artifacts if it was @@ -1156,6 +1241,16 @@ class DocumentProcessorServiceClient { google::cloud::documentai::v1::DeleteProcessorRequest const& request, Options opts = {}); + StatusOr DeleteProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request, + Options opts = {}); + + future> + DeleteProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Enables a processor @@ -1195,6 +1290,16 @@ class DocumentProcessorServiceClient { google::cloud::documentai::v1::EnableProcessorRequest const& request, Options opts = {}); + StatusOr EnableProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request, + Options opts = {}); + + future> + EnableProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Disables a processor @@ -1234,6 +1339,16 @@ class DocumentProcessorServiceClient { google::cloud::documentai::v1::DisableProcessorRequest const& request, Options opts = {}); + StatusOr DisableProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request, + Options opts = {}); + + future> + DisableProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Set the default (active) version of a @@ -1282,6 +1397,18 @@ class DocumentProcessorServiceClient { request, Options opts = {}); + StatusOr SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request, + Options opts = {}); + + future> + SetDefaultProcessorVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Send a document for Human Review. The input document should be processed by @@ -1317,6 +1444,10 @@ class DocumentProcessorServiceClient { future> ReviewDocument(std::string const& human_review_config, Options opts = {}); + StatusOr ReviewDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& human_review_config, Options opts = {}); + // clang-format off /// /// Send a document for Human Review. The input document should be processed by @@ -1357,6 +1488,16 @@ class DocumentProcessorServiceClient { google::cloud::documentai::v1::ReviewDocumentRequest const& request, Options opts = {}); + StatusOr ReviewDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request, + Options opts = {}); + + future> + ReviewDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Evaluates a ProcessorVersion against annotated documents, producing an @@ -1396,6 +1537,10 @@ class DocumentProcessorServiceClient { EvaluateProcessorVersion(std::string const& processor_version, Options opts = {}); + StatusOr EvaluateProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& processor_version, Options opts = {}); + // clang-format off /// /// Evaluates a ProcessorVersion against annotated documents, producing an @@ -1438,6 +1583,18 @@ class DocumentProcessorServiceClient { request, Options opts = {}); + StatusOr EvaluateProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request, + Options opts = {}); + + future< + StatusOr> + EvaluateProcessorVersion(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a specific evaluation. 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..9ef8023428d22 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,61 @@ DocumentProcessorServiceConnectionImpl::BatchProcessDocuments( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::BatchProcessDocuments( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +337,62 @@ DocumentProcessorServiceConnectionImpl::TrainProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::TrainProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +486,62 @@ DocumentProcessorServiceConnectionImpl::DeleteProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::DeleteProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +583,62 @@ DocumentProcessorServiceConnectionImpl::DeployProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::DeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +681,64 @@ DocumentProcessorServiceConnectionImpl::UndeployProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::UndeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +794,61 @@ DocumentProcessorServiceConnectionImpl::DeleteProcessor( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::DeleteProcessor( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +889,61 @@ DocumentProcessorServiceConnectionImpl::EnableProcessor( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::EnableProcessor( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +984,61 @@ DocumentProcessorServiceConnectionImpl::DisableProcessor( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::DisableProcessor( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1080,63 @@ DocumentProcessorServiceConnectionImpl::SetDefaultProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1176,61 @@ DocumentProcessorServiceConnectionImpl::ReviewDocument( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::ReviewDocument( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1273,64 @@ DocumentProcessorServiceConnectionImpl::EvaluateProcessorVersion( polling_policy(*current), __func__); } +StatusOr +DocumentProcessorServiceConnectionImpl::EvaluateProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..5e87d040ca8b6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request) + override; + + future> + BatchProcessDocuments( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request) override; + + future> + TrainProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request) override; + + future< + StatusOr> + DeleteProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& request) override; + StatusOr DeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request) override; + + future< + StatusOr> + DeployProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UndeployProcessorVersion( google::cloud::documentai::v1::UndeployProcessorVersionRequest const& request) override; + StatusOr UndeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request) override; + + future< + StatusOr> + UndeployProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request) + override; + + future> + DeleteProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableProcessor(google::cloud::documentai::v1::EnableProcessorRequest const& request) override; + StatusOr EnableProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request) + override; + + future> + EnableProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableProcessor(google::cloud::documentai::v1::DisableProcessorRequest const& request) override; + StatusOr DisableProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request) + override; + + future> + DisableProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetDefaultProcessorVersion( google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& request) override; + StatusOr SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request) override; + + future> + SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReviewDocument(google::cloud::documentai::v1::ReviewDocumentRequest const& request) override; + StatusOr ReviewDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request) + override; + + future> + ReviewDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> EvaluateProcessorVersion( google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& request) override; + StatusOr EvaluateProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request) override; + + future< + StatusOr> + EvaluateProcessorVersion( + google::cloud::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..8072239b35ede 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,32 @@ DocumentProcessorServiceTracingConnection::BatchProcessDocuments( child_->BatchProcessDocuments(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::BatchProcessDocuments( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::BatchProcessDocuments( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DocumentProcessorServiceTracingConnection::FetchProcessorTypes( google::cloud::documentai::v1::FetchProcessorTypesRequest const& request) { @@ -117,6 +143,33 @@ DocumentProcessorServiceTracingConnection::TrainProcessorVersion( child_->TrainProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::TrainProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::TrainProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DocumentProcessorServiceTracingConnection::GetProcessorVersion( google::cloud::documentai::v1::GetProcessorVersionRequest const& request) { @@ -151,6 +204,33 @@ DocumentProcessorServiceTracingConnection::DeleteProcessorVersion( child_->DeleteProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::DeleteProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::DeleteProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentProcessorServiceTracingConnection::DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& @@ -163,6 +243,33 @@ DocumentProcessorServiceTracingConnection::DeployProcessorVersion( child_->DeployProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::DeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::DeployProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future< StatusOr> DocumentProcessorServiceTracingConnection::UndeployProcessorVersion( @@ -176,6 +283,34 @@ DocumentProcessorServiceTracingConnection::UndeployProcessorVersion( child_->UndeployProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::UndeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +DocumentProcessorServiceTracingConnection::UndeployProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DocumentProcessorServiceTracingConnection::CreateProcessor( google::cloud::documentai::v1::CreateProcessorRequest const& request) { @@ -194,6 +329,30 @@ DocumentProcessorServiceTracingConnection::DeleteProcessor( return internal::EndSpan(std::move(span), child_->DeleteProcessor(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::DeleteProcessor( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::DeleteProcessor( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentProcessorServiceTracingConnection::EnableProcessor( google::cloud::documentai::v1::EnableProcessorRequest const& request) { @@ -203,6 +362,30 @@ DocumentProcessorServiceTracingConnection::EnableProcessor( return internal::EndSpan(std::move(span), child_->EnableProcessor(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::EnableProcessor( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::EnableProcessor( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentProcessorServiceTracingConnection::DisableProcessor( google::cloud::documentai::v1::DisableProcessorRequest const& request) { @@ -212,6 +395,30 @@ DocumentProcessorServiceTracingConnection::DisableProcessor( return internal::EndSpan(std::move(span), child_->DisableProcessor(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::DisableProcessor( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::DisableProcessor( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future< StatusOr> DocumentProcessorServiceTracingConnection::SetDefaultProcessorVersion( @@ -225,6 +432,34 @@ DocumentProcessorServiceTracingConnection::SetDefaultProcessorVersion( child_->SetDefaultProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +DocumentProcessorServiceTracingConnection::SetDefaultProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DocumentProcessorServiceTracingConnection::ReviewDocument( google::cloud::documentai::v1::ReviewDocumentRequest const& request) { @@ -234,6 +469,30 @@ DocumentProcessorServiceTracingConnection::ReviewDocument( return internal::EndSpan(std::move(span), child_->ReviewDocument(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::ReviewDocument( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DocumentProcessorServiceTracingConnection::ReviewDocument( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future< StatusOr> DocumentProcessorServiceTracingConnection::EvaluateProcessorVersion( @@ -247,6 +506,34 @@ DocumentProcessorServiceTracingConnection::EvaluateProcessorVersion( child_->EvaluateProcessorVersion(request)); } +StatusOr +DocumentProcessorServiceTracingConnection::EvaluateProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +DocumentProcessorServiceTracingConnection::EvaluateProcessorVersion( + google::cloud::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( + google::cloud::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..3be12585e6ae1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request) + override; + + future> + BatchProcessDocuments( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request) override; + + future> + TrainProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request) override; + + future< + StatusOr> + DeleteProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> DeployProcessorVersion( google::cloud::documentai::v1::DeployProcessorVersionRequest const& request) override; + StatusOr DeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request) override; + + future< + StatusOr> + DeployProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UndeployProcessorVersion( google::cloud::documentai::v1::UndeployProcessorVersionRequest const& request) override; + StatusOr UndeployProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request) override; + + future< + StatusOr> + UndeployProcessorVersion( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request) + override; + + future> + DeleteProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableProcessor(google::cloud::documentai::v1::EnableProcessorRequest const& request) override; + StatusOr EnableProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request) + override; + + future> + EnableProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableProcessor(google::cloud::documentai::v1::DisableProcessorRequest const& request) override; + StatusOr DisableProcessor( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request) + override; + + future> + DisableProcessor(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetDefaultProcessorVersion( google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& request) override; + StatusOr SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request) override; + + future> + SetDefaultProcessorVersion( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReviewDocument(google::cloud::documentai::v1::ReviewDocumentRequest const& request) override; + StatusOr ReviewDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request) + override; + + future> + ReviewDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> EvaluateProcessorVersion( google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& request) override; + StatusOr EvaluateProcessorVersion( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request) override; + + future< + StatusOr> + EvaluateProcessorVersion( + google::cloud::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..429ad4d359526 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,19 @@ class MockDocumentProcessorServiceConnection (google::cloud::documentai::v1::BatchProcessRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchProcessDocuments, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::BatchProcessRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchProcessDocuments, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, FetchProcessorTypes, @@ -94,6 +107,21 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, TrainProcessorVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::TrainProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + TrainProcessorVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetProcessorVersion, (google::cloud::documentai::v1::GetProcessorVersionRequest const& @@ -114,6 +142,21 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteProcessorVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteProcessorVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -122,6 +165,21 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeployProcessorVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeployProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeployProcessorVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -130,6 +188,21 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UndeployProcessorVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::UndeployProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UndeployProcessorVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateProcessor, (google::cloud::documentai::v1::CreateProcessorRequest const& request), @@ -141,18 +214,57 @@ class MockDocumentProcessorServiceConnection (google::cloud::documentai::v1::DeleteProcessorRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteProcessor, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DeleteProcessorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteProcessor, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, EnableProcessor, (google::cloud::documentai::v1::EnableProcessorRequest const& request), (override)); + MOCK_METHOD( + StatusOr, EnableProcessor, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EnableProcessorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EnableProcessor, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DisableProcessor, (google::cloud::documentai::v1::DisableProcessorRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DisableProcessor, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::DisableProcessorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DisableProcessor, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -161,12 +273,40 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, SetDefaultProcessorVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::SetDefaultProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + SetDefaultProcessorVersion, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReviewDocument, (google::cloud::documentai::v1::ReviewDocumentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReviewDocument, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::ReviewDocumentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ReviewDocument, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -175,6 +315,21 @@ class MockDocumentProcessorServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, EvaluateProcessorVersion, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::documentai::v1::EvaluateProcessorVersionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + EvaluateProcessorVersion, + (google::cloud::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_client.cc b/google/cloud/domains/v1/domains_client.cc index facd5fbbcecd4..c22d3be3fa1f6 100644 --- a/google/cloud/domains/v1/domains_client.cc +++ b/google/cloud/domains/v1/domains_client.cc @@ -83,6 +83,20 @@ DomainsClient::RegisterDomain( return connection_->RegisterDomain(request); } +StatusOr DomainsClient::RegisterDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::domains::v1::Registration const& registration, + google::type::Money const& yearly_price, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::domains::v1::RegisterDomainRequest request; + request.set_parent(parent); + *request.mutable_registration() = registration; + *request.mutable_yearly_price() = yearly_price; + return connection_->RegisterDomain(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DomainsClient::RegisterDomain( google::cloud::domains::v1::RegisterDomainRequest const& request, @@ -91,6 +105,24 @@ DomainsClient::RegisterDomain( return connection_->RegisterDomain(request); } +StatusOr DomainsClient::RegisterDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RegisterDomain(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DomainsClient::RegisterDomain(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RegisterDomain(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DomainsClient::RetrieveTransferParameters(std::string const& location, std::string const& domain_name, @@ -127,6 +159,23 @@ DomainsClient::TransferDomain( return connection_->TransferDomain(request); } +StatusOr DomainsClient::TransferDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::domains::v1::Registration const& registration, + google::type::Money const& yearly_price, + google::cloud::domains::v1::AuthorizationCode const& authorization_code, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::domains::v1::TransferDomainRequest request; + request.set_parent(parent); + *request.mutable_registration() = registration; + *request.mutable_yearly_price() = yearly_price; + *request.mutable_authorization_code() = authorization_code; + return connection_->TransferDomain(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DomainsClient::TransferDomain( google::cloud::domains::v1::TransferDomainRequest const& request, @@ -135,6 +184,24 @@ DomainsClient::TransferDomain( return connection_->TransferDomain(request); } +StatusOr DomainsClient::TransferDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TransferDomain(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DomainsClient::TransferDomain(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TransferDomain(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DomainsClient::ListRegistrations(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -178,6 +245,18 @@ DomainsClient::UpdateRegistration( return connection_->UpdateRegistration(request); } +StatusOr DomainsClient::UpdateRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::Registration const& registration, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::domains::v1::UpdateRegistrationRequest request; + *request.mutable_registration() = registration; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateRegistration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DomainsClient::UpdateRegistration( google::cloud::domains::v1::UpdateRegistrationRequest const& request, @@ -186,6 +265,24 @@ DomainsClient::UpdateRegistration( return connection_->UpdateRegistration(request); } +StatusOr DomainsClient::UpdateRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRegistration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DomainsClient::UpdateRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRegistration(google::cloud::ExperimentalTag{}, + operation); +} + future> DomainsClient::ConfigureManagementSettings( std::string const& registration, @@ -199,6 +296,21 @@ DomainsClient::ConfigureManagementSettings( return connection_->ConfigureManagementSettings(request); } +StatusOr +DomainsClient::ConfigureManagementSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& registration, + google::cloud::domains::v1::ManagementSettings const& management_settings, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::domains::v1::ConfigureManagementSettingsRequest request; + request.set_registration(registration); + *request.mutable_management_settings() = management_settings; + *request.mutable_update_mask() = update_mask; + return connection_->ConfigureManagementSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DomainsClient::ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& @@ -208,6 +320,26 @@ DomainsClient::ConfigureManagementSettings( return connection_->ConfigureManagementSettings(request); } +StatusOr +DomainsClient::ConfigureManagementSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ConfigureManagementSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DomainsClient::ConfigureManagementSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ConfigureManagementSettings( + google::cloud::ExperimentalTag{}, operation); +} + future> DomainsClient::ConfigureDnsSettings( std::string const& registration, @@ -221,6 +353,20 @@ DomainsClient::ConfigureDnsSettings( return connection_->ConfigureDnsSettings(request); } +StatusOr DomainsClient::ConfigureDnsSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& registration, + google::cloud::domains::v1::DnsSettings const& dns_settings, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::domains::v1::ConfigureDnsSettingsRequest request; + request.set_registration(registration); + *request.mutable_dns_settings() = dns_settings; + *request.mutable_update_mask() = update_mask; + return connection_->ConfigureDnsSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DomainsClient::ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request, @@ -229,6 +375,24 @@ DomainsClient::ConfigureDnsSettings( return connection_->ConfigureDnsSettings(request); } +StatusOr DomainsClient::ConfigureDnsSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ConfigureDnsSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DomainsClient::ConfigureDnsSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ConfigureDnsSettings(google::cloud::ExperimentalTag{}, + operation); +} + future> DomainsClient::ConfigureContactSettings( std::string const& registration, @@ -242,6 +406,21 @@ DomainsClient::ConfigureContactSettings( return connection_->ConfigureContactSettings(request); } +StatusOr +DomainsClient::ConfigureContactSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& registration, + google::cloud::domains::v1::ContactSettings const& contact_settings, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::domains::v1::ConfigureContactSettingsRequest request; + request.set_registration(registration); + *request.mutable_contact_settings() = contact_settings; + *request.mutable_update_mask() = update_mask; + return connection_->ConfigureContactSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DomainsClient::ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& request, @@ -250,6 +429,25 @@ DomainsClient::ConfigureContactSettings( return connection_->ConfigureContactSettings(request); } +StatusOr +DomainsClient::ConfigureContactSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ConfigureContactSettings( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DomainsClient::ConfigureContactSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ConfigureContactSettings(google::cloud::ExperimentalTag{}, + operation); +} + future> DomainsClient::ExportRegistration(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -258,6 +456,16 @@ DomainsClient::ExportRegistration(std::string const& name, Options opts) { return connection_->ExportRegistration(request); } +StatusOr DomainsClient::ExportRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::domains::v1::ExportRegistrationRequest request; + request.set_name(name); + return connection_->ExportRegistration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DomainsClient::ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request, @@ -266,6 +474,24 @@ DomainsClient::ExportRegistration( return connection_->ExportRegistration(request); } +StatusOr DomainsClient::ExportRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportRegistration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DomainsClient::ExportRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportRegistration(google::cloud::ExperimentalTag{}, + operation); +} + future> DomainsClient::DeleteRegistration(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -274,6 +500,16 @@ DomainsClient::DeleteRegistration(std::string const& name, Options opts) { return connection_->DeleteRegistration(request); } +StatusOr DomainsClient::DeleteRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::domains::v1::DeleteRegistrationRequest request; + request.set_name(name); + return connection_->DeleteRegistration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DomainsClient::DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request, @@ -282,6 +518,24 @@ DomainsClient::DeleteRegistration( return connection_->DeleteRegistration(request); } +StatusOr DomainsClient::DeleteRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRegistration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DomainsClient::DeleteRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRegistration(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DomainsClient::RetrieveAuthorizationCode(std::string const& registration, Options opts) { diff --git a/google/cloud/domains/v1/domains_client.h b/google/cloud/domains/v1/domains_client.h index 3a478f361bb0c..a44f2f7e57100 100644 --- a/google/cloud/domains/v1/domains_client.h +++ b/google/cloud/domains/v1/domains_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_DOMAINS_V1_DOMAINS_CLIENT_H #include "google/cloud/domains/v1/domains_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -263,6 +265,12 @@ class DomainsClient { google::cloud::domains::v1::Registration const& registration, google::type::Money const& yearly_price, Options opts = {}); + StatusOr RegisterDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::domains::v1::Registration const& registration, + google::type::Money const& yearly_price, Options opts = {}); + // clang-format off /// /// Registers a new domain name and creates a corresponding `Registration` @@ -313,6 +321,15 @@ class DomainsClient { google::cloud::domains::v1::RegisterDomainRequest const& request, Options opts = {}); + StatusOr RegisterDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request, + Options opts = {}); + + future> RegisterDomain( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets parameters needed to transfer a domain name from another registrar to @@ -452,6 +469,14 @@ class DomainsClient { google::cloud::domains::v1::AuthorizationCode const& authorization_code, Options opts = {}); + StatusOr TransferDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::domains::v1::Registration const& registration, + google::type::Money const& yearly_price, + google::cloud::domains::v1::AuthorizationCode const& authorization_code, + Options opts = {}); + // clang-format off /// /// Transfers a domain name from another registrar to Cloud Domains. For @@ -510,6 +535,15 @@ class DomainsClient { google::cloud::domains::v1::TransferDomainRequest const& request, Options opts = {}); + StatusOr TransferDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request, + Options opts = {}); + + future> TransferDomain( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists the `Registration` resources in a project. @@ -683,6 +717,11 @@ class DomainsClient { google::cloud::domains::v1::Registration const& registration, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::Registration const& registration, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates select fields of a `Registration` resource, notably `labels`. To @@ -726,6 +765,15 @@ class DomainsClient { google::cloud::domains::v1::UpdateRegistrationRequest const& request, Options opts = {}); + StatusOr UpdateRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request, + Options opts = {}); + + future> UpdateRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a `Registration`'s management settings. @@ -766,6 +814,12 @@ class DomainsClient { google::cloud::domains::v1::ManagementSettings const& management_settings, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr ConfigureManagementSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& registration, + google::cloud::domains::v1::ManagementSettings const& management_settings, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a `Registration`'s management settings. @@ -806,6 +860,17 @@ class DomainsClient { request, Options opts = {}); + StatusOr ConfigureManagementSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request, + Options opts = {}); + + future> + ConfigureManagementSettings(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a `Registration`'s DNS settings. @@ -852,6 +917,12 @@ class DomainsClient { google::cloud::domains::v1::DnsSettings const& dns_settings, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr ConfigureDnsSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& registration, + google::cloud::domains::v1::DnsSettings const& dns_settings, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a `Registration`'s DNS settings. @@ -891,6 +962,16 @@ class DomainsClient { google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request, Options opts = {}); + StatusOr ConfigureDnsSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request, + Options opts = {}); + + future> + ConfigureDnsSettings(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a `Registration`'s contact settings. Some changes require @@ -932,6 +1013,12 @@ class DomainsClient { google::cloud::domains::v1::ContactSettings const& contact_settings, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr ConfigureContactSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& registration, + google::cloud::domains::v1::ContactSettings const& contact_settings, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a `Registration`'s contact settings. Some changes require @@ -973,6 +1060,17 @@ class DomainsClient { request, Options opts = {}); + StatusOr ConfigureContactSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request, + Options opts = {}); + + future> + ConfigureContactSettings(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Exports a `Registration` resource, such that it is no longer managed by @@ -1014,6 +1112,10 @@ class DomainsClient { future> ExportRegistration( std::string const& name, Options opts = {}); + StatusOr ExportRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Exports a `Registration` resource, such that it is no longer managed by @@ -1060,6 +1162,15 @@ class DomainsClient { google::cloud::domains::v1::ExportRegistrationRequest const& request, Options opts = {}); + StatusOr ExportRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request, + Options opts = {}); + + future> ExportRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a `Registration` resource. @@ -1111,6 +1222,10 @@ class DomainsClient { future> DeleteRegistration(std::string const& name, Options opts = {}); + StatusOr DeleteRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `Registration` resource. @@ -1168,6 +1283,16 @@ class DomainsClient { google::cloud::domains::v1::DeleteRegistrationRequest const& request, Options opts = {}); + StatusOr DeleteRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request, + Options opts = {}); + + future> + DeleteRegistration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the authorization code of the `Registration` for the purpose of 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..3379fd9d3e037 100644 --- a/google/cloud/domains/v1/internal/domains_connection_impl.cc +++ b/google/cloud/domains/v1/internal/domains_connection_impl.cc @@ -132,6 +132,58 @@ DomainsConnectionImpl::RegisterDomain( polling_policy(*current), __func__); } +StatusOr DomainsConnectionImpl::RegisterDomain( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +240,58 @@ DomainsConnectionImpl::TransferDomain( polling_policy(*current), __func__); } +StatusOr DomainsConnectionImpl::TransferDomain( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +381,60 @@ DomainsConnectionImpl::UpdateRegistration( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::UpdateRegistration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +476,62 @@ DomainsConnectionImpl::ConfigureManagementSettings( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::ConfigureManagementSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +572,60 @@ DomainsConnectionImpl::ConfigureDnsSettings( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::ConfigureDnsSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +667,61 @@ DomainsConnectionImpl::ConfigureContactSettings( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::ConfigureContactSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +762,60 @@ DomainsConnectionImpl::ExportRegistration( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::ExportRegistration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +856,60 @@ DomainsConnectionImpl::DeleteRegistration( polling_policy(*current), __func__); } +StatusOr +DomainsConnectionImpl::DeleteRegistration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..e4720e77179a1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request) + override; + + future> RegisterDomain( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request) + override; + + future> TransferDomain( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request) + override; + + future> UpdateRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& request) override; + StatusOr ConfigureManagementSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request) override; + + future> + ConfigureManagementSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) override; + StatusOr ConfigureDnsSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) + override; + + future> + ConfigureDnsSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& request) override; + StatusOr ConfigureContactSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request) override; + + future> + ConfigureContactSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request) override; + StatusOr ExportRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request) + override; + + future> ExportRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request) override; + StatusOr DeleteRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request) + override; + + future> + DeleteRegistration(google::cloud::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..bceed950753e9 100644 --- a/google/cloud/domains/v1/internal/domains_tracing_connection.cc +++ b/google/cloud/domains/v1/internal/domains_tracing_connection.cc @@ -61,6 +61,30 @@ DomainsTracingConnection::RegisterDomain( return internal::EndSpan(std::move(span), child_->RegisterDomain(request)); } +StatusOr +DomainsTracingConnection::RegisterDomain( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::RegisterDomain( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DomainsTracingConnection::RetrieveTransferParameters( google::cloud::domains::v1::RetrieveTransferParametersRequest const& @@ -80,6 +104,30 @@ DomainsTracingConnection::TransferDomain( return internal::EndSpan(std::move(span), child_->TransferDomain(request)); } +StatusOr +DomainsTracingConnection::TransferDomain( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::TransferDomain( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DomainsTracingConnection::ListRegistrations( google::cloud::domains::v1::ListRegistrationsRequest request) { @@ -110,6 +158,30 @@ DomainsTracingConnection::UpdateRegistration( child_->UpdateRegistration(request)); } +StatusOr +DomainsTracingConnection::UpdateRegistration( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::UpdateRegistration( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& @@ -121,6 +193,31 @@ DomainsTracingConnection::ConfigureManagementSettings( child_->ConfigureManagementSettings(request)); } +StatusOr +DomainsTracingConnection::ConfigureManagementSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::ConfigureManagementSettings( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) { @@ -131,6 +228,30 @@ DomainsTracingConnection::ConfigureDnsSettings( child_->ConfigureDnsSettings(request)); } +StatusOr +DomainsTracingConnection::ConfigureDnsSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::ConfigureDnsSettings( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& @@ -142,6 +263,31 @@ DomainsTracingConnection::ConfigureContactSettings( child_->ConfigureContactSettings(request)); } +StatusOr +DomainsTracingConnection::ConfigureContactSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::ConfigureContactSettings( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request) { @@ -152,6 +298,30 @@ DomainsTracingConnection::ExportRegistration( child_->ExportRegistration(request)); } +StatusOr +DomainsTracingConnection::ExportRegistration( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::ExportRegistration( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DomainsTracingConnection::DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request) { @@ -162,6 +332,30 @@ DomainsTracingConnection::DeleteRegistration( child_->DeleteRegistration(request)); } +StatusOr +DomainsTracingConnection::DeleteRegistration( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DomainsTracingConnection::DeleteRegistration( + google::cloud::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(google::cloud::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..ec9645e262449 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request) + override; + + future> RegisterDomain( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request) + override; + + future> TransferDomain( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request) + override; + + future> UpdateRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureManagementSettings( google::cloud::domains::v1::ConfigureManagementSettingsRequest const& request) override; + StatusOr ConfigureManagementSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request) override; + + future> + ConfigureManagementSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureDnsSettings( google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) override; + StatusOr ConfigureDnsSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request) + override; + + future> + ConfigureDnsSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ConfigureContactSettings( google::cloud::domains::v1::ConfigureContactSettingsRequest const& request) override; + StatusOr ConfigureContactSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request) override; + + future> + ConfigureContactSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportRegistration( google::cloud::domains::v1::ExportRegistrationRequest const& request) override; + StatusOr ExportRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request) + override; + + future> ExportRegistration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRegistration( google::cloud::domains::v1::DeleteRegistrationRequest const& request) override; + StatusOr DeleteRegistration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request) + override; + + future> + DeleteRegistration(google::cloud::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..86fe6ec3f6c21 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::RegisterDomainRequest const& request), + (override)); + + MOCK_METHOD(future>, + RegisterDomain, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::TransferDomainRequest const& request), + (override)); + + MOCK_METHOD(future>, + TransferDomain, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::UpdateRegistrationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRegistration, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureManagementSettingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ConfigureManagementSettings, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ConfigureDnsSettings, (google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ConfigureDnsSettings, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureDnsSettingsRequest const& request), + (override)); + + MOCK_METHOD(future>, + ConfigureDnsSettings, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ConfigureContactSettingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ConfigureContactSettings, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportRegistration, (google::cloud::domains::v1::ExportRegistrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportRegistration, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::ExportRegistrationRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportRegistration, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRegistration, (google::cloud::domains::v1::DeleteRegistrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRegistration, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::domains::v1::DeleteRegistrationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRegistration, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, RetrieveAuthorizationCode, diff --git a/google/cloud/edgecontainer/v1/edge_container_client.cc b/google/cloud/edgecontainer/v1/edge_container_client.cc index 3783bd36aaa21..5a0db16b8a74d 100644 --- a/google/cloud/edgecontainer/v1/edge_container_client.cc +++ b/google/cloud/edgecontainer/v1/edge_container_client.cc @@ -77,6 +77,20 @@ EdgeContainerClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr EdgeContainerClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgecontainer::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::CreateClusterRequest request; + request.set_parent(parent); + *request.mutable_cluster() = cluster; + request.set_cluster_id(cluster_id); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::CreateCluster( google::cloud::edgecontainer::v1::CreateClusterRequest const& request, @@ -85,6 +99,24 @@ EdgeContainerClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr EdgeContainerClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> EdgeContainerClient::UpdateCluster( google::cloud::edgecontainer::v1::Cluster const& cluster, @@ -96,6 +128,18 @@ EdgeContainerClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr EdgeContainerClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::UpdateClusterRequest request; + *request.mutable_cluster() = cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request, @@ -104,6 +148,24 @@ EdgeContainerClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr EdgeContainerClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> EdgeContainerClient::UpgradeCluster( std::string const& name, std::string const& target_version, @@ -117,6 +179,20 @@ EdgeContainerClient::UpgradeCluster( return connection_->UpgradeCluster(request); } +StatusOr EdgeContainerClient::UpgradeCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& target_version, + google::cloud::edgecontainer::v1::UpgradeClusterRequest::Schedule schedule, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::UpgradeClusterRequest request; + request.set_name(name); + request.set_target_version(target_version); + request.set_schedule(schedule); + return connection_->UpgradeCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request, @@ -125,6 +201,24 @@ EdgeContainerClient::UpgradeCluster( return connection_->UpgradeCluster(request); } +StatusOr EdgeContainerClient::UpgradeCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::UpgradeCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> EdgeContainerClient::DeleteCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -133,6 +227,16 @@ EdgeContainerClient::DeleteCluster(std::string const& name, Options opts) { return connection_->DeleteCluster(request); } +StatusOr EdgeContainerClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::DeleteClusterRequest request; + request.set_name(name); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::DeleteCluster( google::cloud::edgecontainer::v1::DeleteClusterRequest const& request, @@ -141,6 +245,24 @@ EdgeContainerClient::DeleteCluster( return connection_->DeleteCluster(request); } +StatusOr EdgeContainerClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EdgeContainerClient::GenerateAccessToken(std::string const& cluster, Options opts) { @@ -221,6 +343,20 @@ EdgeContainerClient::CreateNodePool( return connection_->CreateNodePool(request); } +StatusOr EdgeContainerClient::CreateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgecontainer::v1::NodePool const& node_pool, + std::string const& node_pool_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::CreateNodePoolRequest request; + request.set_parent(parent); + *request.mutable_node_pool() = node_pool; + request.set_node_pool_id(node_pool_id); + return connection_->CreateNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::CreateNodePool( google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request, @@ -229,6 +365,24 @@ EdgeContainerClient::CreateNodePool( return connection_->CreateNodePool(request); } +StatusOr EdgeContainerClient::CreateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::CreateNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNodePool(google::cloud::ExperimentalTag{}, + operation); +} + future> EdgeContainerClient::UpdateNodePool( google::cloud::edgecontainer::v1::NodePool const& node_pool, @@ -240,6 +394,18 @@ EdgeContainerClient::UpdateNodePool( return connection_->UpdateNodePool(request); } +StatusOr EdgeContainerClient::UpdateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::NodePool const& node_pool, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::UpdateNodePoolRequest request; + *request.mutable_node_pool() = node_pool; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request, @@ -248,6 +414,24 @@ EdgeContainerClient::UpdateNodePool( return connection_->UpdateNodePool(request); } +StatusOr EdgeContainerClient::UpdateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::UpdateNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNodePool(google::cloud::ExperimentalTag{}, + operation); +} + future> EdgeContainerClient::DeleteNodePool(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -256,6 +440,16 @@ EdgeContainerClient::DeleteNodePool(std::string const& name, Options opts) { return connection_->DeleteNodePool(request); } +StatusOr EdgeContainerClient::DeleteNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::DeleteNodePoolRequest request; + request.set_name(name); + return connection_->DeleteNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::DeleteNodePool( google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request, @@ -264,6 +458,24 @@ EdgeContainerClient::DeleteNodePool( return connection_->DeleteNodePool(request); } +StatusOr EdgeContainerClient::DeleteNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::DeleteNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNodePool(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange EdgeContainerClient::ListMachines(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -342,6 +554,21 @@ EdgeContainerClient::CreateVpnConnection( return connection_->CreateVpnConnection(request); } +StatusOr +EdgeContainerClient::CreateVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgecontainer::v1::VpnConnection const& vpn_connection, + std::string const& vpn_connection_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest request; + request.set_parent(parent); + *request.mutable_vpn_connection() = vpn_connection; + request.set_vpn_connection_id(vpn_connection_id); + return connection_->CreateVpnConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::CreateVpnConnection( google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& request, @@ -350,6 +577,25 @@ EdgeContainerClient::CreateVpnConnection( return connection_->CreateVpnConnection(request); } +StatusOr +EdgeContainerClient::CreateVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVpnConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::CreateVpnConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVpnConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> EdgeContainerClient::DeleteVpnConnection(std::string const& name, Options opts) { @@ -359,6 +605,18 @@ EdgeContainerClient::DeleteVpnConnection(std::string const& name, return connection_->DeleteVpnConnection(request); } +StatusOr +EdgeContainerClient::DeleteVpnConnection(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest request; + request.set_name(name); + return connection_->DeleteVpnConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeContainerClient::DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& request, @@ -367,6 +625,25 @@ EdgeContainerClient::DeleteVpnConnection( return connection_->DeleteVpnConnection(request); } +StatusOr +EdgeContainerClient::DeleteVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVpnConnection(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeContainerClient::DeleteVpnConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVpnConnection(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EdgeContainerClient::GetServerConfig(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/edgecontainer/v1/edge_container_client.h b/google/cloud/edgecontainer/v1/edge_container_client.h index 8344ecbd8988f..25c43adc5816e 100644 --- a/google/cloud/edgecontainer/v1/edge_container_client.h +++ b/google/cloud/edgecontainer/v1/edge_container_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_EDGECONTAINER_V1_EDGE_CONTAINER_CLIENT_H #include "google/cloud/edgecontainer/v1/edge_container_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -254,6 +256,12 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::Cluster const& cluster, std::string const& cluster_id, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgecontainer::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new Cluster in a given project and location. @@ -292,6 +300,15 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::CreateClusterRequest const& request, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request, + Options opts = {}); + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Cluster. @@ -330,6 +347,11 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::Cluster const& cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Cluster. @@ -368,6 +390,15 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::UpdateClusterRequest const& request, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request, + Options opts = {}); + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Upgrades a single cluster. @@ -405,6 +436,13 @@ class EdgeContainerClient { schedule, Options opts = {}); + StatusOr UpgradeCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& target_version, + google::cloud::edgecontainer::v1::UpgradeClusterRequest::Schedule + schedule, + Options opts = {}); + // clang-format off /// /// Upgrades a single cluster. @@ -443,6 +481,15 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request, Options opts = {}); + StatusOr UpgradeCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request, + Options opts = {}); + + future> UpgradeCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Cluster. @@ -475,6 +522,10 @@ class EdgeContainerClient { future> DeleteCluster(std::string const& name, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Cluster. @@ -514,6 +565,16 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::DeleteClusterRequest const& request, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request, + Options opts = {}); + + future> + DeleteCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Generates an access token for a Cluster. @@ -796,6 +857,12 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::NodePool const& node_pool, std::string const& node_pool_id, Options opts = {}); + StatusOr CreateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgecontainer::v1::NodePool const& node_pool, + std::string const& node_pool_id, Options opts = {}); + // clang-format off /// /// Creates a new NodePool in a given project and location. @@ -834,6 +901,15 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request, Options opts = {}); + StatusOr CreateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request, + Options opts = {}); + + future> CreateNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single NodePool. @@ -872,6 +948,11 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::NodePool const& node_pool, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::NodePool const& node_pool, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single NodePool. @@ -910,6 +991,15 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request, Options opts = {}); + StatusOr UpdateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request, + Options opts = {}); + + future> UpdateNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single NodePool. @@ -942,6 +1032,10 @@ class EdgeContainerClient { future> DeleteNodePool(std::string const& name, Options opts = {}); + StatusOr DeleteNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single NodePool. @@ -981,6 +1075,16 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request, Options opts = {}); + StatusOr DeleteNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request, + Options opts = {}); + + future> + DeleteNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Machines in a given project and location. @@ -1280,6 +1384,12 @@ class EdgeContainerClient { google::cloud::edgecontainer::v1::VpnConnection const& vpn_connection, std::string const& vpn_connection_id, Options opts = {}); + StatusOr CreateVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgecontainer::v1::VpnConnection const& vpn_connection, + std::string const& vpn_connection_id, Options opts = {}); + // clang-format off /// /// Creates a new VPN connection in a given project and location. @@ -1320,6 +1430,17 @@ class EdgeContainerClient { request, Options opts = {}); + StatusOr CreateVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request, + Options opts = {}); + + future> + CreateVpnConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single VPN connection. @@ -1352,6 +1473,10 @@ class EdgeContainerClient { future> DeleteVpnConnection(std::string const& name, Options opts = {}); + StatusOr DeleteVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single VPN connection. @@ -1392,6 +1517,17 @@ class EdgeContainerClient { request, Options opts = {}); + StatusOr DeleteVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request, + Options opts = {}); + + future> + DeleteVpnConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the server config. 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..b30be8fd77f34 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,61 @@ EdgeContainerConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +251,61 @@ EdgeContainerConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +346,61 @@ EdgeContainerConnectionImpl::UpgradeCluster( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::UpgradeCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +441,61 @@ EdgeContainerConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +617,61 @@ EdgeContainerConnectionImpl::CreateNodePool( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::CreateNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +712,61 @@ EdgeContainerConnectionImpl::UpdateNodePool( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::UpdateNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +807,61 @@ EdgeContainerConnectionImpl::DeleteNodePool( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::DeleteNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1002,62 @@ EdgeContainerConnectionImpl::CreateVpnConnection( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::CreateVpnConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1099,62 @@ EdgeContainerConnectionImpl::DeleteVpnConnection( polling_policy(*current), __func__); } +StatusOr +EdgeContainerConnectionImpl::DeleteVpnConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..06cbc3d9f3361 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) override; + StatusOr UpgradeCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) + override; + + future> UpgradeCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request) + override; + + future> CreateNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) override; + StatusOr UpdateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) + override; + + future> UpdateNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNodePool(google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) override; + StatusOr DeleteNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) + override; + + future> + DeleteNodePool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request) override; + + future> + CreateVpnConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& request) override; + StatusOr DeleteVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request) override; + + future> + DeleteVpnConnection(google::cloud::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..468b32bb17722 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,30 @@ EdgeContainerTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +EdgeContainerTracingConnection::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::CreateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) { @@ -72,6 +96,30 @@ EdgeContainerTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +EdgeContainerTracingConnection::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::UpdateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) { @@ -81,6 +129,30 @@ EdgeContainerTracingConnection::UpgradeCluster( return internal::EndSpan(std::move(span), child_->UpgradeCluster(request)); } +StatusOr +EdgeContainerTracingConnection::UpgradeCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::UpgradeCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::DeleteCluster( google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) { @@ -90,6 +162,30 @@ EdgeContainerTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +EdgeContainerTracingConnection::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::DeleteCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr EdgeContainerTracingConnection::GenerateAccessToken( google::cloud::edgecontainer::v1::GenerateAccessTokenRequest const& @@ -140,6 +236,30 @@ EdgeContainerTracingConnection::CreateNodePool( return internal::EndSpan(std::move(span), child_->CreateNodePool(request)); } +StatusOr +EdgeContainerTracingConnection::CreateNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::CreateNodePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) { @@ -149,6 +269,30 @@ EdgeContainerTracingConnection::UpdateNodePool( return internal::EndSpan(std::move(span), child_->UpdateNodePool(request)); } +StatusOr +EdgeContainerTracingConnection::UpdateNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::UpdateNodePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::DeleteNodePool( google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) { @@ -158,6 +302,30 @@ EdgeContainerTracingConnection::DeleteNodePool( return internal::EndSpan(std::move(span), child_->DeleteNodePool(request)); } +StatusOr +EdgeContainerTracingConnection::DeleteNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::DeleteNodePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange EdgeContainerTracingConnection::ListMachines( google::cloud::edgecontainer::v1::ListMachinesRequest request) { @@ -211,6 +379,31 @@ EdgeContainerTracingConnection::CreateVpnConnection( child_->CreateVpnConnection(request)); } +StatusOr +EdgeContainerTracingConnection::CreateVpnConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::CreateVpnConnection( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeContainerTracingConnection::DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& @@ -222,6 +415,31 @@ EdgeContainerTracingConnection::DeleteVpnConnection( child_->DeleteVpnConnection(request)); } +StatusOr +EdgeContainerTracingConnection::DeleteVpnConnection( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeContainerTracingConnection::DeleteVpnConnection( + google::cloud::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(google::cloud::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..50fa59350e97c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeCluster( google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) override; + StatusOr UpgradeCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request) + override; + + future> UpgradeCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request) + override; + + future> CreateNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNodePool( google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) override; + StatusOr UpdateNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request) + override; + + future> UpdateNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNodePool(google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) override; + StatusOr DeleteNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request) + override; + + future> + DeleteNodePool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request) override; + + future> + CreateVpnConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVpnConnection( google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& request) override; + StatusOr DeleteVpnConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request) override; + + future> + DeleteVpnConnection(google::cloud::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..47dc0ac675668 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,73 @@ class MockEdgeContainerConnection (google::cloud::edgecontainer::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCluster, (google::cloud::edgecontainer::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpgradeCluster, (google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpgradeCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpgradeClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::edgecontainer::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateAccessToken, @@ -112,18 +161,55 @@ class MockEdgeContainerConnection (google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateNodePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateNodePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateNodePool, (google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::UpdateNodePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateNodePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNodePool, (google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteNodePoolRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteNodePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListMachines, (google::cloud::edgecontainer::v1::ListMachinesRequest request), @@ -153,6 +239,19 @@ class MockEdgeContainerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateVpnConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::CreateVpnConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateVpnConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteVpnConnection, @@ -160,6 +259,20 @@ class MockEdgeContainerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteVpnConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgecontainer::v1::DeleteVpnConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteVpnConnection, + (google::cloud::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_client.cc b/google/cloud/edgenetwork/v1/edge_network_client.cc index d530d930a5ba0..e63ffe338ebc0 100644 --- a/google/cloud/edgenetwork/v1/edge_network_client.cc +++ b/google/cloud/edgenetwork/v1/edge_network_client.cc @@ -136,6 +136,20 @@ EdgeNetworkClient::CreateNetwork( return connection_->CreateNetwork(request); } +StatusOr EdgeNetworkClient::CreateNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgenetwork::v1::Network const& network, + std::string const& network_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::CreateNetworkRequest request; + request.set_parent(parent); + *request.mutable_network() = network; + request.set_network_id(network_id); + return connection_->CreateNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::CreateNetwork( google::cloud::edgenetwork::v1::CreateNetworkRequest const& request, @@ -144,6 +158,24 @@ EdgeNetworkClient::CreateNetwork( return connection_->CreateNetwork(request); } +StatusOr EdgeNetworkClient::CreateNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::CreateNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNetwork(google::cloud::ExperimentalTag{}, + operation); +} + future> EdgeNetworkClient::DeleteNetwork(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -152,6 +184,16 @@ EdgeNetworkClient::DeleteNetwork(std::string const& name, Options opts) { return connection_->DeleteNetwork(request); } +StatusOr EdgeNetworkClient::DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::DeleteNetworkRequest request; + request.set_name(name); + return connection_->DeleteNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::DeleteNetwork( google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request, @@ -160,6 +202,24 @@ EdgeNetworkClient::DeleteNetwork( return connection_->DeleteNetwork(request); } +StatusOr EdgeNetworkClient::DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetwork(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::DeleteNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetwork(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange EdgeNetworkClient::ListSubnets(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -203,6 +263,20 @@ EdgeNetworkClient::CreateSubnet( return connection_->CreateSubnet(request); } +StatusOr EdgeNetworkClient::CreateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgenetwork::v1::Subnet const& subnet, + std::string const& subnet_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::CreateSubnetRequest request; + request.set_parent(parent); + *request.mutable_subnet() = subnet; + request.set_subnet_id(subnet_id); + return connection_->CreateSubnet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::CreateSubnet( google::cloud::edgenetwork::v1::CreateSubnetRequest const& request, @@ -211,6 +285,23 @@ EdgeNetworkClient::CreateSubnet( return connection_->CreateSubnet(request); } +StatusOr EdgeNetworkClient::CreateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSubnet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::CreateSubnet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSubnet(google::cloud::ExperimentalTag{}, operation); +} + future> EdgeNetworkClient::UpdateSubnet( google::cloud::edgenetwork::v1::Subnet const& subnet, @@ -222,6 +313,18 @@ EdgeNetworkClient::UpdateSubnet( return connection_->UpdateSubnet(request); } +StatusOr EdgeNetworkClient::UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::Subnet const& subnet, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::UpdateSubnetRequest request; + *request.mutable_subnet() = subnet; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSubnet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request, @@ -230,6 +333,23 @@ EdgeNetworkClient::UpdateSubnet( return connection_->UpdateSubnet(request); } +StatusOr EdgeNetworkClient::UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSubnet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::UpdateSubnet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSubnet(google::cloud::ExperimentalTag{}, operation); +} + future> EdgeNetworkClient::DeleteSubnet(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -238,6 +358,16 @@ EdgeNetworkClient::DeleteSubnet(std::string const& name, Options opts) { return connection_->DeleteSubnet(request); } +StatusOr EdgeNetworkClient::DeleteSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::DeleteSubnetRequest request; + request.set_name(name); + return connection_->DeleteSubnet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::DeleteSubnet( google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request, @@ -246,6 +376,23 @@ EdgeNetworkClient::DeleteSubnet( return connection_->DeleteSubnet(request); } +StatusOr EdgeNetworkClient::DeleteSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSubnet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::DeleteSubnet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSubnet(google::cloud::ExperimentalTag{}, operation); +} + StreamRange EdgeNetworkClient::ListInterconnects(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -343,6 +490,22 @@ EdgeNetworkClient::CreateInterconnectAttachment( return connection_->CreateInterconnectAttachment(request); } +StatusOr +EdgeNetworkClient::CreateInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgenetwork::v1::InterconnectAttachment const& + interconnect_attachment, + std::string const& interconnect_attachment_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest request; + request.set_parent(parent); + *request.mutable_interconnect_attachment() = interconnect_attachment; + request.set_interconnect_attachment_id(interconnect_attachment_id); + return connection_->CreateInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::CreateInterconnectAttachment( google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& @@ -352,6 +515,26 @@ EdgeNetworkClient::CreateInterconnectAttachment( return connection_->CreateInterconnectAttachment(request); } +StatusOr +EdgeNetworkClient::CreateInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::CreateInterconnectAttachment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInterconnectAttachment( + google::cloud::ExperimentalTag{}, operation); +} + future> EdgeNetworkClient::DeleteInterconnectAttachment(std::string const& name, Options opts) { @@ -361,6 +544,18 @@ EdgeNetworkClient::DeleteInterconnectAttachment(std::string const& name, return connection_->DeleteInterconnectAttachment(request); } +StatusOr +EdgeNetworkClient::DeleteInterconnectAttachment(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest request; + request.set_name(name); + return connection_->DeleteInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& @@ -370,6 +565,26 @@ EdgeNetworkClient::DeleteInterconnectAttachment( return connection_->DeleteInterconnectAttachment(request); } +StatusOr +EdgeNetworkClient::DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInterconnectAttachment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInterconnectAttachment( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange EdgeNetworkClient::ListRouters(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -429,6 +644,20 @@ EdgeNetworkClient::CreateRouter( return connection_->CreateRouter(request); } +StatusOr EdgeNetworkClient::CreateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgenetwork::v1::Router const& router, + std::string const& router_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::CreateRouterRequest request; + request.set_parent(parent); + *request.mutable_router() = router; + request.set_router_id(router_id); + return connection_->CreateRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::CreateRouter( google::cloud::edgenetwork::v1::CreateRouterRequest const& request, @@ -437,6 +666,23 @@ EdgeNetworkClient::CreateRouter( return connection_->CreateRouter(request); } +StatusOr EdgeNetworkClient::CreateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::CreateRouter(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRouter(google::cloud::ExperimentalTag{}, operation); +} + future> EdgeNetworkClient::UpdateRouter( google::cloud::edgenetwork::v1::Router const& router, @@ -448,6 +694,18 @@ EdgeNetworkClient::UpdateRouter( return connection_->UpdateRouter(request); } +StatusOr EdgeNetworkClient::UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::Router const& router, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::UpdateRouterRequest request; + *request.mutable_router() = router; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request, @@ -456,6 +714,23 @@ EdgeNetworkClient::UpdateRouter( return connection_->UpdateRouter(request); } +StatusOr EdgeNetworkClient::UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::UpdateRouter(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRouter(google::cloud::ExperimentalTag{}, operation); +} + future> EdgeNetworkClient::DeleteRouter(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -464,6 +739,16 @@ EdgeNetworkClient::DeleteRouter(std::string const& name, Options opts) { return connection_->DeleteRouter(request); } +StatusOr EdgeNetworkClient::DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::edgenetwork::v1::DeleteRouterRequest request; + request.set_name(name); + return connection_->DeleteRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EdgeNetworkClient::DeleteRouter( google::cloud::edgenetwork::v1::DeleteRouterRequest const& request, @@ -472,6 +757,23 @@ EdgeNetworkClient::DeleteRouter( return connection_->DeleteRouter(request); } +StatusOr EdgeNetworkClient::DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRouter(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EdgeNetworkClient::DeleteRouter(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRouter(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace edgenetwork_v1 } // namespace cloud diff --git a/google/cloud/edgenetwork/v1/edge_network_client.h b/google/cloud/edgenetwork/v1/edge_network_client.h index 9d3f9bea40475..25a5805b1acb4 100644 --- a/google/cloud/edgenetwork/v1/edge_network_client.h +++ b/google/cloud/edgenetwork/v1/edge_network_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_EDGENETWORK_V1_EDGE_NETWORK_CLIENT_H #include "google/cloud/edgenetwork/v1/edge_network_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -506,6 +508,12 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::Network const& network, std::string const& network_id, Options opts = {}); + StatusOr CreateNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgenetwork::v1::Network const& network, + std::string const& network_id, Options opts = {}); + // clang-format off /// /// Creates a new Network in a given project and location. @@ -544,6 +552,15 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::CreateNetworkRequest const& request, Options opts = {}); + StatusOr CreateNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request, + Options opts = {}); + + future> CreateNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Network. @@ -576,6 +593,10 @@ class EdgeNetworkClient { future> DeleteNetwork(std::string const& name, Options opts = {}); + StatusOr DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Network. @@ -615,6 +636,16 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request, Options opts = {}); + StatusOr DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request, + Options opts = {}); + + future> + DeleteNetwork(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Subnets in a given project and location. @@ -783,6 +814,12 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::Subnet const& subnet, std::string const& subnet_id, Options opts = {}); + StatusOr CreateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgenetwork::v1::Subnet const& subnet, + std::string const& subnet_id, Options opts = {}); + // clang-format off /// /// Creates a new Subnet in a given project and location. @@ -821,6 +858,15 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::CreateSubnetRequest const& request, Options opts = {}); + StatusOr CreateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request, + Options opts = {}); + + future> CreateSubnet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Subnet. @@ -859,6 +905,11 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::Subnet const& subnet, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::Subnet const& subnet, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Subnet. @@ -897,6 +948,15 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request, Options opts = {}); + StatusOr UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request, + Options opts = {}); + + future> UpdateSubnet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Subnet. @@ -929,6 +989,10 @@ class EdgeNetworkClient { future> DeleteSubnet(std::string const& name, Options opts = {}); + StatusOr DeleteSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Subnet. @@ -968,6 +1032,16 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request, Options opts = {}); + StatusOr DeleteSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request, + Options opts = {}); + + future> + DeleteSubnet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Interconnects in a given project and location. @@ -1330,6 +1404,13 @@ class EdgeNetworkClient { interconnect_attachment, std::string const& interconnect_attachment_id, Options opts = {}); + StatusOr CreateInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgenetwork::v1::InterconnectAttachment const& + interconnect_attachment, + std::string const& interconnect_attachment_id, Options opts = {}); + // clang-format off /// /// Creates a new InterconnectAttachment in a given project and location. @@ -1370,6 +1451,17 @@ class EdgeNetworkClient { request, Options opts = {}); + StatusOr CreateInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request, + Options opts = {}); + + future> + CreateInterconnectAttachment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single InterconnectAttachment. @@ -1402,6 +1494,10 @@ class EdgeNetworkClient { future> DeleteInterconnectAttachment(std::string const& name, Options opts = {}); + StatusOr DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single InterconnectAttachment. @@ -1442,6 +1538,17 @@ class EdgeNetworkClient { request, Options opts = {}); + StatusOr DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request, + Options opts = {}); + + future> + DeleteInterconnectAttachment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Routers in a given project and location. @@ -1667,6 +1774,12 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::Router const& router, std::string const& router_id, Options opts = {}); + StatusOr CreateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::edgenetwork::v1::Router const& router, + std::string const& router_id, Options opts = {}); + // clang-format off /// /// Creates a new Router in a given project and location. @@ -1705,6 +1818,15 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::CreateRouterRequest const& request, Options opts = {}); + StatusOr CreateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request, + Options opts = {}); + + future> CreateRouter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Router. @@ -1743,6 +1865,11 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::Router const& router, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::Router const& router, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Router. @@ -1781,6 +1908,15 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::UpdateRouterRequest const& request, Options opts = {}); + StatusOr UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request, + Options opts = {}); + + future> UpdateRouter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Router. @@ -1813,6 +1949,10 @@ class EdgeNetworkClient { future> DeleteRouter(std::string const& name, Options opts = {}); + StatusOr DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Router. @@ -1852,6 +1992,16 @@ class EdgeNetworkClient { google::cloud::edgenetwork::v1::DeleteRouterRequest const& request, Options opts = {}); + StatusOr DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request, + Options opts = {}); + + future> + DeleteRouter(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..e964da375933e 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,59 @@ EdgeNetworkConnectionImpl::CreateNetwork( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::CreateNetwork( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +321,60 @@ EdgeNetworkConnectionImpl::DeleteNetwork( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +462,59 @@ EdgeNetworkConnectionImpl::CreateSubnet( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::CreateSubnet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +554,59 @@ EdgeNetworkConnectionImpl::UpdateSubnet( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +646,60 @@ EdgeNetworkConnectionImpl::DeleteSubnet( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::DeleteSubnet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +861,61 @@ EdgeNetworkConnectionImpl::CreateInterconnectAttachment( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::CreateInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +956,61 @@ EdgeNetworkConnectionImpl::DeleteInterconnectAttachment( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1113,59 @@ EdgeNetworkConnectionImpl::CreateRouter( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::CreateRouter( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1205,59 @@ EdgeNetworkConnectionImpl::UpdateRouter( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1297,60 @@ EdgeNetworkConnectionImpl::DeleteRouter( polling_policy(*current), __func__); } +StatusOr +EdgeNetworkConnectionImpl::DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..0f9dad24dcd6c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) + override; + + future> CreateNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetwork(google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) override; + StatusOr DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) + override; + + future> + DeleteNetwork(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) + override; + + future> CreateSubnet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) override; + StatusOr UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) + override; + + future> UpdateSubnet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSubnet(google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) override; + StatusOr DeleteSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) + override; + + future> + DeleteSubnet(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request) override; + + future> + CreateInterconnectAttachment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& request) override; + StatusOr DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request) override; + + future> + DeleteInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request) + override; + + future> CreateRouter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) override; + StatusOr UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) + override; + + future> UpdateRouter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRouter(google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) override; + StatusOr DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) + override; + + future> + DeleteRouter(google::cloud::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..39961d5b0eb83 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,30 @@ EdgeNetworkTracingConnection::CreateNetwork( return internal::EndSpan(std::move(span), child_->CreateNetwork(request)); } +StatusOr +EdgeNetworkTracingConnection::CreateNetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::CreateNetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::DeleteNetwork( google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) { @@ -109,6 +133,30 @@ EdgeNetworkTracingConnection::DeleteNetwork( return internal::EndSpan(std::move(span), child_->DeleteNetwork(request)); } +StatusOr +EdgeNetworkTracingConnection::DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::DeleteNetwork( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange EdgeNetworkTracingConnection::ListSubnets( google::cloud::edgenetwork::v1::ListSubnetsRequest request) { @@ -138,6 +186,30 @@ EdgeNetworkTracingConnection::CreateSubnet( return internal::EndSpan(std::move(span), child_->CreateSubnet(request)); } +StatusOr +EdgeNetworkTracingConnection::CreateSubnet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::CreateSubnet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) { @@ -147,6 +219,30 @@ EdgeNetworkTracingConnection::UpdateSubnet( return internal::EndSpan(std::move(span), child_->UpdateSubnet(request)); } +StatusOr +EdgeNetworkTracingConnection::UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::UpdateSubnet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::DeleteSubnet( google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) { @@ -156,6 +252,30 @@ EdgeNetworkTracingConnection::DeleteSubnet( return internal::EndSpan(std::move(span), child_->DeleteSubnet(request)); } +StatusOr +EdgeNetworkTracingConnection::DeleteSubnet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::DeleteSubnet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange EdgeNetworkTracingConnection::ListInterconnects( google::cloud::edgenetwork::v1::ListInterconnectsRequest request) { @@ -221,6 +341,31 @@ EdgeNetworkTracingConnection::CreateInterconnectAttachment( child_->CreateInterconnectAttachment(request)); } +StatusOr +EdgeNetworkTracingConnection::CreateInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::CreateInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& @@ -232,6 +377,31 @@ EdgeNetworkTracingConnection::DeleteInterconnectAttachment( child_->DeleteInterconnectAttachment(request)); } +StatusOr +EdgeNetworkTracingConnection::DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::DeleteInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange EdgeNetworkTracingConnection::ListRouters( google::cloud::edgenetwork::v1::ListRoutersRequest request) { @@ -270,6 +440,30 @@ EdgeNetworkTracingConnection::CreateRouter( return internal::EndSpan(std::move(span), child_->CreateRouter(request)); } +StatusOr +EdgeNetworkTracingConnection::CreateRouter( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::CreateRouter( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) { @@ -279,6 +473,30 @@ EdgeNetworkTracingConnection::UpdateRouter( return internal::EndSpan(std::move(span), child_->UpdateRouter(request)); } +StatusOr +EdgeNetworkTracingConnection::UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::UpdateRouter( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EdgeNetworkTracingConnection::DeleteRouter( google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) { @@ -288,6 +506,30 @@ EdgeNetworkTracingConnection::DeleteRouter( return internal::EndSpan(std::move(span), child_->DeleteRouter(request)); } +StatusOr +EdgeNetworkTracingConnection::DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EdgeNetworkTracingConnection::DeleteRouter( + google::cloud::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(google::cloud::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..2c03ac0e906b3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request) + override; + + future> CreateNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetwork(google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) override; + StatusOr DeleteNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request) + override; + + future> + DeleteNetwork(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request) + override; + + future> CreateSubnet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSubnet( google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) override; + StatusOr UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request) + override; + + future> UpdateSubnet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSubnet(google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) override; + StatusOr DeleteSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request) + override; + + future> + DeleteSubnet(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateInterconnectAttachmentRequest const& + request) override; + + future> + CreateInterconnectAttachment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInterconnectAttachment( google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& request) override; + StatusOr DeleteInterconnectAttachment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteInterconnectAttachmentRequest const& + request) override; + + future> + DeleteInterconnectAttachment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request) + override; + + future> CreateRouter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateRouter( google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) override; + StatusOr UpdateRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request) + override; + + future> UpdateRouter( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRouter(google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) override; + StatusOr DeleteRouter( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request) + override; + + future> + DeleteRouter(google::cloud::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..ac6f238ac204a 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,37 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { (google::cloud::edgenetwork::v1::CreateNetworkRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateNetwork, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateNetworkRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateNetwork, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNetwork, (google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteNetwork, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteNetworkRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteNetwork, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSubnets, (google::cloud::edgenetwork::v1::ListSubnetsRequest request), @@ -101,17 +126,54 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { (google::cloud::edgenetwork::v1::CreateSubnetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSubnet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateSubnetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSubnet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSubnet, (google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSubnet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateSubnetRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSubnet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSubnet, (google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSubnet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteSubnetRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSubnet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListInterconnects, @@ -151,6 +213,20 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { CreateInterconnectAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateInterconnectAttachment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1:: + CreateInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateInterconnectAttachment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInterconnectAttachment, @@ -158,6 +234,20 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { DeleteInterconnectAttachmentRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteInterconnectAttachment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1:: + DeleteInterconnectAttachmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteInterconnectAttachment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListRouters, (google::cloud::edgenetwork::v1::ListRoutersRequest request), @@ -178,16 +268,53 @@ class MockEdgeNetworkConnection : public edgenetwork_v1::EdgeNetworkConnection { (google::cloud::edgenetwork::v1::CreateRouterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRouter, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::CreateRouterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRouter, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateRouter, (google::cloud::edgenetwork::v1::UpdateRouterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateRouter, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::UpdateRouterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRouter, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRouter, (google::cloud::edgenetwork::v1::DeleteRouterRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteRouter, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::edgenetwork::v1::DeleteRouterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteRouter, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/essentialcontacts/v1/essential_contacts_client.h b/google/cloud/essentialcontacts/v1/essential_contacts_client.h index 275397b827c13..e8baffb3b991f 100644 --- a/google/cloud/essentialcontacts/v1/essential_contacts_client.h +++ b/google/cloud/essentialcontacts/v1/essential_contacts_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ESSENTIALCONTACTS_V1_ESSENTIAL_CONTACTS_CLIENT_H #include "google/cloud/essentialcontacts/v1/essential_contacts_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/eventarc/publishing/v1/publisher_client.h index a7fae805158d2..1cd321a6289c0 100644 --- a/google/cloud/eventarc/publishing/v1/publisher_client.h +++ b/google/cloud/eventarc/publishing/v1/publisher_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_EVENTARC_PUBLISHING_V1_PUBLISHER_CLIENT_H #include "google/cloud/eventarc/publishing/v1/publisher_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/eventarc/v1/eventarc_client.cc index ee47947c508ee..db66922156072 100644 --- a/google/cloud/eventarc/v1/eventarc_client.cc +++ b/google/cloud/eventarc/v1/eventarc_client.cc @@ -74,6 +74,20 @@ EventarcClient::CreateTrigger( return connection_->CreateTrigger(request); } +StatusOr EventarcClient::CreateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::eventarc::v1::Trigger const& trigger, + std::string const& trigger_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::eventarc::v1::CreateTriggerRequest request; + request.set_parent(parent); + *request.mutable_trigger() = trigger; + request.set_trigger_id(trigger_id); + return connection_->CreateTrigger(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EventarcClient::CreateTrigger( google::cloud::eventarc::v1::CreateTriggerRequest const& request, @@ -82,6 +96,24 @@ EventarcClient::CreateTrigger( return connection_->CreateTrigger(request); } +StatusOr EventarcClient::CreateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTrigger(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EventarcClient::CreateTrigger(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTrigger(google::cloud::ExperimentalTag{}, + operation); +} + future> EventarcClient::UpdateTrigger( google::cloud::eventarc::v1::Trigger const& trigger, @@ -95,6 +127,20 @@ EventarcClient::UpdateTrigger( return connection_->UpdateTrigger(request); } +StatusOr EventarcClient::UpdateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::Trigger const& trigger, + google::protobuf::FieldMask const& update_mask, bool allow_missing, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::eventarc::v1::UpdateTriggerRequest request; + *request.mutable_trigger() = trigger; + *request.mutable_update_mask() = update_mask; + request.set_allow_missing(allow_missing); + return connection_->UpdateTrigger(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EventarcClient::UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request, @@ -103,6 +149,24 @@ EventarcClient::UpdateTrigger( return connection_->UpdateTrigger(request); } +StatusOr EventarcClient::UpdateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTrigger(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EventarcClient::UpdateTrigger(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTrigger(google::cloud::ExperimentalTag{}, + operation); +} + future> EventarcClient::DeleteTrigger(std::string const& name, bool allow_missing, Options opts) { @@ -113,6 +177,17 @@ EventarcClient::DeleteTrigger(std::string const& name, bool allow_missing, return connection_->DeleteTrigger(request); } +StatusOr EventarcClient::DeleteTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, bool allow_missing, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::eventarc::v1::DeleteTriggerRequest request; + request.set_name(name); + request.set_allow_missing(allow_missing); + return connection_->DeleteTrigger(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EventarcClient::DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request, @@ -121,6 +196,24 @@ EventarcClient::DeleteTrigger( return connection_->DeleteTrigger(request); } +StatusOr EventarcClient::DeleteTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTrigger(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EventarcClient::DeleteTrigger(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTrigger(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EventarcClient::GetChannel( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -163,6 +256,20 @@ EventarcClient::CreateChannel( return connection_->CreateChannel(request); } +StatusOr EventarcClient::CreateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::eventarc::v1::Channel const& channel, + std::string const& channel_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::eventarc::v1::CreateChannelRequest request; + request.set_parent(parent); + *request.mutable_channel() = channel; + request.set_channel_id(channel_id); + return connection_->CreateChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EventarcClient::CreateChannel( google::cloud::eventarc::v1::CreateChannelRequest const& request, @@ -171,6 +278,24 @@ EventarcClient::CreateChannel( return connection_->CreateChannel(request); } +StatusOr EventarcClient::CreateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EventarcClient::CreateChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateChannel(google::cloud::ExperimentalTag{}, + operation); +} + future> EventarcClient::UpdateChannel( google::cloud::eventarc::v1::Channel const& channel, @@ -182,6 +307,18 @@ EventarcClient::UpdateChannel( return connection_->UpdateChannel(request); } +StatusOr EventarcClient::UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::Channel const& channel, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::eventarc::v1::UpdateChannelRequest request; + *request.mutable_channel() = channel; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EventarcClient::UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request, @@ -190,6 +327,24 @@ EventarcClient::UpdateChannel( return connection_->UpdateChannel(request); } +StatusOr EventarcClient::UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EventarcClient::UpdateChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateChannel(google::cloud::ExperimentalTag{}, + operation); +} + future> EventarcClient::DeleteChannel(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -198,6 +353,16 @@ EventarcClient::DeleteChannel(std::string const& name, Options opts) { return connection_->DeleteChannel(request); } +StatusOr EventarcClient::DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::eventarc::v1::DeleteChannelRequest request; + request.set_name(name); + return connection_->DeleteChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> EventarcClient::DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request, @@ -206,6 +371,24 @@ EventarcClient::DeleteChannel( return connection_->DeleteChannel(request); } +StatusOr EventarcClient::DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +EventarcClient::DeleteChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteChannel(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EventarcClient::GetProvider( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -282,6 +465,21 @@ EventarcClient::CreateChannelConnection( return connection_->CreateChannelConnection(request); } +StatusOr +EventarcClient::CreateChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::eventarc::v1::ChannelConnection const& channel_connection, + std::string const& channel_connection_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::eventarc::v1::CreateChannelConnectionRequest request; + request.set_parent(parent); + *request.mutable_channel_connection() = channel_connection; + request.set_channel_connection_id(channel_connection_id); + return connection_->CreateChannelConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> EventarcClient::CreateChannelConnection( google::cloud::eventarc::v1::CreateChannelConnectionRequest const& request, @@ -290,6 +488,25 @@ EventarcClient::CreateChannelConnection( return connection_->CreateChannelConnection(request); } +StatusOr +EventarcClient::CreateChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateChannelConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +EventarcClient::CreateChannelConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateChannelConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> EventarcClient::DeleteChannelConnection(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -298,6 +515,17 @@ EventarcClient::DeleteChannelConnection(std::string const& name, Options opts) { return connection_->DeleteChannelConnection(request); } +StatusOr +EventarcClient::DeleteChannelConnection(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::eventarc::v1::DeleteChannelConnectionRequest request; + request.set_name(name); + return connection_->DeleteChannelConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> EventarcClient::DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& request, @@ -306,6 +534,25 @@ EventarcClient::DeleteChannelConnection( return connection_->DeleteChannelConnection(request); } +StatusOr +EventarcClient::DeleteChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteChannelConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +EventarcClient::DeleteChannelConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteChannelConnection(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr EventarcClient::GetGoogleChannelConfig(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/eventarc/v1/eventarc_client.h b/google/cloud/eventarc/v1/eventarc_client.h index d2e2914959d05..edcfef4da4579 100644 --- a/google/cloud/eventarc/v1/eventarc_client.h +++ b/google/cloud/eventarc/v1/eventarc_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_EVENTARC_V1_EVENTARC_CLIENT_H #include "google/cloud/eventarc/v1/eventarc_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -252,6 +254,12 @@ class EventarcClient { google::cloud::eventarc::v1::Trigger const& trigger, std::string const& trigger_id, Options opts = {}); + StatusOr CreateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::eventarc::v1::Trigger const& trigger, + std::string const& trigger_id, Options opts = {}); + // clang-format off /// /// Create a new trigger in a particular project and location. @@ -290,6 +298,15 @@ class EventarcClient { google::cloud::eventarc::v1::CreateTriggerRequest const& request, Options opts = {}); + StatusOr CreateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request, + Options opts = {}); + + future> CreateTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Update a single trigger. @@ -329,6 +346,12 @@ class EventarcClient { google::protobuf::FieldMask const& update_mask, bool allow_missing, Options opts = {}); + StatusOr UpdateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::Trigger const& trigger, + google::protobuf::FieldMask const& update_mask, bool allow_missing, + Options opts = {}); + // clang-format off /// /// Update a single trigger. @@ -367,6 +390,15 @@ class EventarcClient { google::cloud::eventarc::v1::UpdateTriggerRequest const& request, Options opts = {}); + StatusOr UpdateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request, + Options opts = {}); + + future> UpdateTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Delete a single trigger. @@ -401,6 +433,10 @@ class EventarcClient { future> DeleteTrigger( std::string const& name, bool allow_missing, Options opts = {}); + StatusOr DeleteTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, bool allow_missing, Options opts = {}); + // clang-format off /// /// Delete a single trigger. @@ -439,6 +475,15 @@ class EventarcClient { google::cloud::eventarc::v1::DeleteTriggerRequest const& request, Options opts = {}); + StatusOr DeleteTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request, + Options opts = {}); + + future> DeleteTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Get a single Channel. @@ -605,6 +650,12 @@ class EventarcClient { google::cloud::eventarc::v1::Channel const& channel, std::string const& channel_id, Options opts = {}); + StatusOr CreateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::eventarc::v1::Channel const& channel, + std::string const& channel_id, Options opts = {}); + // clang-format off /// /// Create a new channel in a particular project and location. @@ -643,6 +694,15 @@ class EventarcClient { google::cloud::eventarc::v1::CreateChannelRequest const& request, Options opts = {}); + StatusOr CreateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request, + Options opts = {}); + + future> CreateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Update a single channel. @@ -679,6 +739,11 @@ class EventarcClient { google::cloud::eventarc::v1::Channel const& channel, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::Channel const& channel, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a single channel. @@ -717,6 +782,15 @@ class EventarcClient { google::cloud::eventarc::v1::UpdateChannelRequest const& request, Options opts = {}); + StatusOr UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request, + Options opts = {}); + + future> UpdateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Delete a single channel. @@ -749,6 +823,10 @@ class EventarcClient { future> DeleteChannel( std::string const& name, Options opts = {}); + StatusOr DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete a single channel. @@ -787,6 +865,15 @@ class EventarcClient { google::cloud::eventarc::v1::DeleteChannelRequest const& request, Options opts = {}); + StatusOr DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request, + Options opts = {}); + + future> DeleteChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Get a single Provider. @@ -1085,6 +1172,12 @@ class EventarcClient { google::cloud::eventarc::v1::ChannelConnection const& channel_connection, std::string const& channel_connection_id, Options opts = {}); + StatusOr CreateChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::eventarc::v1::ChannelConnection const& channel_connection, + std::string const& channel_connection_id, Options opts = {}); + // clang-format off /// /// Create a new ChannelConnection in a particular project and location. @@ -1125,6 +1218,17 @@ class EventarcClient { request, Options opts = {}); + StatusOr CreateChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request, + Options opts = {}); + + future> + CreateChannelConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Delete a single ChannelConnection. @@ -1157,6 +1261,10 @@ class EventarcClient { future> DeleteChannelConnection(std::string const& name, Options opts = {}); + StatusOr DeleteChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete a single ChannelConnection. @@ -1197,6 +1305,17 @@ class EventarcClient { request, Options opts = {}); + StatusOr DeleteChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request, + Options opts = {}); + + future> + DeleteChannelConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Get a GoogleChannelConfig 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..81e466839e7d7 100644 --- a/google/cloud/eventarc/v1/internal/eventarc_connection_impl.cc +++ b/google/cloud/eventarc/v1/internal/eventarc_connection_impl.cc @@ -149,6 +149,57 @@ EventarcConnectionImpl::CreateTrigger( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::CreateTrigger( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +239,57 @@ EventarcConnectionImpl::UpdateTrigger( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::UpdateTrigger( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +329,57 @@ EventarcConnectionImpl::DeleteTrigger( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::DeleteTrigger( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +467,57 @@ EventarcConnectionImpl::CreateChannel( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::CreateChannel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +557,57 @@ EventarcConnectionImpl::UpdateChannel( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +647,57 @@ EventarcConnectionImpl::DeleteChannel( polling_policy(*current), __func__); } +StatusOr EventarcConnectionImpl::DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +837,61 @@ EventarcConnectionImpl::CreateChannelConnection( polling_policy(*current), __func__); } +StatusOr +EventarcConnectionImpl::CreateChannelConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +933,61 @@ EventarcConnectionImpl::DeleteChannelConnection( polling_policy(*current), __func__); } +StatusOr +EventarcConnectionImpl::DeleteChannelConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..31b1b5592600d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request) + override; + + future> CreateTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request) override; + StatusOr UpdateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request) + override; + + future> UpdateTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request) override; + StatusOr DeleteTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request) + override; + + future> DeleteTrigger( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request) + override; + + future> CreateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request) override; + StatusOr UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request) + override; + + future> UpdateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request) override; + StatusOr DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request) + override; + + future> DeleteChannel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request) override; + + future> + CreateChannelConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& request) override; + StatusOr DeleteChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request) override; + + future> + DeleteChannelConnection( + google::cloud::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..5bab7f6febc53 100644 --- a/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.cc +++ b/google/cloud/eventarc/v1/internal/eventarc_tracing_connection.cc @@ -61,6 +61,30 @@ EventarcTracingConnection::CreateTrigger( return internal::EndSpan(std::move(span), child_->CreateTrigger(request)); } +StatusOr +EventarcTracingConnection::CreateTrigger( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::CreateTrigger( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request) { @@ -70,6 +94,30 @@ EventarcTracingConnection::UpdateTrigger( return internal::EndSpan(std::move(span), child_->UpdateTrigger(request)); } +StatusOr +EventarcTracingConnection::UpdateTrigger( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::UpdateTrigger( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request) { @@ -79,6 +127,30 @@ EventarcTracingConnection::DeleteTrigger( return internal::EndSpan(std::move(span), child_->DeleteTrigger(request)); } +StatusOr +EventarcTracingConnection::DeleteTrigger( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::DeleteTrigger( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr EventarcTracingConnection::GetChannel( google::cloud::eventarc::v1::GetChannelRequest const& request) { @@ -107,6 +179,30 @@ EventarcTracingConnection::CreateChannel( return internal::EndSpan(std::move(span), child_->CreateChannel(request)); } +StatusOr +EventarcTracingConnection::CreateChannel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::CreateChannel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request) { @@ -116,6 +212,30 @@ EventarcTracingConnection::UpdateChannel( return internal::EndSpan(std::move(span), child_->UpdateChannel(request)); } +StatusOr +EventarcTracingConnection::UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::UpdateChannel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request) { @@ -125,6 +245,30 @@ EventarcTracingConnection::DeleteChannel( return internal::EndSpan(std::move(span), child_->DeleteChannel(request)); } +StatusOr +EventarcTracingConnection::DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::DeleteChannel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr EventarcTracingConnection::GetProvider( google::cloud::eventarc::v1::GetProviderRequest const& request) { @@ -177,6 +321,31 @@ EventarcTracingConnection::CreateChannelConnection( child_->CreateChannelConnection(request)); } +StatusOr +EventarcTracingConnection::CreateChannelConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::CreateChannelConnection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> EventarcTracingConnection::DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& @@ -188,6 +357,31 @@ EventarcTracingConnection::DeleteChannelConnection( child_->DeleteChannelConnection(request)); } +StatusOr +EventarcTracingConnection::DeleteChannelConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +EventarcTracingConnection::DeleteChannelConnection( + google::cloud::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( + google::cloud::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..e282b125a52f7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request) + override; + + future> CreateTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTrigger( google::cloud::eventarc::v1::UpdateTriggerRequest const& request) override; + StatusOr UpdateTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request) + override; + + future> UpdateTrigger( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTrigger( google::cloud::eventarc::v1::DeleteTriggerRequest const& request) override; + StatusOr DeleteTrigger( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request) + override; + + future> DeleteTrigger( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request) + override; + + future> CreateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateChannel( google::cloud::eventarc::v1::UpdateChannelRequest const& request) override; + StatusOr UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request) + override; + + future> UpdateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteChannel( google::cloud::eventarc::v1::DeleteChannelRequest const& request) override; + StatusOr DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request) + override; + + future> DeleteChannel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request) override; + + future> + CreateChannelConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteChannelConnection( google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& request) override; + StatusOr DeleteChannelConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request) override; + + future> + DeleteChannelConnection( + google::cloud::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..c711e89351907 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateTriggerRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateTrigger, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateTrigger, (google::cloud::eventarc::v1::UpdateTriggerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateTrigger, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateTriggerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateTrigger, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTrigger, (google::cloud::eventarc::v1::DeleteTriggerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteTrigger, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteTriggerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTrigger, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateChannel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateChannel, (google::cloud::eventarc::v1::UpdateChannelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateChannel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::UpdateChannelRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateChannel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteChannel, (google::cloud::eventarc::v1::DeleteChannelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteChannel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteChannel, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::CreateChannelConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateChannelConnection, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::eventarc::v1::DeleteChannelConnectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteChannelConnection, + (google::cloud::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_client.cc b/google/cloud/filestore/v1/cloud_filestore_manager_client.cc index 949ecfa6a7296..7fc6c3c89c44d 100644 --- a/google/cloud/filestore/v1/cloud_filestore_manager_client.cc +++ b/google/cloud/filestore/v1/cloud_filestore_manager_client.cc @@ -78,6 +78,21 @@ CloudFilestoreManagerClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr +CloudFilestoreManagerClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::filestore::v1::Instance const& instance, + std::string const& instance_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::CreateInstanceRequest request; + request.set_parent(parent); + *request.mutable_instance() = instance; + request.set_instance_id(instance_id); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::CreateInstance( google::cloud::filestore::v1::CreateInstanceRequest const& request, @@ -86,6 +101,25 @@ CloudFilestoreManagerClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr +CloudFilestoreManagerClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudFilestoreManagerClient::UpdateInstance( google::cloud::filestore::v1::Instance const& instance, @@ -97,6 +131,19 @@ CloudFilestoreManagerClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr +CloudFilestoreManagerClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::UpdateInstanceRequest request; + *request.mutable_instance() = instance; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request, @@ -105,6 +152,25 @@ CloudFilestoreManagerClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr +CloudFilestoreManagerClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudFilestoreManagerClient::RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request, @@ -113,6 +179,25 @@ CloudFilestoreManagerClient::RestoreInstance( return connection_->RestoreInstance(request); } +StatusOr +CloudFilestoreManagerClient::RestoreInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::RestoreInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudFilestoreManagerClient::RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request, @@ -121,6 +206,25 @@ CloudFilestoreManagerClient::RevertInstance( return connection_->RevertInstance(request); } +StatusOr +CloudFilestoreManagerClient::RevertInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RevertInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::RevertInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RevertInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudFilestoreManagerClient::DeleteInstance(std::string const& name, Options opts) { @@ -130,6 +234,18 @@ CloudFilestoreManagerClient::DeleteInstance(std::string const& name, return connection_->DeleteInstance(request); } +StatusOr +CloudFilestoreManagerClient::DeleteInstance(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::DeleteInstanceRequest request; + request.set_name(name); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request, @@ -138,6 +254,25 @@ CloudFilestoreManagerClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr +CloudFilestoreManagerClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CloudFilestoreManagerClient::ListSnapshots(std::string const& parent, Options opts) { @@ -184,6 +319,21 @@ CloudFilestoreManagerClient::CreateSnapshot( return connection_->CreateSnapshot(request); } +StatusOr +CloudFilestoreManagerClient::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::filestore::v1::Snapshot const& snapshot, + std::string const& snapshot_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::CreateSnapshotRequest request; + request.set_parent(parent); + *request.mutable_snapshot() = snapshot; + request.set_snapshot_id(snapshot_id); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::CreateSnapshot( google::cloud::filestore::v1::CreateSnapshotRequest const& request, @@ -192,6 +342,25 @@ CloudFilestoreManagerClient::CreateSnapshot( return connection_->CreateSnapshot(request); } +StatusOr +CloudFilestoreManagerClient::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::CreateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudFilestoreManagerClient::DeleteSnapshot(std::string const& name, Options opts) { @@ -201,6 +370,18 @@ CloudFilestoreManagerClient::DeleteSnapshot(std::string const& name, return connection_->DeleteSnapshot(request); } +StatusOr +CloudFilestoreManagerClient::DeleteSnapshot(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::DeleteSnapshotRequest request; + request.set_name(name); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request, @@ -209,6 +390,25 @@ CloudFilestoreManagerClient::DeleteSnapshot( return connection_->DeleteSnapshot(request); } +StatusOr +CloudFilestoreManagerClient::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::DeleteSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudFilestoreManagerClient::UpdateSnapshot( google::cloud::filestore::v1::Snapshot const& snapshot, @@ -220,6 +420,19 @@ CloudFilestoreManagerClient::UpdateSnapshot( return connection_->UpdateSnapshot(request); } +StatusOr +CloudFilestoreManagerClient::UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::Snapshot const& snapshot, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::UpdateSnapshotRequest request; + *request.mutable_snapshot() = snapshot; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request, @@ -228,6 +441,25 @@ CloudFilestoreManagerClient::UpdateSnapshot( return connection_->UpdateSnapshot(request); } +StatusOr +CloudFilestoreManagerClient::UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::UpdateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange CloudFilestoreManagerClient::ListBackups(std::string const& parent, Options opts) { @@ -273,6 +505,21 @@ CloudFilestoreManagerClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr +CloudFilestoreManagerClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::filestore::v1::Backup const& backup, + std::string const& backup_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::CreateBackupRequest request; + request.set_parent(parent); + *request.mutable_backup() = backup; + request.set_backup_id(backup_id); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::CreateBackup( google::cloud::filestore::v1::CreateBackupRequest const& request, @@ -281,6 +528,24 @@ CloudFilestoreManagerClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr +CloudFilestoreManagerClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, operation); +} + future> CloudFilestoreManagerClient::DeleteBackup(std::string const& name, Options opts) { @@ -290,6 +555,18 @@ CloudFilestoreManagerClient::DeleteBackup(std::string const& name, return connection_->DeleteBackup(request); } +StatusOr +CloudFilestoreManagerClient::DeleteBackup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::DeleteBackupRequest request; + request.set_name(name); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request, @@ -298,6 +575,24 @@ CloudFilestoreManagerClient::DeleteBackup( return connection_->DeleteBackup(request); } +StatusOr +CloudFilestoreManagerClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, operation); +} + future> CloudFilestoreManagerClient::UpdateBackup( google::cloud::filestore::v1::Backup const& backup, @@ -309,6 +604,19 @@ CloudFilestoreManagerClient::UpdateBackup( return connection_->UpdateBackup(request); } +StatusOr +CloudFilestoreManagerClient::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::Backup const& backup, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::filestore::v1::UpdateBackupRequest request; + *request.mutable_backup() = backup; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFilestoreManagerClient::UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request, @@ -317,6 +625,24 @@ CloudFilestoreManagerClient::UpdateBackup( return connection_->UpdateBackup(request); } +StatusOr +CloudFilestoreManagerClient::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFilestoreManagerClient::UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace filestore_v1 } // namespace cloud diff --git a/google/cloud/filestore/v1/cloud_filestore_manager_client.h b/google/cloud/filestore/v1/cloud_filestore_manager_client.h index b7b64aba4f2b9..21aa670e36f88 100644 --- a/google/cloud/filestore/v1/cloud_filestore_manager_client.h +++ b/google/cloud/filestore/v1/cloud_filestore_manager_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FILESTORE_V1_CLOUD_FILESTORE_MANAGER_CLIENT_H #include "google/cloud/filestore/v1/cloud_filestore_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -290,6 +292,12 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::Instance const& instance, std::string const& instance_id, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::filestore::v1::Instance const& instance, + std::string const& instance_id, Options opts = {}); + // clang-format off /// /// Creates an instance. @@ -331,6 +339,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::CreateInstanceRequest const& request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request, + Options opts = {}); + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific instance. @@ -371,6 +388,11 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::Instance const& instance, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific instance. @@ -409,6 +431,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::UpdateInstanceRequest const& request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request, + Options opts = {}); + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Restores an existing instance's file share from a backup. @@ -451,6 +482,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::RestoreInstanceRequest const& request, Options opts = {}); + StatusOr RestoreInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request, + Options opts = {}); + + future> RestoreInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Revert an existing instance's file system to a specified snapshot. @@ -489,6 +529,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::RevertInstanceRequest const& request, Options opts = {}); + StatusOr RevertInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request, + Options opts = {}); + + future> RevertInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an instance. @@ -522,6 +571,10 @@ class CloudFilestoreManagerClient { future> DeleteInstance( std::string const& name, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an instance. @@ -560,6 +613,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::DeleteInstanceRequest const& request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request, + Options opts = {}); + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists all snapshots in a project for either a specified location @@ -736,6 +798,12 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::Snapshot const& snapshot, std::string const& snapshot_id, Options opts = {}); + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::filestore::v1::Snapshot const& snapshot, + std::string const& snapshot_id, Options opts = {}); + // clang-format off /// /// Creates a snapshot. @@ -774,6 +842,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::CreateSnapshotRequest const& request, Options opts = {}); + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request, + Options opts = {}); + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a snapshot. @@ -807,6 +884,10 @@ class CloudFilestoreManagerClient { future> DeleteSnapshot( std::string const& name, Options opts = {}); + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a snapshot. @@ -845,6 +926,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::DeleteSnapshotRequest const& request, Options opts = {}); + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request, + Options opts = {}); + + future> DeleteSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific snapshot. @@ -880,6 +970,11 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::Snapshot const& snapshot, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::Snapshot const& snapshot, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific snapshot. @@ -918,6 +1013,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::UpdateSnapshotRequest const& request, Options opts = {}); + StatusOr UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request, + Options opts = {}); + + future> UpdateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists all backups in a project for either a specified location or for all @@ -1100,6 +1204,12 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::Backup const& backup, std::string const& backup_id, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::filestore::v1::Backup const& backup, + std::string const& backup_id, Options opts = {}); + // clang-format off /// /// Creates a backup. @@ -1138,6 +1248,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::CreateBackupRequest const& request, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request, + Options opts = {}); + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a backup. @@ -1171,6 +1290,10 @@ class CloudFilestoreManagerClient { future> DeleteBackup( std::string const& name, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a backup. @@ -1209,6 +1332,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::DeleteBackupRequest const& request, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request, + Options opts = {}); + + future> DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific backup. @@ -1244,6 +1376,11 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::Backup const& backup, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::Backup const& backup, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific backup. @@ -1282,6 +1419,15 @@ class CloudFilestoreManagerClient { google::cloud::filestore::v1::UpdateBackupRequest const& request, Options opts = {}); + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request, + Options opts = {}); + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..d201a67f4df3e 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,59 @@ CloudFilestoreManagerConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +247,59 @@ CloudFilestoreManagerConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +339,59 @@ CloudFilestoreManagerConnectionImpl::RestoreInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::RestoreInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +431,59 @@ CloudFilestoreManagerConnectionImpl::RevertInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::RevertInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +523,60 @@ CloudFilestoreManagerConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +664,59 @@ CloudFilestoreManagerConnectionImpl::CreateSnapshot( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +756,60 @@ CloudFilestoreManagerConnectionImpl::DeleteSnapshot( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +849,59 @@ CloudFilestoreManagerConnectionImpl::UpdateSnapshot( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +989,58 @@ CloudFilestoreManagerConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1080,59 @@ CloudFilestoreManagerConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1172,58 @@ CloudFilestoreManagerConnectionImpl::UpdateBackup( polling_policy(*current), __func__); } +StatusOr +CloudFilestoreManagerConnectionImpl::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..414b90bfd9aca 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request) override; + StatusOr RestoreInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request) + override; + + future> RestoreInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request) override; + StatusOr RevertInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request) + override; + + future> RevertInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request) + override; + + future> DeleteInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request) + override; + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request) + override; + + future> DeleteSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request) override; + StatusOr UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request) + override; + + future> UpdateSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request) + override; + + future> DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request) + override; + + future> UpdateBackup( + google::cloud::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..330ed7bab11aa 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,30 @@ CloudFilestoreManagerTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request) { @@ -71,6 +95,30 @@ CloudFilestoreManagerTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request) { @@ -80,6 +128,30 @@ CloudFilestoreManagerTracingConnection::RestoreInstance( return internal::EndSpan(std::move(span), child_->RestoreInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::RestoreInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::RestoreInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request) { @@ -89,6 +161,30 @@ CloudFilestoreManagerTracingConnection::RevertInstance( return internal::EndSpan(std::move(span), child_->RevertInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::RevertInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::RevertInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request) { @@ -98,6 +194,30 @@ CloudFilestoreManagerTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CloudFilestoreManagerTracingConnection::ListSnapshots( google::cloud::filestore::v1::ListSnapshotsRequest request) { @@ -127,6 +247,30 @@ CloudFilestoreManagerTracingConnection::CreateSnapshot( return internal::EndSpan(std::move(span), child_->CreateSnapshot(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::CreateSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request) { @@ -136,6 +280,30 @@ CloudFilestoreManagerTracingConnection::DeleteSnapshot( return internal::EndSpan(std::move(span), child_->DeleteSnapshot(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::DeleteSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request) { @@ -145,6 +313,30 @@ CloudFilestoreManagerTracingConnection::UpdateSnapshot( return internal::EndSpan(std::move(span), child_->UpdateSnapshot(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::UpdateSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange CloudFilestoreManagerTracingConnection::ListBackups( google::cloud::filestore::v1::ListBackupsRequest request) { @@ -174,6 +366,30 @@ CloudFilestoreManagerTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::CreateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request) { @@ -183,6 +399,30 @@ CloudFilestoreManagerTracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::DeleteBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFilestoreManagerTracingConnection::UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request) { @@ -192,6 +432,30 @@ CloudFilestoreManagerTracingConnection::UpdateBackup( return internal::EndSpan(std::move(span), child_->UpdateBackup(request)); } +StatusOr +CloudFilestoreManagerTracingConnection::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFilestoreManagerTracingConnection::UpdateBackup( + google::cloud::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(google::cloud::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..30174c4b59364 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::filestore::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreInstance( google::cloud::filestore::v1::RestoreInstanceRequest const& request) override; + StatusOr RestoreInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request) + override; + + future> RestoreInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RevertInstance( google::cloud::filestore::v1::RevertInstanceRequest const& request) override; + StatusOr RevertInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request) + override; + + future> RevertInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::filestore::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request) + override; + + future> DeleteInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request) + override; + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSnapshot( google::cloud::filestore::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request) + override; + + future> DeleteSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSnapshot( google::cloud::filestore::v1::UpdateSnapshotRequest const& request) override; + StatusOr UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request) + override; + + future> UpdateSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup( google::cloud::filestore::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request) + override; + + future> DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::filestore::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request) + override; + + future> UpdateBackup( + google::cloud::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..4dbcae00a84ff 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::filestore::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreInstance, (google::cloud::filestore::v1::RestoreInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RestoreInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestoreInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RevertInstance, (google::cloud::filestore::v1::RevertInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RevertInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::RevertInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RevertInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::filestore::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSnapshot, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSnapshot, (google::cloud::filestore::v1::DeleteSnapshotRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSnapshot, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSnapshot, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSnapshot, (google::cloud::filestore::v1::UpdateSnapshotRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSnapshot, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSnapshot, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackup, (google::cloud::filestore::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateBackup, (google::cloud::filestore::v1::UpdateBackupRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdateBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::filestore::v1::UpdateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/functions/v1/cloud_functions_client.cc b/google/cloud/functions/v1/cloud_functions_client.cc index 8dbe01ede8988..8fd386d4c2e00 100644 --- a/google/cloud/functions/v1/cloud_functions_client.cc +++ b/google/cloud/functions/v1/cloud_functions_client.cc @@ -67,6 +67,19 @@ CloudFunctionsServiceClient::CreateFunction( return connection_->CreateFunction(request); } +StatusOr +CloudFunctionsServiceClient::CreateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& location, + google::cloud::functions::v1::CloudFunction const& function, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::functions::v1::CreateFunctionRequest request; + request.set_location(location); + *request.mutable_function() = function; + return connection_->CreateFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFunctionsServiceClient::CreateFunction( google::cloud::functions::v1::CreateFunctionRequest const& request, @@ -75,6 +88,25 @@ CloudFunctionsServiceClient::CreateFunction( return connection_->CreateFunction(request); } +StatusOr +CloudFunctionsServiceClient::CreateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFunctionsServiceClient::CreateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFunction(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudFunctionsServiceClient::UpdateFunction( google::cloud::functions::v1::CloudFunction const& function, Options opts) { @@ -84,6 +116,17 @@ CloudFunctionsServiceClient::UpdateFunction( return connection_->UpdateFunction(request); } +StatusOr +CloudFunctionsServiceClient::UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::CloudFunction const& function, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::functions::v1::UpdateFunctionRequest request; + *request.mutable_function() = function; + return connection_->UpdateFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFunctionsServiceClient::UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request, @@ -92,6 +135,25 @@ CloudFunctionsServiceClient::UpdateFunction( return connection_->UpdateFunction(request); } +StatusOr +CloudFunctionsServiceClient::UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFunctionsServiceClient::UpdateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFunction(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudFunctionsServiceClient::DeleteFunction(std::string const& name, Options opts) { @@ -101,6 +163,18 @@ CloudFunctionsServiceClient::DeleteFunction(std::string const& name, return connection_->DeleteFunction(request); } +StatusOr +CloudFunctionsServiceClient::DeleteFunction(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::functions::v1::DeleteFunctionRequest request; + request.set_name(name); + return connection_->DeleteFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudFunctionsServiceClient::DeleteFunction( google::cloud::functions::v1::DeleteFunctionRequest const& request, @@ -109,6 +183,25 @@ CloudFunctionsServiceClient::DeleteFunction( return connection_->DeleteFunction(request); } +StatusOr +CloudFunctionsServiceClient::DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudFunctionsServiceClient::DeleteFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFunction(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr CloudFunctionsServiceClient::CallFunction(std::string const& name, std::string const& data, diff --git a/google/cloud/functions/v1/cloud_functions_client.h b/google/cloud/functions/v1/cloud_functions_client.h index 445e0a1defa61..3e4df3d6e4ba9 100644 --- a/google/cloud/functions/v1/cloud_functions_client.h +++ b/google/cloud/functions/v1/cloud_functions_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FUNCTIONS_V1_CLOUD_FUNCTIONS_CLIENT_H #include "google/cloud/functions/v1/cloud_functions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -224,6 +226,12 @@ class CloudFunctionsServiceClient { google::cloud::functions::v1::CloudFunction const& function, Options opts = {}); + StatusOr CreateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& location, + google::cloud::functions::v1::CloudFunction const& function, + Options opts = {}); + // clang-format off /// /// Creates a new function. If a function with the given name already exists in @@ -264,6 +272,15 @@ class CloudFunctionsServiceClient { google::cloud::functions::v1::CreateFunctionRequest const& request, Options opts = {}); + StatusOr CreateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request, + Options opts = {}); + + future> CreateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates existing function. @@ -297,6 +314,11 @@ class CloudFunctionsServiceClient { google::cloud::functions::v1::CloudFunction const& function, Options opts = {}); + StatusOr UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::CloudFunction const& function, + Options opts = {}); + // clang-format off /// /// Updates existing function. @@ -335,6 +357,15 @@ class CloudFunctionsServiceClient { google::cloud::functions::v1::UpdateFunctionRequest const& request, Options opts = {}); + StatusOr UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request, + Options opts = {}); + + future> UpdateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a function with the given name from the specified project. If the @@ -369,6 +400,10 @@ class CloudFunctionsServiceClient { future> DeleteFunction(std::string const& name, Options opts = {}); + StatusOr DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a function with the given name from the specified project. If the @@ -410,6 +445,16 @@ class CloudFunctionsServiceClient { google::cloud::functions::v1::DeleteFunctionRequest const& request, Options opts = {}); + StatusOr DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request, + Options opts = {}); + + future> + DeleteFunction(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Synchronously invokes a deployed Cloud Function. To be used for testing 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..d5fba6148d92a 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,60 @@ CloudFunctionsServiceConnectionImpl::CreateFunction( polling_policy(*current), __func__); } +StatusOr +CloudFunctionsServiceConnectionImpl::CreateFunction( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +248,60 @@ CloudFunctionsServiceConnectionImpl::UpdateFunction( polling_policy(*current), __func__); } +StatusOr +CloudFunctionsServiceConnectionImpl::UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +341,60 @@ CloudFunctionsServiceConnectionImpl::DeleteFunction( polling_policy(*current), __func__); } +StatusOr +CloudFunctionsServiceConnectionImpl::DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..38ffd1e3b3fd6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request) + override; + + future> CreateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request) override; + StatusOr UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request) + override; + + future> UpdateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFunction(google::cloud::functions::v1::DeleteFunctionRequest const& request) override; + StatusOr DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request) + override; + + future> + DeleteFunction(google::cloud::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..a88ef63138041 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,30 @@ CloudFunctionsServiceTracingConnection::CreateFunction( return internal::EndSpan(std::move(span), child_->CreateFunction(request)); } +StatusOr +CloudFunctionsServiceTracingConnection::CreateFunction( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFunctionsServiceTracingConnection::CreateFunction( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFunctionsServiceTracingConnection::UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request) { @@ -72,6 +96,30 @@ CloudFunctionsServiceTracingConnection::UpdateFunction( return internal::EndSpan(std::move(span), child_->UpdateFunction(request)); } +StatusOr +CloudFunctionsServiceTracingConnection::UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFunctionsServiceTracingConnection::UpdateFunction( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudFunctionsServiceTracingConnection::DeleteFunction( google::cloud::functions::v1::DeleteFunctionRequest const& request) { @@ -81,6 +129,30 @@ CloudFunctionsServiceTracingConnection::DeleteFunction( return internal::EndSpan(std::move(span), child_->DeleteFunction(request)); } +StatusOr +CloudFunctionsServiceTracingConnection::DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudFunctionsServiceTracingConnection::DeleteFunction( + google::cloud::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(google::cloud::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..a3deb9201570c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request) + override; + + future> CreateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFunction( google::cloud::functions::v1::UpdateFunctionRequest const& request) override; + StatusOr UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request) + override; + + future> UpdateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFunction(google::cloud::functions::v1::DeleteFunctionRequest const& request) override; + StatusOr DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request) + override; + + future> + DeleteFunction(google::cloud::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..ac20f57c46ce9 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,55 @@ class MockCloudFunctionsServiceConnection (google::cloud::functions::v1::CreateFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateFunction, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::CreateFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFunction, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFunction, (google::cloud::functions::v1::UpdateFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFunction, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::UpdateFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFunction, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFunction, (google::cloud::functions::v1::DeleteFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFunction, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v1::DeleteFunctionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteFunction, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CallFunction, diff --git a/google/cloud/functions/v2/function_client.cc b/google/cloud/functions/v2/function_client.cc index 5489fd3fe4b87..2966970cf7ae4 100644 --- a/google/cloud/functions/v2/function_client.cc +++ b/google/cloud/functions/v2/function_client.cc @@ -76,6 +76,20 @@ FunctionServiceClient::CreateFunction( return connection_->CreateFunction(request); } +StatusOr FunctionServiceClient::CreateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::functions::v2::Function const& function, + std::string const& function_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::functions::v2::CreateFunctionRequest request; + request.set_parent(parent); + *request.mutable_function() = function; + request.set_function_id(function_id); + return connection_->CreateFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FunctionServiceClient::CreateFunction( google::cloud::functions::v2::CreateFunctionRequest const& request, @@ -84,6 +98,24 @@ FunctionServiceClient::CreateFunction( return connection_->CreateFunction(request); } +StatusOr FunctionServiceClient::CreateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FunctionServiceClient::CreateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFunction(google::cloud::ExperimentalTag{}, + operation); +} + future> FunctionServiceClient::UpdateFunction( google::cloud::functions::v2::Function const& function, @@ -95,6 +127,18 @@ FunctionServiceClient::UpdateFunction( return connection_->UpdateFunction(request); } +StatusOr FunctionServiceClient::UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::Function const& function, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::functions::v2::UpdateFunctionRequest request; + *request.mutable_function() = function; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FunctionServiceClient::UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request, @@ -103,6 +147,24 @@ FunctionServiceClient::UpdateFunction( return connection_->UpdateFunction(request); } +StatusOr FunctionServiceClient::UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FunctionServiceClient::UpdateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFunction(google::cloud::ExperimentalTag{}, + operation); +} + future> FunctionServiceClient::DeleteFunction(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -111,6 +173,16 @@ FunctionServiceClient::DeleteFunction(std::string const& name, Options opts) { return connection_->DeleteFunction(request); } +StatusOr FunctionServiceClient::DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::functions::v2::DeleteFunctionRequest request; + request.set_name(name); + return connection_->DeleteFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FunctionServiceClient::DeleteFunction( google::cloud::functions::v2::DeleteFunctionRequest const& request, @@ -119,6 +191,24 @@ FunctionServiceClient::DeleteFunction( return connection_->DeleteFunction(request); } +StatusOr FunctionServiceClient::DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFunction(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FunctionServiceClient::DeleteFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFunction(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FunctionServiceClient::GenerateUploadUrl( google::cloud::functions::v2::GenerateUploadUrlRequest const& request, diff --git a/google/cloud/functions/v2/function_client.h b/google/cloud/functions/v2/function_client.h index cca2645caf750..41c60d5df9396 100644 --- a/google/cloud/functions/v2/function_client.h +++ b/google/cloud/functions/v2/function_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_FUNCTIONS_V2_FUNCTION_CLIENT_H #include "google/cloud/functions/v2/function_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -270,6 +272,12 @@ class FunctionServiceClient { google::cloud::functions::v2::Function const& function, std::string const& function_id, Options opts = {}); + StatusOr CreateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::functions::v2::Function const& function, + std::string const& function_id, Options opts = {}); + // clang-format off /// /// Creates a new function. If a function with the given name already exists in @@ -310,6 +318,15 @@ class FunctionServiceClient { google::cloud::functions::v2::CreateFunctionRequest const& request, Options opts = {}); + StatusOr CreateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request, + Options opts = {}); + + future> CreateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates existing function. @@ -346,6 +363,11 @@ class FunctionServiceClient { google::cloud::functions::v2::Function const& function, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::Function const& function, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates existing function. @@ -384,6 +406,15 @@ class FunctionServiceClient { google::cloud::functions::v2::UpdateFunctionRequest const& request, Options opts = {}); + StatusOr UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request, + Options opts = {}); + + future> UpdateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a function with the given name from the specified project. If the @@ -418,6 +449,10 @@ class FunctionServiceClient { future> DeleteFunction(std::string const& name, Options opts = {}); + StatusOr DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a function with the given name from the specified project. If the @@ -459,6 +494,16 @@ class FunctionServiceClient { google::cloud::functions::v2::DeleteFunctionRequest const& request, Options opts = {}); + StatusOr DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request, + Options opts = {}); + + future> + DeleteFunction(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns a signed URL for uploading a function source code. 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..7f4e9cc0f2028 100644 --- a/google/cloud/functions/v2/internal/function_connection_impl.cc +++ b/google/cloud/functions/v2/internal/function_connection_impl.cc @@ -153,6 +153,59 @@ FunctionServiceConnectionImpl::CreateFunction( polling_policy(*current), __func__); } +StatusOr +FunctionServiceConnectionImpl::CreateFunction( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +245,59 @@ FunctionServiceConnectionImpl::UpdateFunction( polling_policy(*current), __func__); } +StatusOr +FunctionServiceConnectionImpl::UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +337,60 @@ FunctionServiceConnectionImpl::DeleteFunction( polling_policy(*current), __func__); } +StatusOr +FunctionServiceConnectionImpl::DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..11afa3d1cfb69 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request) + override; + + future> CreateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request) override; + StatusOr UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request) + override; + + future> UpdateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFunction(google::cloud::functions::v2::DeleteFunctionRequest const& request) override; + StatusOr DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request) + override; + + future> + DeleteFunction(google::cloud::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..f10a4b8f6d49a 100644 --- a/google/cloud/functions/v2/internal/function_tracing_connection.cc +++ b/google/cloud/functions/v2/internal/function_tracing_connection.cc @@ -62,6 +62,30 @@ FunctionServiceTracingConnection::CreateFunction( return internal::EndSpan(std::move(span), child_->CreateFunction(request)); } +StatusOr +FunctionServiceTracingConnection::CreateFunction( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FunctionServiceTracingConnection::CreateFunction( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FunctionServiceTracingConnection::UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request) { @@ -71,6 +95,30 @@ FunctionServiceTracingConnection::UpdateFunction( return internal::EndSpan(std::move(span), child_->UpdateFunction(request)); } +StatusOr +FunctionServiceTracingConnection::UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FunctionServiceTracingConnection::UpdateFunction( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FunctionServiceTracingConnection::DeleteFunction( google::cloud::functions::v2::DeleteFunctionRequest const& request) { @@ -80,6 +128,30 @@ FunctionServiceTracingConnection::DeleteFunction( return internal::EndSpan(std::move(span), child_->DeleteFunction(request)); } +StatusOr +FunctionServiceTracingConnection::DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FunctionServiceTracingConnection::DeleteFunction( + google::cloud::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(google::cloud::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..534abf94d747a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request) + override; + + future> CreateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFunction( google::cloud::functions::v2::UpdateFunctionRequest const& request) override; + StatusOr UpdateFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request) + override; + + future> UpdateFunction( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFunction(google::cloud::functions::v2::DeleteFunctionRequest const& request) override; + StatusOr DeleteFunction( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request) + override; + + future> + DeleteFunction(google::cloud::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..7dfad04cc0fd2 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::CreateFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFunction, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFunction, (google::cloud::functions::v2::UpdateFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFunction, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::UpdateFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFunction, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFunction, (google::cloud::functions::v2::DeleteFunctionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFunction, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::functions::v2::DeleteFunctionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFunction, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateUploadUrl, diff --git a/google/cloud/gkebackup/v1/backup_for_gke_client.cc b/google/cloud/gkebackup/v1/backup_for_gke_client.cc index 0dc9e7cb0d9bf..203f5719abe8c 100644 --- a/google/cloud/gkebackup/v1/backup_for_gke_client.cc +++ b/google/cloud/gkebackup/v1/backup_for_gke_client.cc @@ -45,6 +45,20 @@ BackupForGKEClient::CreateBackupPlan( return connection_->CreateBackupPlan(request); } +StatusOr BackupForGKEClient::CreateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkebackup::v1::BackupPlan const& backup_plan, + std::string const& backup_plan_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::CreateBackupPlanRequest request; + request.set_parent(parent); + *request.mutable_backup_plan() = backup_plan; + request.set_backup_plan_id(backup_plan_id); + return connection_->CreateBackupPlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::CreateBackupPlan( google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request, @@ -53,6 +67,24 @@ BackupForGKEClient::CreateBackupPlan( return connection_->CreateBackupPlan(request); } +StatusOr BackupForGKEClient::CreateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackupPlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::CreateBackupPlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackupPlan(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange BackupForGKEClient::ListBackupPlans(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -96,6 +128,18 @@ BackupForGKEClient::UpdateBackupPlan( return connection_->UpdateBackupPlan(request); } +StatusOr BackupForGKEClient::UpdateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::BackupPlan const& backup_plan, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::UpdateBackupPlanRequest request; + *request.mutable_backup_plan() = backup_plan; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateBackupPlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::UpdateBackupPlan( google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request, @@ -104,6 +148,24 @@ BackupForGKEClient::UpdateBackupPlan( return connection_->UpdateBackupPlan(request); } +StatusOr BackupForGKEClient::UpdateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackupPlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::UpdateBackupPlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackupPlan(google::cloud::ExperimentalTag{}, + operation); +} + future> BackupForGKEClient::DeleteBackupPlan(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -112,6 +174,16 @@ BackupForGKEClient::DeleteBackupPlan(std::string const& name, Options opts) { return connection_->DeleteBackupPlan(request); } +StatusOr BackupForGKEClient::DeleteBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::DeleteBackupPlanRequest request; + request.set_name(name); + return connection_->DeleteBackupPlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::DeleteBackupPlan( google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request, @@ -120,6 +192,24 @@ BackupForGKEClient::DeleteBackupPlan( return connection_->DeleteBackupPlan(request); } +StatusOr BackupForGKEClient::DeleteBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackupPlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::DeleteBackupPlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackupPlan(google::cloud::ExperimentalTag{}, + operation); +} + future> BackupForGKEClient::CreateBackup( std::string const& parent, @@ -133,6 +223,20 @@ BackupForGKEClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr BackupForGKEClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkebackup::v1::Backup const& backup, + std::string const& backup_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::CreateBackupRequest request; + request.set_parent(parent); + *request.mutable_backup() = backup; + request.set_backup_id(backup_id); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request, @@ -141,6 +245,23 @@ BackupForGKEClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr BackupForGKEClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, operation); +} + StreamRange BackupForGKEClient::ListBackups(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -182,6 +303,18 @@ BackupForGKEClient::UpdateBackup( return connection_->UpdateBackup(request); } +StatusOr BackupForGKEClient::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::Backup const& backup, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::UpdateBackupRequest request; + *request.mutable_backup() = backup; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::UpdateBackup( google::cloud::gkebackup::v1::UpdateBackupRequest const& request, @@ -190,6 +323,23 @@ BackupForGKEClient::UpdateBackup( return connection_->UpdateBackup(request); } +StatusOr BackupForGKEClient::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, operation); +} + future> BackupForGKEClient::DeleteBackup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -198,6 +348,16 @@ BackupForGKEClient::DeleteBackup(std::string const& name, Options opts) { return connection_->DeleteBackup(request); } +StatusOr BackupForGKEClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::DeleteBackupRequest request; + request.set_name(name); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::DeleteBackup( google::cloud::gkebackup::v1::DeleteBackupRequest const& request, @@ -206,6 +366,23 @@ BackupForGKEClient::DeleteBackup( return connection_->DeleteBackup(request); } +StatusOr BackupForGKEClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, operation); +} + StreamRange BackupForGKEClient::ListVolumeBackups(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -251,6 +428,20 @@ BackupForGKEClient::CreateRestorePlan( return connection_->CreateRestorePlan(request); } +StatusOr BackupForGKEClient::CreateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkebackup::v1::RestorePlan const& restore_plan, + std::string const& restore_plan_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::CreateRestorePlanRequest request; + request.set_parent(parent); + *request.mutable_restore_plan() = restore_plan; + request.set_restore_plan_id(restore_plan_id); + return connection_->CreateRestorePlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::CreateRestorePlan( google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request, @@ -259,6 +450,24 @@ BackupForGKEClient::CreateRestorePlan( return connection_->CreateRestorePlan(request); } +StatusOr BackupForGKEClient::CreateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRestorePlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::CreateRestorePlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRestorePlan(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange BackupForGKEClient::ListRestorePlans(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -302,6 +511,18 @@ BackupForGKEClient::UpdateRestorePlan( return connection_->UpdateRestorePlan(request); } +StatusOr BackupForGKEClient::UpdateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::RestorePlan const& restore_plan, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::UpdateRestorePlanRequest request; + *request.mutable_restore_plan() = restore_plan; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateRestorePlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::UpdateRestorePlan( google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request, @@ -310,6 +531,24 @@ BackupForGKEClient::UpdateRestorePlan( return connection_->UpdateRestorePlan(request); } +StatusOr BackupForGKEClient::UpdateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRestorePlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::UpdateRestorePlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRestorePlan(google::cloud::ExperimentalTag{}, + operation); +} + future> BackupForGKEClient::DeleteRestorePlan(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -318,6 +557,16 @@ BackupForGKEClient::DeleteRestorePlan(std::string const& name, Options opts) { return connection_->DeleteRestorePlan(request); } +StatusOr BackupForGKEClient::DeleteRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::DeleteRestorePlanRequest request; + request.set_name(name); + return connection_->DeleteRestorePlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request, @@ -326,6 +575,24 @@ BackupForGKEClient::DeleteRestorePlan( return connection_->DeleteRestorePlan(request); } +StatusOr BackupForGKEClient::DeleteRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRestorePlan(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::DeleteRestorePlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRestorePlan(google::cloud::ExperimentalTag{}, + operation); +} + future> BackupForGKEClient::CreateRestore( std::string const& parent, @@ -339,6 +606,20 @@ BackupForGKEClient::CreateRestore( return connection_->CreateRestore(request); } +StatusOr BackupForGKEClient::CreateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkebackup::v1::Restore const& restore, + std::string const& restore_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::CreateRestoreRequest request; + request.set_parent(parent); + *request.mutable_restore() = restore; + request.set_restore_id(restore_id); + return connection_->CreateRestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request, @@ -347,6 +628,24 @@ BackupForGKEClient::CreateRestore( return connection_->CreateRestore(request); } +StatusOr BackupForGKEClient::CreateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::CreateRestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRestore(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange BackupForGKEClient::ListRestores(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -388,6 +687,18 @@ BackupForGKEClient::UpdateRestore( return connection_->UpdateRestore(request); } +StatusOr BackupForGKEClient::UpdateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::Restore const& restore, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::UpdateRestoreRequest request; + *request.mutable_restore() = restore; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateRestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::UpdateRestore( google::cloud::gkebackup::v1::UpdateRestoreRequest const& request, @@ -396,6 +707,24 @@ BackupForGKEClient::UpdateRestore( return connection_->UpdateRestore(request); } +StatusOr BackupForGKEClient::UpdateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::UpdateRestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRestore(google::cloud::ExperimentalTag{}, + operation); +} + future> BackupForGKEClient::DeleteRestore(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -404,6 +733,16 @@ BackupForGKEClient::DeleteRestore(std::string const& name, Options opts) { return connection_->DeleteRestore(request); } +StatusOr BackupForGKEClient::DeleteRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkebackup::v1::DeleteRestoreRequest request; + request.set_name(name); + return connection_->DeleteRestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> BackupForGKEClient::DeleteRestore( google::cloud::gkebackup::v1::DeleteRestoreRequest const& request, @@ -412,6 +751,24 @@ BackupForGKEClient::DeleteRestore( return connection_->DeleteRestore(request); } +StatusOr BackupForGKEClient::DeleteRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRestore(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +BackupForGKEClient::DeleteRestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRestore(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange BackupForGKEClient::ListVolumeRestores(std::string const& parent, Options opts) { diff --git a/google/cloud/gkebackup/v1/backup_for_gke_client.h b/google/cloud/gkebackup/v1/backup_for_gke_client.h index f4319c6c96147..1f1e8160b25a3 100644 --- a/google/cloud/gkebackup/v1/backup_for_gke_client.h +++ b/google/cloud/gkebackup/v1/backup_for_gke_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_GKEBACKUP_V1_BACKUP_FOR_GKE_CLIENT_H #include "google/cloud/gkebackup/v1/backup_for_gke_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -132,6 +134,12 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::BackupPlan const& backup_plan, std::string const& backup_plan_id, Options opts = {}); + StatusOr CreateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkebackup::v1::BackupPlan const& backup_plan, + std::string const& backup_plan_id, Options opts = {}); + // clang-format off /// /// Creates a new BackupPlan in a given location. @@ -170,6 +178,15 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request, Options opts = {}); + StatusOr CreateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request, + Options opts = {}); + + future> CreateBackupPlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists BackupPlans in a given location. @@ -345,6 +362,11 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::BackupPlan const& backup_plan, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::BackupPlan const& backup_plan, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a BackupPlan. @@ -383,6 +405,15 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request, Options opts = {}); + StatusOr UpdateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request, + Options opts = {}); + + future> UpdateBackupPlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an existing BackupPlan. @@ -416,6 +447,10 @@ class BackupForGKEClient { future> DeleteBackupPlan(std::string const& name, Options opts = {}); + StatusOr DeleteBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an existing BackupPlan. @@ -455,6 +490,16 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request, Options opts = {}); + StatusOr DeleteBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request, + Options opts = {}); + + future> + DeleteBackupPlan(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a Backup for the given BackupPlan. @@ -499,6 +544,12 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::Backup const& backup, std::string const& backup_id, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkebackup::v1::Backup const& backup, + std::string const& backup_id, Options opts = {}); + // clang-format off /// /// Creates a Backup for the given BackupPlan. @@ -537,6 +588,15 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::CreateBackupRequest const& request, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request, + Options opts = {}); + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists the Backups for a given BackupPlan. @@ -711,6 +771,11 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::Backup const& backup, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::Backup const& backup, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a Backup. @@ -749,6 +814,15 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::UpdateBackupRequest const& request, Options opts = {}); + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request, + Options opts = {}); + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an existing Backup. @@ -782,6 +856,10 @@ class BackupForGKEClient { future> DeleteBackup(std::string const& name, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an existing Backup. @@ -820,6 +898,16 @@ class BackupForGKEClient { DeleteBackup(google::cloud::gkebackup::v1::DeleteBackupRequest const& request, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request, + Options opts = {}); + + future> + DeleteBackup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the VolumeBackups for a given Backup. @@ -996,6 +1084,12 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::RestorePlan const& restore_plan, std::string const& restore_plan_id, Options opts = {}); + StatusOr CreateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkebackup::v1::RestorePlan const& restore_plan, + std::string const& restore_plan_id, Options opts = {}); + // clang-format off /// /// Creates a new RestorePlan in a given location. @@ -1034,6 +1128,15 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request, Options opts = {}); + StatusOr CreateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request, + Options opts = {}); + + future> CreateRestorePlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists RestorePlans in a given location. @@ -1208,6 +1311,11 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::RestorePlan const& restore_plan, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::RestorePlan const& restore_plan, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a RestorePlan. @@ -1246,6 +1354,15 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request, Options opts = {}); + StatusOr UpdateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request, + Options opts = {}); + + future> UpdateRestorePlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an existing RestorePlan. @@ -1279,6 +1396,10 @@ class BackupForGKEClient { future> DeleteRestorePlan(std::string const& name, Options opts = {}); + StatusOr DeleteRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an existing RestorePlan. @@ -1318,6 +1439,16 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request, Options opts = {}); + StatusOr DeleteRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request, + Options opts = {}); + + future> + DeleteRestorePlan(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new Restore for the given RestorePlan. @@ -1362,6 +1493,12 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::Restore const& restore, std::string const& restore_id, Options opts = {}); + StatusOr CreateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkebackup::v1::Restore const& restore, + std::string const& restore_id, Options opts = {}); + // clang-format off /// /// Creates a new Restore for the given RestorePlan. @@ -1400,6 +1537,15 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::CreateRestoreRequest const& request, Options opts = {}); + StatusOr CreateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request, + Options opts = {}); + + future> CreateRestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists the Restores for a given RestorePlan. @@ -1574,6 +1720,11 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::Restore const& restore, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::Restore const& restore, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a Restore. @@ -1612,6 +1763,15 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::UpdateRestoreRequest const& request, Options opts = {}); + StatusOr UpdateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request, + Options opts = {}); + + future> UpdateRestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes an existing Restore. @@ -1645,6 +1805,10 @@ class BackupForGKEClient { future> DeleteRestore(std::string const& name, Options opts = {}); + StatusOr DeleteRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an existing Restore. @@ -1684,6 +1848,16 @@ class BackupForGKEClient { google::cloud::gkebackup::v1::DeleteRestoreRequest const& request, Options opts = {}); + StatusOr DeleteRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request, + Options opts = {}); + + future> + DeleteRestore(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the VolumeRestores for a given Restore. 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..d1123f111c840 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,60 @@ BackupForGKEConnectionImpl::CreateBackupPlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::CreateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +247,60 @@ BackupForGKEConnectionImpl::UpdateBackupPlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::UpdateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +341,60 @@ BackupForGKEConnectionImpl::DeleteBackupPlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::DeleteBackupPlan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +434,58 @@ BackupForGKEConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +573,58 @@ BackupForGKEConnectionImpl::UpdateBackup( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +664,59 @@ BackupForGKEConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +806,60 @@ BackupForGKEConnectionImpl::CreateRestorePlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::CreateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +949,60 @@ BackupForGKEConnectionImpl::UpdateRestorePlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::UpdateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1043,60 @@ BackupForGKEConnectionImpl::DeleteRestorePlan( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::DeleteRestorePlan( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1136,59 @@ BackupForGKEConnectionImpl::CreateRestore( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::CreateRestore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1276,59 @@ BackupForGKEConnectionImpl::UpdateRestore( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::UpdateRestore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1368,60 @@ BackupForGKEConnectionImpl::DeleteRestore( polling_policy(*current), __func__); } +StatusOr +BackupForGKEConnectionImpl::DeleteRestore( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..44702cb0f72b1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request) + override; + + future> CreateBackupPlan( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request) + override; + + future> UpdateBackupPlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupPlan(google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) override; + StatusOr DeleteBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) + override; + + future> + DeleteBackupPlan(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request) + override; + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup(google::cloud::gkebackup::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request) + override; + + future> + DeleteBackup(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request) + override; + + future> CreateRestorePlan( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request) + override; + + future> UpdateRestorePlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) override; + StatusOr DeleteRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) + override; + + future> + DeleteRestorePlan(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request) override; + StatusOr CreateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request) + override; + + future> CreateRestore( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) + override; + + future> UpdateRestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRestore(google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) override; + StatusOr DeleteRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) + override; + + future> + DeleteRestore(google::cloud::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..e70a32f95641a 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,30 @@ BackupForGKETracingConnection::CreateBackupPlan( return internal::EndSpan(std::move(span), child_->CreateBackupPlan(request)); } +StatusOr +BackupForGKETracingConnection::CreateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::CreateBackupPlan( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListBackupPlans( google::cloud::gkebackup::v1::ListBackupPlansRequest request) { @@ -71,6 +95,30 @@ BackupForGKETracingConnection::UpdateBackupPlan( return internal::EndSpan(std::move(span), child_->UpdateBackupPlan(request)); } +StatusOr +BackupForGKETracingConnection::UpdateBackupPlan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::UpdateBackupPlan( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::DeleteBackupPlan( google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) { @@ -80,6 +128,30 @@ BackupForGKETracingConnection::DeleteBackupPlan( return internal::EndSpan(std::move(span), child_->DeleteBackupPlan(request)); } +StatusOr +BackupForGKETracingConnection::DeleteBackupPlan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::DeleteBackupPlan( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request) { @@ -89,6 +161,30 @@ BackupForGKETracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +BackupForGKETracingConnection::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::CreateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListBackups( google::cloud::gkebackup::v1::ListBackupsRequest request) { @@ -118,6 +214,30 @@ BackupForGKETracingConnection::UpdateBackup( return internal::EndSpan(std::move(span), child_->UpdateBackup(request)); } +StatusOr +BackupForGKETracingConnection::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::UpdateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::DeleteBackup( google::cloud::gkebackup::v1::DeleteBackupRequest const& request) { @@ -127,6 +247,30 @@ BackupForGKETracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr +BackupForGKETracingConnection::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::DeleteBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListVolumeBackups( google::cloud::gkebackup::v1::ListVolumeBackupsRequest request) { @@ -157,6 +301,30 @@ BackupForGKETracingConnection::CreateRestorePlan( return internal::EndSpan(std::move(span), child_->CreateRestorePlan(request)); } +StatusOr +BackupForGKETracingConnection::CreateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::CreateRestorePlan( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListRestorePlans( google::cloud::gkebackup::v1::ListRestorePlansRequest request) { @@ -187,6 +355,30 @@ BackupForGKETracingConnection::UpdateRestorePlan( return internal::EndSpan(std::move(span), child_->UpdateRestorePlan(request)); } +StatusOr +BackupForGKETracingConnection::UpdateRestorePlan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::UpdateRestorePlan( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) { @@ -196,6 +388,30 @@ BackupForGKETracingConnection::DeleteRestorePlan( return internal::EndSpan(std::move(span), child_->DeleteRestorePlan(request)); } +StatusOr +BackupForGKETracingConnection::DeleteRestorePlan( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::DeleteRestorePlan( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request) { @@ -205,6 +421,30 @@ BackupForGKETracingConnection::CreateRestore( return internal::EndSpan(std::move(span), child_->CreateRestore(request)); } +StatusOr +BackupForGKETracingConnection::CreateRestore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::CreateRestore( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange BackupForGKETracingConnection::ListRestores( google::cloud::gkebackup::v1::ListRestoresRequest request) { @@ -234,6 +474,30 @@ BackupForGKETracingConnection::UpdateRestore( return internal::EndSpan(std::move(span), child_->UpdateRestore(request)); } +StatusOr +BackupForGKETracingConnection::UpdateRestore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::UpdateRestore( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> BackupForGKETracingConnection::DeleteRestore( google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) { @@ -243,6 +507,30 @@ BackupForGKETracingConnection::DeleteRestore( return internal::EndSpan(std::move(span), child_->DeleteRestore(request)); } +StatusOr +BackupForGKETracingConnection::DeleteRestore( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +BackupForGKETracingConnection::DeleteRestore( + google::cloud::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(google::cloud::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..432b418e5c1b5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request) + override; + + future> CreateBackupPlan( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request) + override; + + future> UpdateBackupPlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupPlan(google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) override; + StatusOr DeleteBackupPlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request) + override; + + future> + DeleteBackupPlan(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackup( google::cloud::gkebackup::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request) + override; + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup(google::cloud::gkebackup::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request) + override; + + future> + DeleteBackup(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request) + override; + + future> CreateRestorePlan( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request) + override; + + future> UpdateRestorePlan( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRestorePlan( google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) override; + StatusOr DeleteRestorePlan( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request) + override; + + future> + DeleteRestorePlan(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateRestore( google::cloud::gkebackup::v1::CreateRestoreRequest const& request) override; + StatusOr CreateRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request) + override; + + future> CreateRestore( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request) + override; + + future> UpdateRestore( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRestore(google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) override; + StatusOr DeleteRestore( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request) + override; + + future> + DeleteRestore(google::cloud::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..d1b86a900def5 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupPlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackupPlan, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupPlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackupPlan, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackupPlan, (google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackupPlan, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupPlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackupPlan, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateBackup, (google::cloud::gkebackup::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackup, (google::cloud::gkebackup::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestorePlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRestorePlan, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestorePlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRestorePlan, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRestorePlan, (google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRestorePlan, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestorePlanRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRestorePlan, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateRestore, (google::cloud::gkebackup::v1::CreateRestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateRestore, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::CreateRestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRestore, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::UpdateRestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRestore, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRestore, (google::cloud::gkebackup::v1::DeleteRestoreRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRestore, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkebackup::v1::DeleteRestoreRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRestore, + (google::cloud::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_client.cc b/google/cloud/gkehub/v1/gke_hub_client.cc index db6e32421bcb0..b031f56e9b59f 100644 --- a/google/cloud/gkehub/v1/gke_hub_client.cc +++ b/google/cloud/gkehub/v1/gke_hub_client.cc @@ -103,6 +103,20 @@ GkeHubClient::CreateMembership( return connection_->CreateMembership(request); } +StatusOr GkeHubClient::CreateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkehub::v1::Membership const& resource, + std::string const& membership_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkehub::v1::CreateMembershipRequest request; + request.set_parent(parent); + *request.mutable_resource() = resource; + request.set_membership_id(membership_id); + return connection_->CreateMembership(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GkeHubClient::CreateMembership( google::cloud::gkehub::v1::CreateMembershipRequest const& request, @@ -111,6 +125,24 @@ GkeHubClient::CreateMembership( return connection_->CreateMembership(request); } +StatusOr GkeHubClient::CreateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMembership(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GkeHubClient::CreateMembership(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMembership(google::cloud::ExperimentalTag{}, + operation); +} + future> GkeHubClient::CreateFeature(std::string const& parent, google::cloud::gkehub::v1::Feature const& resource, @@ -123,6 +155,20 @@ GkeHubClient::CreateFeature(std::string const& parent, return connection_->CreateFeature(request); } +StatusOr GkeHubClient::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkehub::v1::Feature const& resource, + std::string const& feature_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkehub::v1::CreateFeatureRequest request; + request.set_parent(parent); + *request.mutable_resource() = resource; + request.set_feature_id(feature_id); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GkeHubClient::CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request, @@ -131,6 +177,24 @@ GkeHubClient::CreateFeature( return connection_->CreateFeature(request); } +StatusOr GkeHubClient::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GkeHubClient::CreateFeature(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFeature(google::cloud::ExperimentalTag{}, + operation); +} + future> GkeHubClient::DeleteMembership(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -139,6 +203,16 @@ GkeHubClient::DeleteMembership(std::string const& name, Options opts) { return connection_->DeleteMembership(request); } +StatusOr GkeHubClient::DeleteMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkehub::v1::DeleteMembershipRequest request; + request.set_name(name); + return connection_->DeleteMembership(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GkeHubClient::DeleteMembership( google::cloud::gkehub::v1::DeleteMembershipRequest const& request, @@ -147,6 +221,24 @@ GkeHubClient::DeleteMembership( return connection_->DeleteMembership(request); } +StatusOr GkeHubClient::DeleteMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMembership(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GkeHubClient::DeleteMembership(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMembership(google::cloud::ExperimentalTag{}, + operation); +} + future> GkeHubClient::DeleteFeature(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -155,6 +247,16 @@ GkeHubClient::DeleteFeature(std::string const& name, Options opts) { return connection_->DeleteFeature(request); } +StatusOr GkeHubClient::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkehub::v1::DeleteFeatureRequest request; + request.set_name(name); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GkeHubClient::DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const& request, @@ -163,6 +265,24 @@ GkeHubClient::DeleteFeature( return connection_->DeleteFeature(request); } +StatusOr GkeHubClient::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GkeHubClient::DeleteFeature(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFeature(google::cloud::ExperimentalTag{}, + operation); +} + future> GkeHubClient::UpdateMembership( std::string const& name, @@ -176,6 +296,20 @@ GkeHubClient::UpdateMembership( return connection_->UpdateMembership(request); } +StatusOr GkeHubClient::UpdateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::gkehub::v1::Membership const& resource, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkehub::v1::UpdateMembershipRequest request; + request.set_name(name); + *request.mutable_resource() = resource; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateMembership(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GkeHubClient::UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request, @@ -184,6 +318,24 @@ GkeHubClient::UpdateMembership( return connection_->UpdateMembership(request); } +StatusOr GkeHubClient::UpdateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMembership(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GkeHubClient::UpdateMembership(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMembership(google::cloud::ExperimentalTag{}, + operation); +} + future> GkeHubClient::UpdateFeature(std::string const& name, google::cloud::gkehub::v1::Feature const& resource, @@ -197,6 +349,19 @@ GkeHubClient::UpdateFeature(std::string const& name, return connection_->UpdateFeature(request); } +StatusOr GkeHubClient::UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, google::cloud::gkehub::v1::Feature const& resource, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkehub::v1::UpdateFeatureRequest request; + request.set_name(name); + *request.mutable_resource() = resource; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> GkeHubClient::UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request, @@ -205,6 +370,24 @@ GkeHubClient::UpdateFeature( return connection_->UpdateFeature(request); } +StatusOr GkeHubClient::UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeature(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +GkeHubClient::UpdateFeature(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFeature(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr GkeHubClient::GenerateConnectManifest( google::cloud::gkehub::v1::GenerateConnectManifestRequest const& request, diff --git a/google/cloud/gkehub/v1/gke_hub_client.h b/google/cloud/gkehub/v1/gke_hub_client.h index 6ef2369003edb..3492152a748b0 100644 --- a/google/cloud/gkehub/v1/gke_hub_client.h +++ b/google/cloud/gkehub/v1/gke_hub_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_GKEHUB_V1_GKE_HUB_CLIENT_H #include "google/cloud/gkehub/v1/gke_hub_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -420,6 +422,12 @@ class GkeHubClient { google::cloud::gkehub::v1::Membership const& resource, std::string const& membership_id, Options opts = {}); + StatusOr CreateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkehub::v1::Membership const& resource, + std::string const& membership_id, Options opts = {}); + // clang-format off /// /// Creates a new Membership. @@ -462,6 +470,15 @@ class GkeHubClient { google::cloud::gkehub::v1::CreateMembershipRequest const& request, Options opts = {}); + StatusOr CreateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request, + Options opts = {}); + + future> CreateMembership( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Adds a new Feature. @@ -499,6 +516,12 @@ class GkeHubClient { google::cloud::gkehub::v1::Feature const& resource, std::string const& feature_id, Options opts = {}); + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkehub::v1::Feature const& resource, + std::string const& feature_id, Options opts = {}); + // clang-format off /// /// Adds a new Feature. @@ -537,6 +560,15 @@ class GkeHubClient { google::cloud::gkehub::v1::CreateFeatureRequest const& request, Options opts = {}); + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request, + Options opts = {}); + + future> CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Removes a Membership. @@ -574,6 +606,10 @@ class GkeHubClient { future> DeleteMembership(std::string const& name, Options opts = {}); + StatusOr DeleteMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Removes a Membership. @@ -617,6 +653,16 @@ class GkeHubClient { google::cloud::gkehub::v1::DeleteMembershipRequest const& request, Options opts = {}); + StatusOr DeleteMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request, + Options opts = {}); + + future> + DeleteMembership(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes a Feature. @@ -650,6 +696,10 @@ class GkeHubClient { future> DeleteFeature( std::string const& name, Options opts = {}); + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Removes a Feature. @@ -688,6 +738,15 @@ class GkeHubClient { google::cloud::gkehub::v1::DeleteFeatureRequest const& request, Options opts = {}); + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request, + Options opts = {}); + + future> DeleteFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates an existing Membership. @@ -732,6 +791,12 @@ class GkeHubClient { google::cloud::gkehub::v1::Membership const& resource, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::gkehub::v1::Membership const& resource, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an existing Membership. @@ -770,6 +835,15 @@ class GkeHubClient { google::cloud::gkehub::v1::UpdateMembershipRequest const& request, Options opts = {}); + StatusOr UpdateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request, + Options opts = {}); + + future> UpdateMembership( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates an existing Feature. @@ -814,6 +888,12 @@ class GkeHubClient { google::cloud::gkehub::v1::Feature const& resource, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::gkehub::v1::Feature const& resource, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an existing Feature. @@ -852,6 +932,15 @@ class GkeHubClient { google::cloud::gkehub::v1::UpdateFeatureRequest const& request, Options opts = {}); + StatusOr UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request, + Options opts = {}); + + future> UpdateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Generates the manifest for deployment of the GKE connect agent. 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..9946b2eb3ede9 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,58 @@ GkeHubConnectionImpl::CreateMembership( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::CreateMembership( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +287,57 @@ GkeHubConnectionImpl::CreateFeature( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +377,59 @@ GkeHubConnectionImpl::DeleteMembership( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::DeleteMembership( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +469,58 @@ GkeHubConnectionImpl::DeleteFeature( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +560,58 @@ GkeHubConnectionImpl::UpdateMembership( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::UpdateMembership( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +651,57 @@ GkeHubConnectionImpl::UpdateFeature( polling_policy(*current), __func__); } +StatusOr GkeHubConnectionImpl::UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..17dce9d5f3cea 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request) + override; + + future> CreateMembership( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request) override; + + future> CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMembership(google::cloud::gkehub::v1::DeleteMembershipRequest const& request) override; + StatusOr DeleteMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request) + override; + + future> + DeleteMembership(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request) override; + + future> DeleteFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request) override; + StatusOr UpdateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request) + override; + + future> UpdateMembership( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request) override; + StatusOr UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request) override; + + future> UpdateFeature( + google::cloud::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..0554e94a53a62 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,30 @@ GkeHubTracingConnection::CreateMembership( return internal::EndSpan(std::move(span), child_->CreateMembership(request)); } +StatusOr +GkeHubTracingConnection::CreateMembership( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::CreateMembership( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request) { @@ -87,6 +111,27 @@ GkeHubTracingConnection::CreateFeature( return internal::EndSpan(std::move(span), child_->CreateFeature(request)); } +StatusOr GkeHubTracingConnection::CreateFeature( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::CreateFeature( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::DeleteMembership( google::cloud::gkehub::v1::DeleteMembershipRequest const& request) { @@ -96,6 +141,30 @@ GkeHubTracingConnection::DeleteMembership( return internal::EndSpan(std::move(span), child_->DeleteMembership(request)); } +StatusOr +GkeHubTracingConnection::DeleteMembership( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::DeleteMembership( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const& request) { @@ -104,6 +173,27 @@ GkeHubTracingConnection::DeleteFeature( return internal::EndSpan(std::move(span), child_->DeleteFeature(request)); } +StatusOr GkeHubTracingConnection::DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::DeleteFeature( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request) { @@ -113,6 +203,30 @@ GkeHubTracingConnection::UpdateMembership( return internal::EndSpan(std::move(span), child_->UpdateMembership(request)); } +StatusOr +GkeHubTracingConnection::UpdateMembership( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::UpdateMembership( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> GkeHubTracingConnection::UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request) { @@ -121,6 +235,27 @@ GkeHubTracingConnection::UpdateFeature( return internal::EndSpan(std::move(span), child_->UpdateFeature(request)); } +StatusOr GkeHubTracingConnection::UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +GkeHubTracingConnection::UpdateFeature( + google::cloud::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(google::cloud::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..9fef83fd3edfc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request) + override; + + future> CreateMembership( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateFeature( google::cloud::gkehub::v1::CreateFeatureRequest const& request) override; + StatusOr CreateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request) override; + + future> CreateFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMembership(google::cloud::gkehub::v1::DeleteMembershipRequest const& request) override; + StatusOr DeleteMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request) + override; + + future> + DeleteMembership(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFeature( google::cloud::gkehub::v1::DeleteFeatureRequest const& request) override; + StatusOr DeleteFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request) override; + + future> DeleteFeature( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMembership( google::cloud::gkehub::v1::UpdateMembershipRequest const& request) override; + StatusOr UpdateMembership( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request) + override; + + future> UpdateMembership( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFeature( google::cloud::gkehub::v1::UpdateFeatureRequest const& request) override; + StatusOr UpdateFeature( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request) override; + + future> UpdateFeature( + google::cloud::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..fe3ae5c4a961e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateMembershipRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMembership, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateFeature, (google::cloud::gkehub::v1::CreateFeatureRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateFeature, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::CreateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFeature, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMembership, (google::cloud::gkehub::v1::DeleteMembershipRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteMembership, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteMembershipRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteMembership, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteFeature, (google::cloud::gkehub::v1::DeleteFeatureRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteFeature, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::DeleteFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFeature, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateMembership, (google::cloud::gkehub::v1::UpdateMembershipRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateMembership, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateMembershipRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateMembership, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateFeature, (google::cloud::gkehub::v1::UpdateFeatureRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateFeature, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkehub::v1::UpdateFeatureRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFeature, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateConnectManifest, diff --git a/google/cloud/gkemulticloud/v1/attached_clusters_client.cc b/google/cloud/gkemulticloud/v1/attached_clusters_client.cc index 63c5590e51a11..ed11138797460 100644 --- a/google/cloud/gkemulticloud/v1/attached_clusters_client.cc +++ b/google/cloud/gkemulticloud/v1/attached_clusters_client.cc @@ -45,6 +45,21 @@ AttachedClustersClient::CreateAttachedCluster( return connection_->CreateAttachedCluster(request); } +StatusOr +AttachedClustersClient::CreateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AttachedCluster const& attached_cluster, + std::string const& attached_cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest request; + request.set_parent(parent); + *request.mutable_attached_cluster() = attached_cluster; + request.set_attached_cluster_id(attached_cluster_id); + return connection_->CreateAttachedCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AttachedClustersClient::CreateAttachedCluster( google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& @@ -54,6 +69,26 @@ AttachedClustersClient::CreateAttachedCluster( return connection_->CreateAttachedCluster(request); } +StatusOr +AttachedClustersClient::CreateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAttachedCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AttachedClustersClient::CreateAttachedCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAttachedCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AttachedClustersClient::UpdateAttachedCluster( google::cloud::gkemulticloud::v1::AttachedCluster const& attached_cluster, @@ -65,6 +100,19 @@ AttachedClustersClient::UpdateAttachedCluster( return connection_->UpdateAttachedCluster(request); } +StatusOr +AttachedClustersClient::UpdateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AttachedCluster const& attached_cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest request; + *request.mutable_attached_cluster() = attached_cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAttachedCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AttachedClustersClient::UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& @@ -74,6 +122,26 @@ AttachedClustersClient::UpdateAttachedCluster( return connection_->UpdateAttachedCluster(request); } +StatusOr +AttachedClustersClient::UpdateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAttachedCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AttachedClustersClient::UpdateAttachedCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAttachedCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AttachedClustersClient::ImportAttachedCluster( std::string const& parent, std::string const& fleet_membership, @@ -85,6 +153,19 @@ AttachedClustersClient::ImportAttachedCluster( return connection_->ImportAttachedCluster(request); } +StatusOr +AttachedClustersClient::ImportAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& fleet_membership, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest request; + request.set_parent(parent); + request.set_fleet_membership(fleet_membership); + return connection_->ImportAttachedCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AttachedClustersClient::ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& @@ -94,6 +175,26 @@ AttachedClustersClient::ImportAttachedCluster( return connection_->ImportAttachedCluster(request); } +StatusOr +AttachedClustersClient::ImportAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportAttachedCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AttachedClustersClient::ImportAttachedCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportAttachedCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AttachedClustersClient::GetAttachedCluster(std::string const& name, Options opts) { @@ -137,6 +238,18 @@ AttachedClustersClient::DeleteAttachedCluster(std::string const& name, return connection_->DeleteAttachedCluster(request); } +StatusOr +AttachedClustersClient::DeleteAttachedCluster(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest request; + request.set_name(name); + return connection_->DeleteAttachedCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AttachedClustersClient::DeleteAttachedCluster( google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& @@ -146,6 +259,26 @@ AttachedClustersClient::DeleteAttachedCluster( return connection_->DeleteAttachedCluster(request); } +StatusOr +AttachedClustersClient::DeleteAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAttachedCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AttachedClustersClient::DeleteAttachedCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAttachedCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AttachedClustersClient::GetAttachedServerConfig(std::string const& name, Options opts) { diff --git a/google/cloud/gkemulticloud/v1/attached_clusters_client.h b/google/cloud/gkemulticloud/v1/attached_clusters_client.h index 457723e683313..891c06ee2450a 100644 --- a/google/cloud/gkemulticloud/v1/attached_clusters_client.h +++ b/google/cloud/gkemulticloud/v1/attached_clusters_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_GKEMULTICLOUD_V1_ATTACHED_CLUSTERS_CLIENT_H #include "google/cloud/gkemulticloud/v1/attached_clusters_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -150,6 +152,12 @@ class AttachedClustersClient { google::cloud::gkemulticloud::v1::AttachedCluster const& attached_cluster, std::string const& attached_cluster_id, Options opts = {}); + StatusOr CreateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AttachedCluster const& attached_cluster, + std::string const& attached_cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new @@ -197,6 +205,17 @@ class AttachedClustersClient { request, Options opts = {}); + StatusOr CreateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request, + Options opts = {}); + + future> + CreateAttachedCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an @@ -249,6 +268,11 @@ class AttachedClustersClient { google::cloud::gkemulticloud::v1::AttachedCluster const& attached_cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AttachedCluster const& attached_cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an @@ -290,6 +314,17 @@ class AttachedClustersClient { request, Options opts = {}); + StatusOr UpdateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request, + Options opts = {}); + + future> + UpdateAttachedCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Imports creates a new @@ -341,6 +376,11 @@ class AttachedClustersClient { ImportAttachedCluster(std::string const& parent, std::string const& fleet_membership, Options opts = {}); + StatusOr ImportAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& fleet_membership, + Options opts = {}); + // clang-format off /// /// Imports creates a new @@ -391,6 +431,17 @@ class AttachedClustersClient { request, Options opts = {}); + StatusOr ImportAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request, + Options opts = {}); + + future> + ImportAttachedCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Describes a specific @@ -588,6 +639,10 @@ class AttachedClustersClient { future> DeleteAttachedCluster(std::string const& name, Options opts = {}); + StatusOr DeleteAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific @@ -635,6 +690,17 @@ class AttachedClustersClient { request, Options opts = {}); + StatusOr DeleteAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request, + Options opts = {}); + + future> + DeleteAttachedCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns information, such as supported Kubernetes versions, on a given 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_client.cc b/google/cloud/gkemulticloud/v1/aws_clusters_client.cc index 88a8d32d96533..f75fc5c9a3415 100644 --- a/google/cloud/gkemulticloud/v1/aws_clusters_client.cc +++ b/google/cloud/gkemulticloud/v1/aws_clusters_client.cc @@ -45,6 +45,20 @@ AwsClustersClient::CreateAwsCluster( return connection_->CreateAwsCluster(request); } +StatusOr AwsClustersClient::CreateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AwsCluster const& aws_cluster, + std::string const& aws_cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest request; + request.set_parent(parent); + *request.mutable_aws_cluster() = aws_cluster; + request.set_aws_cluster_id(aws_cluster_id); + return connection_->CreateAwsCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AwsClustersClient::CreateAwsCluster( google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request, @@ -53,6 +67,24 @@ AwsClustersClient::CreateAwsCluster( return connection_->CreateAwsCluster(request); } +StatusOr AwsClustersClient::CreateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAwsCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AwsClustersClient::CreateAwsCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAwsCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AwsClustersClient::UpdateAwsCluster( google::cloud::gkemulticloud::v1::AwsCluster const& aws_cluster, @@ -64,6 +96,18 @@ AwsClustersClient::UpdateAwsCluster( return connection_->UpdateAwsCluster(request); } +StatusOr AwsClustersClient::UpdateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AwsCluster const& aws_cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest request; + *request.mutable_aws_cluster() = aws_cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAwsCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AwsClustersClient::UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request, @@ -72,6 +116,24 @@ AwsClustersClient::UpdateAwsCluster( return connection_->UpdateAwsCluster(request); } +StatusOr AwsClustersClient::UpdateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAwsCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AwsClustersClient::UpdateAwsCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAwsCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AwsClustersClient::GetAwsCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -112,6 +174,16 @@ AwsClustersClient::DeleteAwsCluster(std::string const& name, Options opts) { return connection_->DeleteAwsCluster(request); } +StatusOr AwsClustersClient::DeleteAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest request; + request.set_name(name); + return connection_->DeleteAwsCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AwsClustersClient::DeleteAwsCluster( google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request, @@ -120,6 +192,24 @@ AwsClustersClient::DeleteAwsCluster( return connection_->DeleteAwsCluster(request); } +StatusOr AwsClustersClient::DeleteAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAwsCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AwsClustersClient::DeleteAwsCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAwsCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AwsClustersClient::GenerateAwsClusterAgentToken( google::cloud::gkemulticloud::v1::GenerateAwsClusterAgentTokenRequest const& @@ -151,6 +241,20 @@ AwsClustersClient::CreateAwsNodePool( return connection_->CreateAwsNodePool(request); } +StatusOr AwsClustersClient::CreateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AwsNodePool const& aws_node_pool, + std::string const& aws_node_pool_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest request; + request.set_parent(parent); + *request.mutable_aws_node_pool() = aws_node_pool; + request.set_aws_node_pool_id(aws_node_pool_id); + return connection_->CreateAwsNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AwsClustersClient::CreateAwsNodePool( google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request, @@ -159,6 +263,24 @@ AwsClustersClient::CreateAwsNodePool( return connection_->CreateAwsNodePool(request); } +StatusOr AwsClustersClient::CreateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAwsNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AwsClustersClient::CreateAwsNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAwsNodePool(google::cloud::ExperimentalTag{}, + operation); +} + future> AwsClustersClient::UpdateAwsNodePool( google::cloud::gkemulticloud::v1::AwsNodePool const& aws_node_pool, @@ -170,6 +292,18 @@ AwsClustersClient::UpdateAwsNodePool( return connection_->UpdateAwsNodePool(request); } +StatusOr AwsClustersClient::UpdateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AwsNodePool const& aws_node_pool, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest request; + *request.mutable_aws_node_pool() = aws_node_pool; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAwsNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AwsClustersClient::UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request, @@ -178,6 +312,24 @@ AwsClustersClient::UpdateAwsNodePool( return connection_->UpdateAwsNodePool(request); } +StatusOr AwsClustersClient::UpdateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAwsNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AwsClustersClient::UpdateAwsNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAwsNodePool(google::cloud::ExperimentalTag{}, + operation); +} + future> AwsClustersClient::RollbackAwsNodePoolUpdate(std::string const& name, Options opts) { @@ -187,6 +339,18 @@ AwsClustersClient::RollbackAwsNodePoolUpdate(std::string const& name, return connection_->RollbackAwsNodePoolUpdate(request); } +StatusOr +AwsClustersClient::RollbackAwsNodePoolUpdate(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest request; + request.set_name(name); + return connection_->RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> AwsClustersClient::RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& @@ -196,6 +360,26 @@ AwsClustersClient::RollbackAwsNodePoolUpdate( return connection_->RollbackAwsNodePoolUpdate(request); } +StatusOr +AwsClustersClient::RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AwsClustersClient::RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr AwsClustersClient::GetAwsNodePool(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -236,6 +420,16 @@ AwsClustersClient::DeleteAwsNodePool(std::string const& name, Options opts) { return connection_->DeleteAwsNodePool(request); } +StatusOr AwsClustersClient::DeleteAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest request; + request.set_name(name); + return connection_->DeleteAwsNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AwsClustersClient::DeleteAwsNodePool( google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request, @@ -244,6 +438,24 @@ AwsClustersClient::DeleteAwsNodePool( return connection_->DeleteAwsNodePool(request); } +StatusOr AwsClustersClient::DeleteAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAwsNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AwsClustersClient::DeleteAwsNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAwsNodePool(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AwsClustersClient::GetAwsOpenIdConfig( google::cloud::gkemulticloud::v1::GetAwsOpenIdConfigRequest const& request, diff --git a/google/cloud/gkemulticloud/v1/aws_clusters_client.h b/google/cloud/gkemulticloud/v1/aws_clusters_client.h index 1bba009f083c5..f0a957e47f18f 100644 --- a/google/cloud/gkemulticloud/v1/aws_clusters_client.h +++ b/google/cloud/gkemulticloud/v1/aws_clusters_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_GKEMULTICLOUD_V1_AWS_CLUSTERS_CLIENT_H #include "google/cloud/gkemulticloud/v1/aws_clusters_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -147,6 +149,12 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::AwsCluster const& aws_cluster, std::string const& aws_cluster_id, Options opts = {}); + StatusOr CreateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AwsCluster const& aws_cluster, + std::string const& aws_cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] @@ -192,6 +200,16 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request, Options opts = {}); + StatusOr CreateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request, + Options opts = {}); + + future> + CreateAwsCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]. @@ -231,6 +249,11 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::AwsCluster const& aws_cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AwsCluster const& aws_cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]. @@ -270,6 +293,16 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request, Options opts = {}); + StatusOr UpdateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request, + Options opts = {}); + + future> + UpdateAwsCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Describes a specific [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] @@ -468,6 +501,10 @@ class AwsClustersClient { future> DeleteAwsCluster(std::string const& name, Options opts = {}); + StatusOr DeleteAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] @@ -518,6 +555,16 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request, Options opts = {}); + StatusOr DeleteAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request, + Options opts = {}); + + future> + DeleteAwsCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Generates an access token for a cluster agent. @@ -647,6 +694,12 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::AwsNodePool const& aws_node_pool, std::string const& aws_node_pool_id, Options opts = {}); + StatusOr CreateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AwsNodePool const& aws_node_pool, + std::string const& aws_node_pool_id, Options opts = {}); + // clang-format off /// /// Creates a new [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool], @@ -693,6 +746,16 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request, Options opts = {}); + StatusOr CreateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request, + Options opts = {}); + + future> + CreateAwsNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]. @@ -732,6 +795,11 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::AwsNodePool const& aws_node_pool, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AwsNodePool const& aws_node_pool, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]. @@ -771,6 +839,16 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request, Options opts = {}); + StatusOr UpdateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request, + Options opts = {}); + + future> + UpdateAwsNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Rolls back a previously aborted or failed @@ -816,6 +894,10 @@ class AwsClustersClient { future> RollbackAwsNodePoolUpdate(std::string const& name, Options opts = {}); + StatusOr RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Rolls back a previously aborted or failed @@ -861,6 +943,17 @@ class AwsClustersClient { request, Options opts = {}); + StatusOr RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request, + Options opts = {}); + + future> + RollbackAwsNodePoolUpdate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Describes a specific @@ -1060,6 +1153,10 @@ class AwsClustersClient { future> DeleteAwsNodePool(std::string const& name, Options opts = {}); + StatusOr DeleteAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] @@ -1106,6 +1203,16 @@ class AwsClustersClient { google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request, Options opts = {}); + StatusOr DeleteAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request, + Options opts = {}); + + future> + DeleteAwsNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the OIDC discovery document for the cluster. 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_client.cc b/google/cloud/gkemulticloud/v1/azure_clusters_client.cc index fc29e239171f1..4e56f6b96ec0b 100644 --- a/google/cloud/gkemulticloud/v1/azure_clusters_client.cc +++ b/google/cloud/gkemulticloud/v1/azure_clusters_client.cc @@ -45,6 +45,20 @@ AzureClustersClient::CreateAzureClient( return connection_->CreateAzureClient(request); } +StatusOr AzureClustersClient::CreateAzureClient( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AzureClient const& azure_client, + std::string const& azure_client_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::CreateAzureClientRequest request; + request.set_parent(parent); + *request.mutable_azure_client() = azure_client; + request.set_azure_client_id(azure_client_id); + return connection_->CreateAzureClient(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AzureClustersClient::CreateAzureClient( google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request, @@ -53,6 +67,24 @@ AzureClustersClient::CreateAzureClient( return connection_->CreateAzureClient(request); } +StatusOr AzureClustersClient::CreateAzureClient( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAzureClient(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AzureClustersClient::CreateAzureClient( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAzureClient(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AzureClustersClient::GetAzureClient(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -93,6 +125,16 @@ AzureClustersClient::DeleteAzureClient(std::string const& name, Options opts) { return connection_->DeleteAzureClient(request); } +StatusOr AzureClustersClient::DeleteAzureClient( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest request; + request.set_name(name); + return connection_->DeleteAzureClient(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AzureClustersClient::DeleteAzureClient( google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request, @@ -101,6 +143,24 @@ AzureClustersClient::DeleteAzureClient( return connection_->DeleteAzureClient(request); } +StatusOr AzureClustersClient::DeleteAzureClient( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAzureClient(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AzureClustersClient::DeleteAzureClient( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAzureClient(google::cloud::ExperimentalTag{}, + operation); +} + future> AzureClustersClient::CreateAzureCluster( std::string const& parent, @@ -114,6 +174,21 @@ AzureClustersClient::CreateAzureCluster( return connection_->CreateAzureCluster(request); } +StatusOr +AzureClustersClient::CreateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AzureCluster const& azure_cluster, + std::string const& azure_cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest request; + request.set_parent(parent); + *request.mutable_azure_cluster() = azure_cluster; + request.set_azure_cluster_id(azure_cluster_id); + return connection_->CreateAzureCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AzureClustersClient::CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& request, @@ -122,6 +197,25 @@ AzureClustersClient::CreateAzureCluster( return connection_->CreateAzureCluster(request); } +StatusOr +AzureClustersClient::CreateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAzureCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AzureClustersClient::CreateAzureCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAzureCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> AzureClustersClient::UpdateAzureCluster( google::cloud::gkemulticloud::v1::AzureCluster const& azure_cluster, @@ -133,6 +227,19 @@ AzureClustersClient::UpdateAzureCluster( return connection_->UpdateAzureCluster(request); } +StatusOr +AzureClustersClient::UpdateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AzureCluster const& azure_cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest request; + *request.mutable_azure_cluster() = azure_cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAzureCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AzureClustersClient::UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& request, @@ -141,6 +248,25 @@ AzureClustersClient::UpdateAzureCluster( return connection_->UpdateAzureCluster(request); } +StatusOr +AzureClustersClient::UpdateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAzureCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AzureClustersClient::UpdateAzureCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAzureCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AzureClustersClient::GetAzureCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -182,6 +308,17 @@ AzureClustersClient::DeleteAzureCluster(std::string const& name, Options opts) { return connection_->DeleteAzureCluster(request); } +StatusOr +AzureClustersClient::DeleteAzureCluster(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest request; + request.set_name(name); + return connection_->DeleteAzureCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AzureClustersClient::DeleteAzureCluster( google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& request, @@ -190,6 +327,25 @@ AzureClustersClient::DeleteAzureCluster( return connection_->DeleteAzureCluster(request); } +StatusOr +AzureClustersClient::DeleteAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAzureCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AzureClustersClient::DeleteAzureCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAzureCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr< google::cloud::gkemulticloud::v1::GenerateAzureClusterAgentTokenResponse> AzureClustersClient::GenerateAzureClusterAgentToken( @@ -222,6 +378,21 @@ AzureClustersClient::CreateAzureNodePool( return connection_->CreateAzureNodePool(request); } +StatusOr +AzureClustersClient::CreateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AzureNodePool const& azure_node_pool, + std::string const& azure_node_pool_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest request; + request.set_parent(parent); + *request.mutable_azure_node_pool() = azure_node_pool; + request.set_azure_node_pool_id(azure_node_pool_id); + return connection_->CreateAzureNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AzureClustersClient::CreateAzureNodePool( google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& request, @@ -230,6 +401,25 @@ AzureClustersClient::CreateAzureNodePool( return connection_->CreateAzureNodePool(request); } +StatusOr +AzureClustersClient::CreateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAzureNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AzureClustersClient::CreateAzureNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAzureNodePool(google::cloud::ExperimentalTag{}, + operation); +} + future> AzureClustersClient::UpdateAzureNodePool( google::cloud::gkemulticloud::v1::AzureNodePool const& azure_node_pool, @@ -241,6 +431,19 @@ AzureClustersClient::UpdateAzureNodePool( return connection_->UpdateAzureNodePool(request); } +StatusOr +AzureClustersClient::UpdateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AzureNodePool const& azure_node_pool, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest request; + *request.mutable_azure_node_pool() = azure_node_pool; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAzureNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AzureClustersClient::UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& request, @@ -249,6 +452,25 @@ AzureClustersClient::UpdateAzureNodePool( return connection_->UpdateAzureNodePool(request); } +StatusOr +AzureClustersClient::UpdateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAzureNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AzureClustersClient::UpdateAzureNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAzureNodePool(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AzureClustersClient::GetAzureNodePool(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -291,6 +513,18 @@ AzureClustersClient::DeleteAzureNodePool(std::string const& name, return connection_->DeleteAzureNodePool(request); } +StatusOr +AzureClustersClient::DeleteAzureNodePool(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest request; + request.set_name(name); + return connection_->DeleteAzureNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AzureClustersClient::DeleteAzureNodePool( google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& request, @@ -299,6 +533,25 @@ AzureClustersClient::DeleteAzureNodePool( return connection_->DeleteAzureNodePool(request); } +StatusOr +AzureClustersClient::DeleteAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAzureNodePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AzureClustersClient::DeleteAzureNodePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAzureNodePool(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AzureClustersClient::GetAzureOpenIdConfig(std::string const& azure_cluster, Options opts) { diff --git a/google/cloud/gkemulticloud/v1/azure_clusters_client.h b/google/cloud/gkemulticloud/v1/azure_clusters_client.h index 652a55d6c27a8..eef77200c1043 100644 --- a/google/cloud/gkemulticloud/v1/azure_clusters_client.h +++ b/google/cloud/gkemulticloud/v1/azure_clusters_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_GKEMULTICLOUD_V1_AZURE_CLUSTERS_CLIENT_H #include "google/cloud/gkemulticloud/v1/azure_clusters_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -151,6 +153,12 @@ class AzureClustersClient { google::cloud::gkemulticloud::v1::AzureClient const& azure_client, std::string const& azure_client_id, Options opts = {}); + StatusOr CreateAzureClient( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AzureClient const& azure_client, + std::string const& azure_client_id, Options opts = {}); + // clang-format off /// /// Creates a new [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] @@ -200,6 +208,16 @@ class AzureClustersClient { google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request, Options opts = {}); + StatusOr CreateAzureClient( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request, + Options opts = {}); + + future> + CreateAzureClient(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Describes a specific @@ -399,6 +417,10 @@ class AzureClustersClient { future> DeleteAzureClient(std::string const& name, Options opts = {}); + StatusOr DeleteAzureClient( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific [AzureClient][google.cloud.gkemulticloud.v1.AzureClient] @@ -448,6 +470,16 @@ class AzureClustersClient { google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request, Options opts = {}); + StatusOr DeleteAzureClient( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request, + Options opts = {}); + + future> + DeleteAzureClient(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] @@ -507,6 +539,12 @@ class AzureClustersClient { google::cloud::gkemulticloud::v1::AzureCluster const& azure_cluster, std::string const& azure_cluster_id, Options opts = {}); + StatusOr CreateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AzureCluster const& azure_cluster, + std::string const& azure_cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster] @@ -553,6 +591,17 @@ class AzureClustersClient { request, Options opts = {}); + StatusOr CreateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request, + Options opts = {}); + + future> + CreateAzureCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]. @@ -609,6 +658,11 @@ class AzureClustersClient { google::cloud::gkemulticloud::v1::AzureCluster const& azure_cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AzureCluster const& azure_cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an [AzureCluster][google.cloud.gkemulticloud.v1.AzureCluster]. @@ -649,6 +703,17 @@ class AzureClustersClient { request, Options opts = {}); + StatusOr UpdateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request, + Options opts = {}); + + future> + UpdateAzureCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Describes a specific @@ -847,6 +912,10 @@ class AzureClustersClient { future> DeleteAzureCluster(std::string const& name, Options opts = {}); + StatusOr DeleteAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific @@ -898,6 +967,17 @@ class AzureClustersClient { request, Options opts = {}); + StatusOr DeleteAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request, + Options opts = {}); + + future> + DeleteAzureCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Generates an access token for a cluster agent. @@ -1028,6 +1108,12 @@ class AzureClustersClient { google::cloud::gkemulticloud::v1::AzureNodePool const& azure_node_pool, std::string const& azure_node_pool_id, Options opts = {}); + StatusOr CreateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::gkemulticloud::v1::AzureNodePool const& azure_node_pool, + std::string const& azure_node_pool_id, Options opts = {}); + // clang-format off /// /// Creates a new [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool], @@ -1076,6 +1162,17 @@ class AzureClustersClient { request, Options opts = {}); + StatusOr CreateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request, + Options opts = {}); + + future> + CreateAzureNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool]. @@ -1122,6 +1219,11 @@ class AzureClustersClient { google::cloud::gkemulticloud::v1::AzureNodePool const& azure_node_pool, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::AzureNodePool const& azure_node_pool, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an [AzureNodePool][google.cloud.gkemulticloud.v1.AzureNodePool]. @@ -1162,6 +1264,17 @@ class AzureClustersClient { request, Options opts = {}); + StatusOr UpdateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request, + Options opts = {}); + + future> + UpdateAzureNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Describes a specific @@ -1362,6 +1475,10 @@ class AzureClustersClient { future> DeleteAzureNodePool(std::string const& name, Options opts = {}); + StatusOr DeleteAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific @@ -1409,6 +1526,17 @@ class AzureClustersClient { request, Options opts = {}); + StatusOr DeleteAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request, + Options opts = {}); + + future> + DeleteAzureNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the OIDC discovery document for the cluster. 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..d91a4a02a0e5c 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,63 @@ AttachedClustersConnectionImpl::CreateAttachedCluster( polling_policy(*current), __func__); } +StatusOr +AttachedClustersConnectionImpl::CreateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +207,63 @@ AttachedClustersConnectionImpl::UpdateAttachedCluster( polling_policy(*current), __func__); } +StatusOr +AttachedClustersConnectionImpl::UpdateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +305,63 @@ AttachedClustersConnectionImpl::ImportAttachedCluster( polling_policy(*current), __func__); } +StatusOr +AttachedClustersConnectionImpl::ImportAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +455,63 @@ AttachedClustersConnectionImpl::DeleteAttachedCluster( polling_policy(*current), __func__); } +StatusOr +AttachedClustersConnectionImpl::DeleteAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..e9df2a3b2fd1f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request) override; + + future> + CreateAttachedCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& request) override; + StatusOr UpdateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request) override; + + future> + UpdateAttachedCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& request) override; + StatusOr ImportAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request) override; + + future> + ImportAttachedCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request) override; + + future> + DeleteAttachedCluster( + google::cloud::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..ee1d9ff9bb7d9 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,31 @@ AttachedClustersTracingConnection::CreateAttachedCluster( child_->CreateAttachedCluster(request)); } +StatusOr +AttachedClustersTracingConnection::CreateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AttachedClustersTracingConnection::CreateAttachedCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AttachedClustersTracingConnection::UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& @@ -55,6 +80,31 @@ AttachedClustersTracingConnection::UpdateAttachedCluster( child_->UpdateAttachedCluster(request)); } +StatusOr +AttachedClustersTracingConnection::UpdateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AttachedClustersTracingConnection::UpdateAttachedCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> AttachedClustersTracingConnection::ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& @@ -66,6 +116,31 @@ AttachedClustersTracingConnection::ImportAttachedCluster( child_->ImportAttachedCluster(request)); } +StatusOr +AttachedClustersTracingConnection::ImportAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AttachedClustersTracingConnection::ImportAttachedCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AttachedClustersTracingConnection::GetAttachedCluster( google::cloud::gkemulticloud::v1::GetAttachedClusterRequest const& @@ -99,6 +174,31 @@ AttachedClustersTracingConnection::DeleteAttachedCluster( child_->DeleteAttachedCluster(request)); } +StatusOr +AttachedClustersTracingConnection::DeleteAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AttachedClustersTracingConnection::DeleteAttachedCluster( + google::cloud::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( + google::cloud::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..872be4d4b31e9 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request) override; + + future> + CreateAttachedCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAttachedCluster( google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& request) override; + StatusOr UpdateAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request) override; + + future> + UpdateAttachedCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportAttachedCluster( google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& request) override; + StatusOr ImportAttachedCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request) override; + + future> + ImportAttachedCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request) override; + + future> + DeleteAttachedCluster( + google::cloud::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..30afac4173216 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,61 @@ AwsClustersConnectionImpl::CreateAwsCluster( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::CreateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +201,61 @@ AwsClustersConnectionImpl::UpdateAwsCluster( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::UpdateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +346,61 @@ AwsClustersConnectionImpl::DeleteAwsCluster( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::DeleteAwsCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +474,61 @@ AwsClustersConnectionImpl::CreateAwsNodePool( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::CreateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +569,61 @@ AwsClustersConnectionImpl::UpdateAwsNodePool( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::UpdateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +664,62 @@ AwsClustersConnectionImpl::RollbackAwsNodePoolUpdate( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +810,61 @@ AwsClustersConnectionImpl::DeleteAwsNodePool( polling_policy(*current), __func__); } +StatusOr +AwsClustersConnectionImpl::DeleteAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..cda0693726e78 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request) + override; + + future> + CreateAwsCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) override; + StatusOr UpdateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) + override; + + future> + UpdateAwsCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request) + override; + + future> + DeleteAwsCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request) + override; + + future> + CreateAwsNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) override; + StatusOr UpdateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) + override; + + future> + UpdateAwsNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& request) override; + StatusOr RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request) override; + + future> + RollbackAwsNodePoolUpdate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request) + override; + + future> + DeleteAwsNodePool(google::cloud::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..420b2629ce582 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,30 @@ AwsClustersTracingConnection::CreateAwsCluster( return internal::EndSpan(std::move(span), child_->CreateAwsCluster(request)); } +StatusOr +AwsClustersTracingConnection::CreateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::CreateAwsCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AwsClustersTracingConnection::UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) { @@ -51,6 +75,30 @@ AwsClustersTracingConnection::UpdateAwsCluster( return internal::EndSpan(std::move(span), child_->UpdateAwsCluster(request)); } +StatusOr +AwsClustersTracingConnection::UpdateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::UpdateAwsCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AwsClustersTracingConnection::GetAwsCluster( google::cloud::gkemulticloud::v1::GetAwsClusterRequest const& request) { @@ -81,6 +129,30 @@ AwsClustersTracingConnection::DeleteAwsCluster( return internal::EndSpan(std::move(span), child_->DeleteAwsCluster(request)); } +StatusOr +AwsClustersTracingConnection::DeleteAwsCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::DeleteAwsCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AwsClustersTracingConnection::GenerateAwsClusterAgentToken( google::cloud::gkemulticloud::v1::GenerateAwsClusterAgentTokenRequest const& @@ -111,6 +183,30 @@ AwsClustersTracingConnection::CreateAwsNodePool( return internal::EndSpan(std::move(span), child_->CreateAwsNodePool(request)); } +StatusOr +AwsClustersTracingConnection::CreateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::CreateAwsNodePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AwsClustersTracingConnection::UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) { @@ -120,6 +216,30 @@ AwsClustersTracingConnection::UpdateAwsNodePool( return internal::EndSpan(std::move(span), child_->UpdateAwsNodePool(request)); } +StatusOr +AwsClustersTracingConnection::UpdateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::UpdateAwsNodePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AwsClustersTracingConnection::RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& @@ -131,6 +251,31 @@ AwsClustersTracingConnection::RollbackAwsNodePoolUpdate( child_->RollbackAwsNodePoolUpdate(request)); } +StatusOr +AwsClustersTracingConnection::RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::RollbackAwsNodePoolUpdate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AwsClustersTracingConnection::GetAwsNodePool( google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const& request) { @@ -161,6 +306,30 @@ AwsClustersTracingConnection::DeleteAwsNodePool( return internal::EndSpan(std::move(span), child_->DeleteAwsNodePool(request)); } +StatusOr +AwsClustersTracingConnection::DeleteAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AwsClustersTracingConnection::DeleteAwsNodePool( + google::cloud::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(google::cloud::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..7a884d9ad6afa 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& request) + override; + + future> + CreateAwsCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAwsCluster( google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) override; + StatusOr UpdateAwsCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request) + override; + + future> + UpdateAwsCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& request) + override; + + future> + DeleteAwsCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& request) + override; + + future> + CreateAwsNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAwsNodePool( google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) override; + StatusOr UpdateAwsNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request) + override; + + future> + UpdateAwsNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackAwsNodePoolUpdate( google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& request) override; + StatusOr RollbackAwsNodePoolUpdate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request) override; + + future> + RollbackAwsNodePoolUpdate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& request) + override; + + future> + DeleteAwsNodePool(google::cloud::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..a7a4fd726c8b7 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,61 @@ AzureClustersConnectionImpl::CreateAzureClient( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::CreateAzureClient( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +252,61 @@ AzureClustersConnectionImpl::DeleteAzureClient( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::DeleteAzureClient( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +348,62 @@ AzureClustersConnectionImpl::CreateAzureCluster( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::CreateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +445,62 @@ AzureClustersConnectionImpl::UpdateAzureCluster( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::UpdateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +591,62 @@ AzureClustersConnectionImpl::DeleteAzureCluster( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::DeleteAzureCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +721,62 @@ AzureClustersConnectionImpl::CreateAzureNodePool( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::CreateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +818,62 @@ AzureClustersConnectionImpl::UpdateAzureNodePool( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::UpdateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +965,62 @@ AzureClustersConnectionImpl::DeleteAzureNodePool( polling_policy(*current), __func__); } +StatusOr +AzureClustersConnectionImpl::DeleteAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..f59b62402a976 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request) + override; + + future> + CreateAzureClient(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request) + override; + + future> + DeleteAzureClient(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& request) override; + StatusOr CreateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request) override; + + future> + CreateAzureCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& request) override; + StatusOr UpdateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request) override; + + future> + UpdateAzureCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request) override; + + future> + DeleteAzureCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request) override; + + future> + CreateAzureNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& request) override; + StatusOr UpdateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request) override; + + future> + UpdateAzureNodePool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request) override; + + future> + DeleteAzureNodePool(google::cloud::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..75de9d98bdd1d 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,30 @@ AzureClustersTracingConnection::CreateAzureClient( return internal::EndSpan(std::move(span), child_->CreateAzureClient(request)); } +StatusOr +AzureClustersTracingConnection::CreateAzureClient( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::CreateAzureClient( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AzureClustersTracingConnection::GetAzureClient( google::cloud::gkemulticloud::v1::GetAzureClientRequest const& request) { @@ -72,6 +96,30 @@ AzureClustersTracingConnection::DeleteAzureClient( return internal::EndSpan(std::move(span), child_->DeleteAzureClient(request)); } +StatusOr +AzureClustersTracingConnection::DeleteAzureClient( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::DeleteAzureClient( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AzureClustersTracingConnection::CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& @@ -83,6 +131,31 @@ AzureClustersTracingConnection::CreateAzureCluster( child_->CreateAzureCluster(request)); } +StatusOr +AzureClustersTracingConnection::CreateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::CreateAzureCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AzureClustersTracingConnection::UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& @@ -94,6 +167,31 @@ AzureClustersTracingConnection::UpdateAzureCluster( child_->UpdateAzureCluster(request)); } +StatusOr +AzureClustersTracingConnection::UpdateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::UpdateAzureCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AzureClustersTracingConnection::GetAzureCluster( google::cloud::gkemulticloud::v1::GetAzureClusterRequest const& request) { @@ -126,6 +224,31 @@ AzureClustersTracingConnection::DeleteAzureCluster( child_->DeleteAzureCluster(request)); } +StatusOr +AzureClustersTracingConnection::DeleteAzureCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::DeleteAzureCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr< google::cloud::gkemulticloud::v1::GenerateAzureClusterAgentTokenResponse> AzureClustersTracingConnection::GenerateAzureClusterAgentToken( @@ -160,6 +283,31 @@ AzureClustersTracingConnection::CreateAzureNodePool( child_->CreateAzureNodePool(request)); } +StatusOr +AzureClustersTracingConnection::CreateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::CreateAzureNodePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> AzureClustersTracingConnection::UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& @@ -171,6 +319,31 @@ AzureClustersTracingConnection::UpdateAzureNodePool( child_->UpdateAzureNodePool(request)); } +StatusOr +AzureClustersTracingConnection::UpdateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::UpdateAzureNodePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr AzureClustersTracingConnection::GetAzureNodePool( google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const& request) { @@ -203,6 +376,31 @@ AzureClustersTracingConnection::DeleteAzureNodePool( child_->DeleteAzureNodePool(request)); } +StatusOr +AzureClustersTracingConnection::DeleteAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AzureClustersTracingConnection::DeleteAzureNodePool( + google::cloud::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(google::cloud::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..b683f0635155d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& request) + override; + + future> + CreateAzureClient(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& request) + override; + + future> + DeleteAzureClient(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAzureCluster( google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& request) override; + StatusOr CreateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request) override; + + future> + CreateAzureCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAzureCluster( google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& request) override; + StatusOr UpdateAzureCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request) override; + + future> + UpdateAzureCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request) override; + + future> + DeleteAzureCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request) override; + + future> + CreateAzureNodePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAzureNodePool( google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& request) override; + StatusOr UpdateAzureNodePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request) override; + + future> + UpdateAzureNodePool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request) override; + + future> + DeleteAzureNodePool(google::cloud::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..cfa3f46bc38bc 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,20 @@ class MockAttachedClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateAttachedCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAttachedClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateAttachedCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAttachedCluster, @@ -61,6 +75,20 @@ class MockAttachedClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateAttachedCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAttachedClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateAttachedCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportAttachedCluster, @@ -68,6 +96,20 @@ class MockAttachedClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, ImportAttachedCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::ImportAttachedClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ImportAttachedCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAttachedCluster, @@ -88,6 +130,20 @@ class MockAttachedClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteAttachedCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAttachedClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAttachedCluster, + (google::cloud::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..abb9c03134598 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAwsCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAwsCluster, (google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAwsCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateAwsCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAwsCluster, (google::cloud::gkemulticloud::v1::GetAwsClusterRequest const& request), @@ -77,6 +101,19 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteAwsCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAwsCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GenerateAwsClusterAgentToken, @@ -98,12 +135,36 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD(StatusOr, CreateAwsNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAwsNodePoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAwsNodePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateAwsNodePool, (google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateAwsNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAwsNodePoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateAwsNodePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RollbackAwsNodePoolUpdate, @@ -111,6 +172,19 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, RollbackAwsNodePoolUpdate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::RollbackAwsNodePoolUpdateRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RollbackAwsNodePoolUpdate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAwsNodePool, (google::cloud::gkemulticloud::v1::GetAwsNodePoolRequest const& request), @@ -129,6 +203,19 @@ class MockAwsClustersConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteAwsNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAwsNodePoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAwsNodePool, + (google::cloud::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..9611165ce81f4 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClientRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAzureClient, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAzureClient, (google::cloud::gkemulticloud::v1::GetAzureClientRequest const& request), @@ -71,6 +83,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteAzureClient, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClientRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAzureClient, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateAzureCluster, @@ -78,6 +103,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateAzureCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAzureCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAzureCluster, @@ -85,6 +123,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateAzureCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureClusterRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateAzureCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAzureCluster, (google::cloud::gkemulticloud::v1::GetAzureClusterRequest const& request), @@ -103,6 +154,20 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteAzureCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAzureCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GenerateAzureClusterAgentToken, @@ -125,6 +190,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateAzureNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::CreateAzureNodePoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateAzureNodePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAzureNodePool, @@ -132,6 +210,19 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateAzureNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::UpdateAzureNodePoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateAzureNodePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetAzureNodePool, (google::cloud::gkemulticloud::v1::GetAzureNodePoolRequest const& @@ -151,6 +242,20 @@ class MockAzureClustersConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteAzureNodePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::gkemulticloud::v1::DeleteAzureNodePoolRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteAzureNodePool, + (google::cloud::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_client.h b/google/cloud/iam/admin/v1/iam_client.h index 01fd14b2d8d40..8207920bd46d4 100644 --- a/google/cloud/iam/admin/v1/iam_client.h +++ b/google/cloud/iam/admin/v1/iam_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_IAM_ADMIN_V1_IAM_CLIENT_H #include "google/cloud/iam/admin/v1/iam_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.h" 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_client.h b/google/cloud/iam/credentials/v1/iam_credentials_client.h index 30faa73be5c64..862d1b4d3f382 100644 --- a/google/cloud/iam/credentials/v1/iam_credentials_client.h +++ b/google/cloud/iam/credentials/v1/iam_credentials_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_IAM_CREDENTIALS_V1_IAM_CREDENTIALS_CLIENT_H #include "google/cloud/iam/credentials/v1/iam_credentials_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/iam/v1/iam_policy_client.h index 55bc6ebe50717..b6e1e5fa69403 100644 --- a/google/cloud/iam/v1/iam_policy_client.h +++ b/google/cloud/iam/v1/iam_policy_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_IAM_V1_IAM_POLICY_CLIENT_H #include "google/cloud/iam/v1/iam_policy_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..f5d6b10fde148 100644 --- a/google/cloud/iam/v2/internal/policies_connection_impl.cc +++ b/google/cloud/iam/v2/internal/policies_connection_impl.cc @@ -143,6 +143,56 @@ future> PoliciesConnectionImpl::CreatePolicy( polling_policy(*current), __func__); } +StatusOr PoliciesConnectionImpl::CreatePolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +230,56 @@ future> PoliciesConnectionImpl::UpdatePolicy( polling_policy(*current), __func__); } +StatusOr PoliciesConnectionImpl::UpdatePolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +317,56 @@ future> PoliciesConnectionImpl::DeletePolicy( polling_policy(*current), __func__); } +StatusOr PoliciesConnectionImpl::DeletePolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..418d9fa6e2214 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request) override; + + future> CreatePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request) override; + StatusOr UpdatePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request) override; + + future> UpdatePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePolicy( google::iam::v2::DeletePolicyRequest const& request) override; + StatusOr DeletePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request) override; + + future> DeletePolicy( + google::cloud::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..e8c2148751fec 100644 --- a/google/cloud/iam/v2/internal/policies_tracing_connection.cc +++ b/google/cloud/iam/v2/internal/policies_tracing_connection.cc @@ -57,6 +57,28 @@ PoliciesTracingConnection::CreatePolicy( return internal::EndSpan(std::move(span), child_->CreatePolicy(request)); } +StatusOr +PoliciesTracingConnection::CreatePolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PoliciesTracingConnection::CreatePolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> PoliciesTracingConnection::UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request) { @@ -65,6 +87,28 @@ PoliciesTracingConnection::UpdatePolicy( return internal::EndSpan(std::move(span), child_->UpdatePolicy(request)); } +StatusOr +PoliciesTracingConnection::UpdatePolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PoliciesTracingConnection::UpdatePolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> PoliciesTracingConnection::DeletePolicy( google::iam::v2::DeletePolicyRequest const& request) { @@ -73,6 +117,28 @@ PoliciesTracingConnection::DeletePolicy( return internal::EndSpan(std::move(span), child_->DeletePolicy(request)); } +StatusOr +PoliciesTracingConnection::DeletePolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PoliciesTracingConnection::DeletePolicy( + google::cloud::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(google::cloud::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..45069fffb04c0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request) override; + + future> CreatePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request) override; + StatusOr UpdatePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request) override; + + future> UpdatePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePolicy( google::iam::v2::DeletePolicyRequest const& request) override; + StatusOr DeletePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request) override; + + future> DeletePolicy( + google::cloud::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..485cba1de80c3 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, CreatePolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdatePolicy, (google::iam::v2::UpdatePolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdatePolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdatePolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeletePolicy, (google::iam::v2::DeletePolicyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeletePolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, DeletePolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/iam/v2/policies_client.cc b/google/cloud/iam/v2/policies_client.cc index fdbf576a18c9c..293b41e8d1542 100644 --- a/google/cloud/iam/v2/policies_client.cc +++ b/google/cloud/iam/v2/policies_client.cc @@ -71,18 +71,61 @@ future> PoliciesClient::CreatePolicy( return connection_->CreatePolicy(request); } +StatusOr PoliciesClient::CreatePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::iam::v2::Policy const& policy, + std::string const& policy_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::iam::v2::CreatePolicyRequest request; + request.set_parent(parent); + *request.mutable_policy() = policy; + request.set_policy_id(policy_id); + return connection_->CreatePolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PoliciesClient::CreatePolicy( google::iam::v2::CreatePolicyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreatePolicy(request); } +StatusOr PoliciesClient::CreatePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> PoliciesClient::CreatePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePolicy(google::cloud::ExperimentalTag{}, operation); +} + future> PoliciesClient::UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->UpdatePolicy(request); } +StatusOr PoliciesClient::UpdatePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> PoliciesClient::UpdatePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePolicy(google::cloud::ExperimentalTag{}, operation); +} + future> PoliciesClient::DeletePolicy( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -91,12 +134,37 @@ future> PoliciesClient::DeletePolicy( return connection_->DeletePolicy(request); } +StatusOr PoliciesClient::DeletePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::iam::v2::DeletePolicyRequest request; + request.set_name(name); + return connection_->DeletePolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> PoliciesClient::DeletePolicy( google::iam::v2::DeletePolicyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->DeletePolicy(request); } +StatusOr PoliciesClient::DeletePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> PoliciesClient::DeletePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePolicy(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace iam_v2 } // namespace cloud diff --git a/google/cloud/iam/v2/policies_client.h b/google/cloud/iam/v2/policies_client.h index 17ec4f9515ee1..f92d84659e7e5 100644 --- a/google/cloud/iam/v2/policies_client.h +++ b/google/cloud/iam/v2/policies_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_IAM_V2_POLICIES_CLIENT_H #include "google/cloud/iam/v2/policies_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -286,6 +288,11 @@ class PoliciesClient { std::string const& parent, google::iam::v2::Policy const& policy, std::string const& policy_id, Options opts = {}); + StatusOr CreatePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::iam::v2::Policy const& policy, + std::string const& policy_id, Options opts = {}); + // clang-format off /// /// Creates a policy. @@ -323,6 +330,14 @@ class PoliciesClient { future> CreatePolicy( google::iam::v2::CreatePolicyRequest const& request, Options opts = {}); + StatusOr CreatePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::CreatePolicyRequest const& request, Options opts = {}); + + future> CreatePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the specified policy. @@ -371,6 +386,14 @@ class PoliciesClient { future> UpdatePolicy( google::iam::v2::UpdatePolicyRequest const& request, Options opts = {}); + StatusOr UpdatePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::UpdatePolicyRequest const& request, Options opts = {}); + + future> UpdatePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a policy. This action is permanent. @@ -411,6 +434,10 @@ class PoliciesClient { future> DeletePolicy( std::string const& name, Options opts = {}); + StatusOr DeletePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a policy. This action is permanent. @@ -448,6 +475,14 @@ class PoliciesClient { future> DeletePolicy( google::iam::v2::DeletePolicyRequest const& request, Options opts = {}); + StatusOr DeletePolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::iam::v2::DeletePolicyRequest const& request, Options opts = {}); + + future> DeletePolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/iap/v1/identity_aware_proxy_admin_client.h index fd70b92884953..3dbe62345529d 100644 --- a/google/cloud/iap/v1/identity_aware_proxy_admin_client.h +++ b/google/cloud/iap/v1/identity_aware_proxy_admin_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_IAP_V1_IDENTITY_AWARE_PROXY_ADMIN_CLIENT_H #include "google/cloud/iap/v1/identity_aware_proxy_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/iap/v1/identity_aware_proxy_o_auth_client.h index dbf9c7427763c..e62146418d56c 100644 --- a/google/cloud/iap/v1/identity_aware_proxy_o_auth_client.h +++ b/google/cloud/iap/v1/identity_aware_proxy_o_auth_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_IAP_V1_IDENTITY_AWARE_PROXY_O_AUTH_CLIENT_H #include "google/cloud/iap/v1/identity_aware_proxy_o_auth_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/ids/v1/ids_client.cc index dbbc9d1939e07..1d4526670432e 100644 --- a/google/cloud/ids/v1/ids_client.cc +++ b/google/cloud/ids/v1/ids_client.cc @@ -70,6 +70,19 @@ future> IDSClient::CreateEndpoint( return connection_->CreateEndpoint(request); } +StatusOr IDSClient::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::ids::v1::Endpoint const& endpoint, + std::string const& endpoint_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ids::v1::CreateEndpointRequest request; + request.set_parent(parent); + *request.mutable_endpoint() = endpoint; + request.set_endpoint_id(endpoint_id); + return connection_->CreateEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IDSClient::CreateEndpoint( google::cloud::ids::v1::CreateEndpointRequest const& request, Options opts) { @@ -77,6 +90,23 @@ future> IDSClient::CreateEndpoint( return connection_->CreateEndpoint(request); } +StatusOr IDSClient::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> IDSClient::CreateEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEndpoint(google::cloud::ExperimentalTag{}, + operation); +} + future> IDSClient::DeleteEndpoint(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -85,6 +115,16 @@ IDSClient::DeleteEndpoint(std::string const& name, Options opts) { return connection_->DeleteEndpoint(request); } +StatusOr IDSClient::DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::ids::v1::DeleteEndpointRequest request; + request.set_name(name); + return connection_->DeleteEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> IDSClient::DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const& request, @@ -93,6 +133,24 @@ IDSClient::DeleteEndpoint( return connection_->DeleteEndpoint(request); } +StatusOr IDSClient::DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEndpoint(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +IDSClient::DeleteEndpoint(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEndpoint(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace ids_v1 } // namespace cloud diff --git a/google/cloud/ids/v1/ids_client.h b/google/cloud/ids/v1/ids_client.h index adb101d9b27d3..87a5c1eb21e9e 100644 --- a/google/cloud/ids/v1/ids_client.h +++ b/google/cloud/ids/v1/ids_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_IDS_V1_IDS_CLIENT_H #include "google/cloud/ids/v1/ids_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -256,6 +258,12 @@ class IDSClient { google::cloud::ids::v1::Endpoint const& endpoint, std::string const& endpoint_id, Options opts = {}); + StatusOr CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::ids::v1::Endpoint const& endpoint, + std::string const& endpoint_id, Options opts = {}); + // clang-format off /// /// Creates a new Endpoint in a given project and location. @@ -294,6 +302,15 @@ class IDSClient { google::cloud::ids::v1::CreateEndpointRequest const& request, Options opts = {}); + StatusOr CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request, + Options opts = {}); + + future> CreateEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Endpoint. @@ -326,6 +343,10 @@ class IDSClient { future> DeleteEndpoint( std::string const& name, Options opts = {}); + StatusOr DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Endpoint. @@ -364,6 +385,15 @@ class IDSClient { google::cloud::ids::v1::DeleteEndpointRequest const& request, Options opts = {}); + StatusOr DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request, + Options opts = {}); + + future> DeleteEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..931b765eb45db 100644 --- a/google/cloud/ids/v1/internal/ids_connection_impl.cc +++ b/google/cloud/ids/v1/internal/ids_connection_impl.cc @@ -144,6 +144,57 @@ IDSConnectionImpl::CreateEndpoint( polling_policy(*current), __func__); } +StatusOr IDSConnectionImpl::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +234,58 @@ IDSConnectionImpl::DeleteEndpoint( polling_policy(*current), __func__); } +StatusOr IDSConnectionImpl::DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..d276454eefc61 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request) override; + + future> CreateEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const& request) override; + StatusOr DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request) override; + + future> DeleteEndpoint( + google::cloud::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..17d9f60a13275 100644 --- a/google/cloud/ids/v1/internal/ids_tracing_connection.cc +++ b/google/cloud/ids/v1/internal/ids_tracing_connection.cc @@ -58,6 +58,27 @@ IDSTracingConnection::CreateEndpoint( return internal::EndSpan(std::move(span), child_->CreateEndpoint(request)); } +StatusOr IDSTracingConnection::CreateEndpoint( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IDSTracingConnection::CreateEndpoint( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> IDSTracingConnection::DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const& request) { @@ -66,6 +87,27 @@ IDSTracingConnection::DeleteEndpoint( return internal::EndSpan(std::move(span), child_->DeleteEndpoint(request)); } +StatusOr IDSTracingConnection::DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +IDSTracingConnection::DeleteEndpoint( + google::cloud::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(google::cloud::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..8d64df7f4fa83 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request) override; + + future> CreateEndpoint( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEndpoint( google::cloud::ids::v1::DeleteEndpointRequest const& request) override; + StatusOr DeleteEndpoint( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request) override; + + future> DeleteEndpoint( + google::cloud::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..5c5fa832bed24 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::CreateEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEndpoint, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteEndpoint, (google::cloud::ids::v1::DeleteEndpointRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteEndpoint, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::ids::v1::DeleteEndpointRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEndpoint, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/kms/inventory/v1/key_dashboard_client.h b/google/cloud/kms/inventory/v1/key_dashboard_client.h index b1e16b95a29d4..8c2701325789b 100644 --- a/google/cloud/kms/inventory/v1/key_dashboard_client.h +++ b/google/cloud/kms/inventory/v1/key_dashboard_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_KMS_INVENTORY_V1_KEY_DASHBOARD_CLIENT_H #include "google/cloud/kms/inventory/v1/key_dashboard_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/kms/inventory/v1/key_tracking_client.h index 00211940cff30..5857ec9785001 100644 --- a/google/cloud/kms/inventory/v1/key_tracking_client.h +++ b/google/cloud/kms/inventory/v1/key_tracking_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_KMS_INVENTORY_V1_KEY_TRACKING_CLIENT_H #include "google/cloud/kms/inventory/v1/key_tracking_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/kms/v1/autokey_admin_client.h index 5de5f8ac37ba2..6299568209b1b 100644 --- a/google/cloud/kms/v1/autokey_admin_client.h +++ b/google/cloud/kms/v1/autokey_admin_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_KMS_V1_AUTOKEY_ADMIN_CLIENT_H #include "google/cloud/kms/v1/autokey_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/kms/v1/autokey_client.cc index c99a8cd8401a1..1e5e785852dd5 100644 --- a/google/cloud/kms/v1/autokey_client.cc +++ b/google/cloud/kms/v1/autokey_client.cc @@ -45,6 +45,20 @@ AutokeyClient::CreateKeyHandle( return connection_->CreateKeyHandle(request); } +StatusOr AutokeyClient::CreateKeyHandle( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::kms::v1::KeyHandle const& key_handle, + std::string const& key_handle_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::kms::v1::CreateKeyHandleRequest request; + request.set_parent(parent); + *request.mutable_key_handle() = key_handle; + request.set_key_handle_id(key_handle_id); + return connection_->CreateKeyHandle(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> AutokeyClient::CreateKeyHandle( google::cloud::kms::v1::CreateKeyHandleRequest const& request, @@ -53,6 +67,24 @@ AutokeyClient::CreateKeyHandle( return connection_->CreateKeyHandle(request); } +StatusOr AutokeyClient::CreateKeyHandle( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateKeyHandle(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AutokeyClient::CreateKeyHandle(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateKeyHandle(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AutokeyClient::GetKeyHandle( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/kms/v1/autokey_client.h b/google/cloud/kms/v1/autokey_client.h index be127e8c9c6e7..4150f4b09b885 100644 --- a/google/cloud/kms/v1/autokey_client.h +++ b/google/cloud/kms/v1/autokey_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_KMS_V1_AUTOKEY_CLIENT_H #include "google/cloud/kms/v1/autokey_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -149,6 +151,12 @@ class AutokeyClient { google::cloud::kms::v1::KeyHandle const& key_handle, std::string const& key_handle_id, Options opts = {}); + StatusOr CreateKeyHandle( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::kms::v1::KeyHandle const& key_handle, + std::string const& key_handle_id, Options opts = {}); + // clang-format off /// /// Creates a new [KeyHandle][google.cloud.kms.v1.KeyHandle], triggering the @@ -193,6 +201,15 @@ class AutokeyClient { google::cloud::kms::v1::CreateKeyHandleRequest const& request, Options opts = {}); + StatusOr CreateKeyHandle( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request, + Options opts = {}); + + future> CreateKeyHandle( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns the [KeyHandle][google.cloud.kms.v1.KeyHandle]. 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_client.h b/google/cloud/kms/v1/ekm_client.h index 2e1df5f58895f..b6226e7d4ce5f 100644 --- a/google/cloud/kms/v1/ekm_client.h +++ b/google/cloud/kms/v1/ekm_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_KMS_V1_EKM_CLIENT_H #include "google/cloud/kms/v1/ekm_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..d61c765049c1d 100644 --- a/google/cloud/kms/v1/internal/autokey_connection_impl.cc +++ b/google/cloud/kms/v1/internal/autokey_connection_impl.cc @@ -100,6 +100,57 @@ AutokeyConnectionImpl::CreateKeyHandle( polling_policy(*current), __func__); } +StatusOr AutokeyConnectionImpl::CreateKeyHandle( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..56472e64b0a0d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request) override; + + future> CreateKeyHandle( + google::cloud::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..0b4b0fd2d8cc5 100644 --- a/google/cloud/kms/v1/internal/autokey_tracing_connection.cc +++ b/google/cloud/kms/v1/internal/autokey_tracing_connection.cc @@ -40,6 +40,28 @@ AutokeyTracingConnection::CreateKeyHandle( return internal::EndSpan(std::move(span), child_->CreateKeyHandle(request)); } +StatusOr +AutokeyTracingConnection::CreateKeyHandle( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AutokeyTracingConnection::CreateKeyHandle( + google::cloud::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(google::cloud::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..75ff2d2397d84 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request) override; + + future> CreateKeyHandle( + google::cloud::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_client.h b/google/cloud/kms/v1/key_management_client.h index b51fbcf8dd7aa..278009a3a216d 100644 --- a/google/cloud/kms/v1/key_management_client.h +++ b/google/cloud/kms/v1/key_management_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_KMS_V1_KEY_MANAGEMENT_CLIENT_H #include "google/cloud/kms/v1/key_management_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..06c57f66a777a 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::kms::v1::CreateKeyHandleRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateKeyHandle, + (google::cloud::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_client.h b/google/cloud/language/v1/language_client.h index 8565cf1ddc0ec..4e0570292405d 100644 --- a/google/cloud/language/v1/language_client.h +++ b/google/cloud/language/v1/language_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_LANGUAGE_V1_LANGUAGE_CLIENT_H #include "google/cloud/language/v1/language_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/language/v2/language_client.h index fca22b7d87d1b..e3f21a4caeb3e 100644 --- a/google/cloud/language/v2/language_client.h +++ b/google/cloud/language/v2/language_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_LANGUAGE_V2_LANGUAGE_CLIENT_H #include "google/cloud/language/v2/language_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/logging/v2/config_service_v2_client.cc index fc0bd5b1624a5..ad1cf1bb45373 100644 --- a/google/cloud/logging/v2/config_service_v2_client.cc +++ b/google/cloud/logging/v2/config_service_v2_client.cc @@ -59,6 +59,24 @@ ConfigServiceV2Client::CreateBucketAsync( return connection_->CreateBucketAsync(request); } +StatusOr +ConfigServiceV2Client::CreateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBucketAsync(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigServiceV2Client::CreateBucketAsync( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBucketAsync(google::cloud::ExperimentalTag{}, + operation); +} + future> ConfigServiceV2Client::UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request, Options opts) { @@ -66,6 +84,24 @@ ConfigServiceV2Client::UpdateBucketAsync( return connection_->UpdateBucketAsync(request); } +StatusOr +ConfigServiceV2Client::UpdateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBucketAsync(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigServiceV2Client::UpdateBucketAsync( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBucketAsync(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ConfigServiceV2Client::CreateBucket( google::logging::v2::CreateBucketRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -224,12 +260,40 @@ future> ConfigServiceV2Client::CreateLink( return connection_->CreateLink(request); } +StatusOr ConfigServiceV2Client::CreateLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::logging::v2::Link const& link, + std::string const& link_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::logging::v2::CreateLinkRequest request; + request.set_parent(parent); + *request.mutable_link() = link; + request.set_link_id(link_id); + return connection_->CreateLink(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigServiceV2Client::CreateLink( google::logging::v2::CreateLinkRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreateLink(request); } +StatusOr ConfigServiceV2Client::CreateLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLink(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ConfigServiceV2Client::CreateLink( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLink(google::cloud::ExperimentalTag{}, operation); +} + future> ConfigServiceV2Client::DeleteLink(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -238,6 +302,16 @@ ConfigServiceV2Client::DeleteLink(std::string const& name, Options opts) { return connection_->DeleteLink(request); } +StatusOr ConfigServiceV2Client::DeleteLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::logging::v2::DeleteLinkRequest request; + request.set_name(name); + return connection_->DeleteLink(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ConfigServiceV2Client::DeleteLink( google::logging::v2::DeleteLinkRequest const& request, Options opts) { @@ -245,6 +319,22 @@ ConfigServiceV2Client::DeleteLink( return connection_->DeleteLink(request); } +StatusOr ConfigServiceV2Client::DeleteLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLink(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigServiceV2Client::DeleteLink( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLink(google::cloud::ExperimentalTag{}, operation); +} + StreamRange ConfigServiceV2Client::ListLinks( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -405,6 +495,23 @@ ConfigServiceV2Client::CopyLogEntries( return connection_->CopyLogEntries(request); } +StatusOr ConfigServiceV2Client::CopyLogEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CopyLogEntries(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ConfigServiceV2Client::CopyLogEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CopyLogEntries(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace logging_v2 } // namespace cloud diff --git a/google/cloud/logging/v2/config_service_v2_client.h b/google/cloud/logging/v2/config_service_v2_client.h index 85074a02626bd..bff34b5905437 100644 --- a/google/cloud/logging/v2/config_service_v2_client.h +++ b/google/cloud/logging/v2/config_service_v2_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_LOGGING_V2_CONFIG_SERVICE_V2_CLIENT_H #include "google/cloud/logging/v2/config_service_v2_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -238,6 +240,15 @@ class ConfigServiceV2Client { google::logging::v2::CreateBucketRequest const& request, Options opts = {}); + StatusOr CreateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request, + Options opts = {}); + + future> CreateBucketAsync( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a log bucket asynchronously. @@ -281,6 +292,15 @@ class ConfigServiceV2Client { google::logging::v2::UpdateBucketRequest const& request, Options opts = {}); + StatusOr UpdateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request, + Options opts = {}); + + future> UpdateBucketAsync( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a log bucket that can be used to store log entries. After a bucket @@ -1063,6 +1083,11 @@ class ConfigServiceV2Client { std::string const& parent, google::logging::v2::Link const& link, std::string const& link_id, Options opts = {}); + StatusOr CreateLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::logging::v2::Link const& link, + std::string const& link_id, Options opts = {}); + // clang-format off /// /// Asynchronously creates a linked dataset in BigQuery which makes it possible @@ -1102,6 +1127,14 @@ class ConfigServiceV2Client { future> CreateLink( google::logging::v2::CreateLinkRequest const& request, Options opts = {}); + StatusOr CreateLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request, Options opts = {}); + + future> CreateLink( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a link. This will also delete the corresponding BigQuery linked @@ -1140,6 +1173,10 @@ class ConfigServiceV2Client { future> DeleteLink( std::string const& name, Options opts = {}); + StatusOr DeleteLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a link. This will also delete the corresponding BigQuery linked @@ -1178,6 +1215,14 @@ class ConfigServiceV2Client { future> DeleteLink( google::logging::v2::DeleteLinkRequest const& request, Options opts = {}); + StatusOr DeleteLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request, Options opts = {}); + + future> DeleteLink( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists links. @@ -1982,6 +2027,15 @@ class ConfigServiceV2Client { google::logging::v2::CopyLogEntriesRequest const& request, Options opts = {}); + StatusOr CopyLogEntries( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request, + Options opts = {}); + + future> CopyLogEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..8a6be14d36b77 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,58 @@ ConfigServiceV2ConnectionImpl::CreateBucketAsync( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::CreateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +238,58 @@ ConfigServiceV2ConnectionImpl::UpdateBucketAsync( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::UpdateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +554,57 @@ ConfigServiceV2ConnectionImpl::CreateLink( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::CreateLink( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +643,57 @@ ConfigServiceV2ConnectionImpl::DeleteLink( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::DeleteLink( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +921,59 @@ ConfigServiceV2ConnectionImpl::CopyLogEntries( polling_policy(*current), __func__); } +StatusOr +ConfigServiceV2ConnectionImpl::CopyLogEntries( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..0e2b3be86a74c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request) override; + + future> CreateBucketAsync( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request) override; + StatusOr UpdateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request) override; + + future> UpdateBucketAsync( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request) override; + + future> CreateLink( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLink( google::logging::v2::DeleteLinkRequest const& request) override; + StatusOr DeleteLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request) override; + + future> DeleteLink( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request) override; + + future> CopyLogEntries( + google::cloud::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..94c193c0ca3f0 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,30 @@ ConfigServiceV2TracingConnection::CreateBucketAsync( return internal::EndSpan(std::move(span), child_->CreateBucketAsync(request)); } +StatusOr +ConfigServiceV2TracingConnection::CreateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::CreateBucketAsync( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ConfigServiceV2TracingConnection::UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request) { @@ -71,6 +95,30 @@ ConfigServiceV2TracingConnection::UpdateBucketAsync( return internal::EndSpan(std::move(span), child_->UpdateBucketAsync(request)); } +StatusOr +ConfigServiceV2TracingConnection::UpdateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::UpdateBucketAsync( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ConfigServiceV2TracingConnection::CreateBucket( google::logging::v2::CreateBucketRequest const& request) { @@ -206,6 +254,30 @@ ConfigServiceV2TracingConnection::CreateLink( return internal::EndSpan(std::move(span), child_->CreateLink(request)); } +StatusOr +ConfigServiceV2TracingConnection::CreateLink( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::CreateLink( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ConfigServiceV2TracingConnection::DeleteLink( google::logging::v2::DeleteLinkRequest const& request) { @@ -215,6 +287,30 @@ ConfigServiceV2TracingConnection::DeleteLink( return internal::EndSpan(std::move(span), child_->DeleteLink(request)); } +StatusOr +ConfigServiceV2TracingConnection::DeleteLink( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::DeleteLink( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ConfigServiceV2TracingConnection::ListLinks( google::logging::v2::ListLinksRequest request) { @@ -325,6 +421,30 @@ ConfigServiceV2TracingConnection::CopyLogEntries( return internal::EndSpan(std::move(span), child_->CopyLogEntries(request)); } +StatusOr +ConfigServiceV2TracingConnection::CopyLogEntries( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ConfigServiceV2TracingConnection::CopyLogEntries( + google::cloud::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(google::cloud::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..9406cb60b0cba 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request) override; + + future> CreateBucketAsync( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBucketAsync( google::logging::v2::UpdateBucketRequest const& request) override; + StatusOr UpdateBucketAsync( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request) override; + + future> UpdateBucketAsync( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request) override; + + future> CreateLink( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLink( google::logging::v2::DeleteLinkRequest const& request) override; + StatusOr DeleteLink( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request) override; + + future> DeleteLink( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request) override; + + future> CopyLogEntries( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/logging/v2/logging_service_v2_client.h b/google/cloud/logging/v2/logging_service_v2_client.h index 505534539c7bf..5e459a28da31b 100644 --- a/google/cloud/logging/v2/logging_service_v2_client.h +++ b/google/cloud/logging/v2/logging_service_v2_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_LOGGING_V2_LOGGING_SERVICE_V2_CLIENT_H #include "google/cloud/logging/v2/logging_service_v2_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/logging/v2/metrics_service_v2_client.h index c468e53f32806..f2c94d0d2b225 100644 --- a/google/cloud/logging/v2/metrics_service_v2_client.h +++ b/google/cloud/logging/v2/metrics_service_v2_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_LOGGING_V2_METRICS_SERVICE_V2_CLIENT_H #include "google/cloud/logging/v2/metrics_service_v2_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..b70780c9b2099 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBucketAsync, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateBucketAsync, (google::logging::v2::UpdateBucketRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateBucketAsync, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::UpdateBucketRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBucketAsync, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CreateLinkRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateLink, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteLink, (google::logging::v2::DeleteLinkRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteLink, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::DeleteLinkRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteLink, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::logging::v2::CopyLogEntriesRequest const& request), + (override)); + + MOCK_METHOD(future>, + CopyLogEntries, + (google::cloud::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..082e3f1f9f3a0 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,61 @@ ManagedIdentitiesServiceConnectionImpl::CreateMicrosoftAdDomain( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +276,60 @@ ManagedIdentitiesServiceConnectionImpl::UpdateDomain( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::UpdateDomain( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +370,60 @@ ManagedIdentitiesServiceConnectionImpl::DeleteDomain( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::DeleteDomain( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +464,60 @@ ManagedIdentitiesServiceConnectionImpl::AttachTrust( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::AttachTrust( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +559,62 @@ ManagedIdentitiesServiceConnectionImpl::ReconfigureTrust( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::ReconfigureTrust( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +655,60 @@ ManagedIdentitiesServiceConnectionImpl::DetachTrust( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::DetachTrust( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +749,60 @@ ManagedIdentitiesServiceConnectionImpl::ValidateTrust( polling_policy(*current), __func__); } +StatusOr +ManagedIdentitiesServiceConnectionImpl::ValidateTrust( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..f37d6f12ffded 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request) override; + + future> + CreateMicrosoftAdDomain( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request) + override; + + future> UpdateDomain( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDomain(google::cloud::managedidentities::v1::DeleteDomainRequest const& request) override; + StatusOr DeleteDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request) + override; + + future> + DeleteDomain(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request) override; + StatusOr AttachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request) + override; + + future> AttachTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& request) override; + StatusOr ReconfigureTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request) override; + + future> + ReconfigureTrust(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request) override; + StatusOr DetachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request) + override; + + future> DetachTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request) override; + StatusOr ValidateTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& request) + override; + + future> ValidateTrust( + google::cloud::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..b321d7f910035 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,33 @@ ManagedIdentitiesServiceTracingConnection::CreateMicrosoftAdDomain( child_->CreateMicrosoftAdDomain(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::CreateMicrosoftAdDomain( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ManagedIdentitiesServiceTracingConnection::ResetAdminPassword( google::cloud::managedidentities::v1::ResetAdminPasswordRequest const& @@ -89,6 +116,30 @@ ManagedIdentitiesServiceTracingConnection::UpdateDomain( return internal::EndSpan(std::move(span), child_->UpdateDomain(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::UpdateDomain( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::UpdateDomain( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::DeleteDomain( google::cloud::managedidentities::v1::DeleteDomainRequest const& request) { @@ -98,6 +149,30 @@ ManagedIdentitiesServiceTracingConnection::DeleteDomain( return internal::EndSpan(std::move(span), child_->DeleteDomain(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::DeleteDomain( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::DeleteDomain( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request) { @@ -107,6 +182,30 @@ ManagedIdentitiesServiceTracingConnection::AttachTrust( return internal::EndSpan(std::move(span), child_->AttachTrust(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::AttachTrust( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::AttachTrust( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& @@ -118,6 +217,33 @@ ManagedIdentitiesServiceTracingConnection::ReconfigureTrust( return internal::EndSpan(std::move(span), child_->ReconfigureTrust(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::ReconfigureTrust( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::ReconfigureTrust( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request) { @@ -127,6 +253,30 @@ ManagedIdentitiesServiceTracingConnection::DetachTrust( return internal::EndSpan(std::move(span), child_->DetachTrust(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::DetachTrust( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::DetachTrust( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedIdentitiesServiceTracingConnection::ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request) { @@ -137,6 +287,32 @@ ManagedIdentitiesServiceTracingConnection::ValidateTrust( return internal::EndSpan(std::move(span), child_->ValidateTrust(request)); } +StatusOr +ManagedIdentitiesServiceTracingConnection::ValidateTrust( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedIdentitiesServiceTracingConnection::ValidateTrust( + google::cloud::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(google::cloud::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..156287c11beb2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request) override; + + future> + CreateMicrosoftAdDomain( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request) + override; + + future> UpdateDomain( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDomain(google::cloud::managedidentities::v1::DeleteDomainRequest const& request) override; + StatusOr DeleteDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request) + override; + + future> + DeleteDomain(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request) override; + StatusOr AttachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request) + override; + + future> AttachTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& request) override; + StatusOr ReconfigureTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request) override; + + future> + ReconfigureTrust(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request) override; + StatusOr DetachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request) + override; + + future> DetachTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request) override; + StatusOr ValidateTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& request) + override; + + future> ValidateTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; diff --git a/google/cloud/managedidentities/v1/managed_identities_client.cc b/google/cloud/managedidentities/v1/managed_identities_client.cc index c0b3ec7e11a43..ef35cfe3f4421 100644 --- a/google/cloud/managedidentities/v1/managed_identities_client.cc +++ b/google/cloud/managedidentities/v1/managed_identities_client.cc @@ -45,6 +45,20 @@ ManagedIdentitiesServiceClient::CreateMicrosoftAdDomain( return connection_->CreateMicrosoftAdDomain(request); } +StatusOr +ManagedIdentitiesServiceClient::CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& domain_name, + google::cloud::managedidentities::v1::Domain const& domain, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedidentities::v1::CreateMicrosoftAdDomainRequest request; + request.set_parent(parent); + request.set_domain_name(domain_name); + *request.mutable_domain() = domain; + return connection_->CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ManagedIdentitiesServiceClient::CreateMicrosoftAdDomain( google::cloud::managedidentities::v1::CreateMicrosoftAdDomainRequest const& @@ -54,6 +68,26 @@ ManagedIdentitiesServiceClient::CreateMicrosoftAdDomain( return connection_->CreateMicrosoftAdDomain(request); } +StatusOr +ManagedIdentitiesServiceClient::CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::CreateMicrosoftAdDomainRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedIdentitiesServiceClient::CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMicrosoftAdDomain(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ManagedIdentitiesServiceClient::ResetAdminPassword(std::string const& name, Options opts) { @@ -117,6 +151,19 @@ ManagedIdentitiesServiceClient::UpdateDomain( return connection_->UpdateDomain(request); } +StatusOr +ManagedIdentitiesServiceClient::UpdateDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::Domain const& domain, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedidentities::v1::UpdateDomainRequest request; + *request.mutable_domain() = domain; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDomain(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedIdentitiesServiceClient::UpdateDomain( google::cloud::managedidentities::v1::UpdateDomainRequest const& request, @@ -125,6 +172,24 @@ ManagedIdentitiesServiceClient::UpdateDomain( return connection_->UpdateDomain(request); } +StatusOr +ManagedIdentitiesServiceClient::UpdateDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDomain(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedIdentitiesServiceClient::UpdateDomain( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDomain(google::cloud::ExperimentalTag{}, operation); +} + future> ManagedIdentitiesServiceClient::DeleteDomain(std::string const& name, Options opts) { @@ -134,6 +199,18 @@ ManagedIdentitiesServiceClient::DeleteDomain(std::string const& name, return connection_->DeleteDomain(request); } +StatusOr +ManagedIdentitiesServiceClient::DeleteDomain(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedidentities::v1::DeleteDomainRequest request; + request.set_name(name); + return connection_->DeleteDomain(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedIdentitiesServiceClient::DeleteDomain( google::cloud::managedidentities::v1::DeleteDomainRequest const& request, @@ -142,6 +219,24 @@ ManagedIdentitiesServiceClient::DeleteDomain( return connection_->DeleteDomain(request); } +StatusOr +ManagedIdentitiesServiceClient::DeleteDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDomain(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedIdentitiesServiceClient::DeleteDomain( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDomain(google::cloud::ExperimentalTag{}, operation); +} + future> ManagedIdentitiesServiceClient::AttachTrust( std::string const& name, @@ -153,6 +248,19 @@ ManagedIdentitiesServiceClient::AttachTrust( return connection_->AttachTrust(request); } +StatusOr +ManagedIdentitiesServiceClient::AttachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::managedidentities::v1::Trust const& trust, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedidentities::v1::AttachTrustRequest request; + request.set_name(name); + *request.mutable_trust() = trust; + return connection_->AttachTrust(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedIdentitiesServiceClient::AttachTrust( google::cloud::managedidentities::v1::AttachTrustRequest const& request, @@ -161,6 +269,24 @@ ManagedIdentitiesServiceClient::AttachTrust( return connection_->AttachTrust(request); } +StatusOr +ManagedIdentitiesServiceClient::AttachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachTrust(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedIdentitiesServiceClient::AttachTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AttachTrust(google::cloud::ExperimentalTag{}, operation); +} + future> ManagedIdentitiesServiceClient::ReconfigureTrust( std::string const& name, std::string const& target_domain_name, @@ -174,6 +300,21 @@ ManagedIdentitiesServiceClient::ReconfigureTrust( return connection_->ReconfigureTrust(request); } +StatusOr +ManagedIdentitiesServiceClient::ReconfigureTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& target_domain_name, + std::vector const& target_dns_ip_addresses, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedidentities::v1::ReconfigureTrustRequest request; + request.set_name(name); + request.set_target_domain_name(target_domain_name); + *request.mutable_target_dns_ip_addresses() = {target_dns_ip_addresses.begin(), + target_dns_ip_addresses.end()}; + return connection_->ReconfigureTrust(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedIdentitiesServiceClient::ReconfigureTrust( google::cloud::managedidentities::v1::ReconfigureTrustRequest const& @@ -183,6 +324,26 @@ ManagedIdentitiesServiceClient::ReconfigureTrust( return connection_->ReconfigureTrust(request); } +StatusOr +ManagedIdentitiesServiceClient::ReconfigureTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReconfigureTrust(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedIdentitiesServiceClient::ReconfigureTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReconfigureTrust(google::cloud::ExperimentalTag{}, + operation); +} + future> ManagedIdentitiesServiceClient::DetachTrust( std::string const& name, @@ -194,6 +355,19 @@ ManagedIdentitiesServiceClient::DetachTrust( return connection_->DetachTrust(request); } +StatusOr +ManagedIdentitiesServiceClient::DetachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::managedidentities::v1::Trust const& trust, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedidentities::v1::DetachTrustRequest request; + request.set_name(name); + *request.mutable_trust() = trust; + return connection_->DetachTrust(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedIdentitiesServiceClient::DetachTrust( google::cloud::managedidentities::v1::DetachTrustRequest const& request, @@ -202,6 +376,24 @@ ManagedIdentitiesServiceClient::DetachTrust( return connection_->DetachTrust(request); } +StatusOr +ManagedIdentitiesServiceClient::DetachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachTrust(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedIdentitiesServiceClient::DetachTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DetachTrust(google::cloud::ExperimentalTag{}, operation); +} + future> ManagedIdentitiesServiceClient::ValidateTrust( std::string const& name, @@ -213,6 +405,19 @@ ManagedIdentitiesServiceClient::ValidateTrust( return connection_->ValidateTrust(request); } +StatusOr +ManagedIdentitiesServiceClient::ValidateTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::managedidentities::v1::Trust const& trust, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedidentities::v1::ValidateTrustRequest request; + request.set_name(name); + *request.mutable_trust() = trust; + return connection_->ValidateTrust(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedIdentitiesServiceClient::ValidateTrust( google::cloud::managedidentities::v1::ValidateTrustRequest const& request, @@ -221,6 +426,25 @@ ManagedIdentitiesServiceClient::ValidateTrust( return connection_->ValidateTrust(request); } +StatusOr +ManagedIdentitiesServiceClient::ValidateTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ValidateTrust(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedIdentitiesServiceClient::ValidateTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ValidateTrust(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace managedidentities_v1 } // namespace cloud diff --git a/google/cloud/managedidentities/v1/managed_identities_client.h b/google/cloud/managedidentities/v1/managed_identities_client.h index 32b8d2f37023e..2a081a20955de 100644 --- a/google/cloud/managedidentities/v1/managed_identities_client.h +++ b/google/cloud/managedidentities/v1/managed_identities_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MANAGEDIDENTITIES_V1_MANAGED_IDENTITIES_CLIENT_H #include "google/cloud/managedidentities/v1/managed_identities_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -172,6 +174,12 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::Domain const& domain, Options opts = {}); + StatusOr CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& domain_name, + google::cloud::managedidentities::v1::Domain const& domain, + Options opts = {}); + // clang-format off /// /// Creates a Microsoft AD domain. @@ -211,6 +219,17 @@ class ManagedIdentitiesServiceClient { CreateMicrosoftAdDomainRequest const& request, Options opts = {}); + StatusOr CreateMicrosoftAdDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request, + Options opts = {}); + + future> + CreateMicrosoftAdDomain(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resets a domain's administrator password. @@ -442,6 +461,11 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::Domain const& domain, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::Domain const& domain, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the metadata and configuration of a domain. @@ -480,6 +504,15 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::UpdateDomainRequest const& request, Options opts = {}); + StatusOr UpdateDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& request, + Options opts = {}); + + future> UpdateDomain( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a domain. @@ -513,6 +546,10 @@ class ManagedIdentitiesServiceClient { future> DeleteDomain(std::string const& name, Options opts = {}); + StatusOr DeleteDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a domain. @@ -552,6 +589,16 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::DeleteDomainRequest const& request, Options opts = {}); + StatusOr DeleteDomain( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& request, + Options opts = {}); + + future> + DeleteDomain(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds an AD trust to a domain. @@ -588,6 +635,12 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::Trust const& trust, Options opts = {}); + StatusOr AttachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::managedidentities::v1::Trust const& trust, + Options opts = {}); + // clang-format off /// /// Adds an AD trust to a domain. @@ -626,6 +679,15 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::AttachTrustRequest const& request, Options opts = {}); + StatusOr AttachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request, + Options opts = {}); + + future> AttachTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the DNS conditional forwarder. @@ -666,6 +728,12 @@ class ManagedIdentitiesServiceClient { std::vector const& target_dns_ip_addresses, Options opts = {}); + StatusOr ReconfigureTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& target_domain_name, + std::vector const& target_dns_ip_addresses, + Options opts = {}); + // clang-format off /// /// Updates the DNS conditional forwarder. @@ -706,6 +774,17 @@ class ManagedIdentitiesServiceClient { request, Options opts = {}); + StatusOr ReconfigureTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request, + Options opts = {}); + + future> + ReconfigureTrust(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes an AD trust. @@ -742,6 +821,12 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::Trust const& trust, Options opts = {}); + StatusOr DetachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::managedidentities::v1::Trust const& trust, + Options opts = {}); + // clang-format off /// /// Removes an AD trust. @@ -780,6 +865,15 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::DetachTrustRequest const& request, Options opts = {}); + StatusOr DetachTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request, + Options opts = {}); + + future> DetachTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Validates a trust state, that the target domain is reachable, and that the @@ -817,6 +911,12 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::Trust const& trust, Options opts = {}); + StatusOr ValidateTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::managedidentities::v1::Trust const& trust, + Options opts = {}); + // clang-format off /// /// Validates a trust state, that the target domain is reachable, and that the @@ -856,6 +956,15 @@ class ManagedIdentitiesServiceClient { google::cloud::managedidentities::v1::ValidateTrustRequest const& request, Options opts = {}); + StatusOr ValidateTrust( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& request, + Options opts = {}); + + future> ValidateTrust( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..19de7a4c67b1a 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1:: + CreateMicrosoftAdDomainRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMicrosoftAdDomain, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::UpdateDomainRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDomain, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDomain, @@ -84,12 +108,37 @@ class MockManagedIdentitiesServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteDomain, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DeleteDomainRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDomain, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AttachTrust, (google::cloud::managedidentities::v1::AttachTrustRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AttachTrust, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::AttachTrustRequest const& request), + (override)); + + MOCK_METHOD(future>, + AttachTrust, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReconfigureTrust, @@ -97,17 +146,54 @@ class MockManagedIdentitiesServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, ReconfigureTrust, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ReconfigureTrustRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ReconfigureTrust, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DetachTrust, (google::cloud::managedidentities::v1::DetachTrustRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DetachTrust, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::DetachTrustRequest const& request), + (override)); + + MOCK_METHOD(future>, + DetachTrust, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ValidateTrust, (google::cloud::managedidentities::v1::ValidateTrustRequest const& request), (override)); + + MOCK_METHOD(StatusOr, ValidateTrust, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedidentities::v1::ValidateTrustRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ValidateTrust, + (google::cloud::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..3630dda434a90 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,60 @@ ManagedKafkaConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +ManagedKafkaConnectionImpl::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +249,60 @@ ManagedKafkaConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +ManagedKafkaConnectionImpl::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +343,60 @@ ManagedKafkaConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +ManagedKafkaConnectionImpl::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..25fafde111d9e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::managedkafka::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(google::cloud::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..a92f3c12a4f1f 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,30 @@ ManagedKafkaTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +ManagedKafkaTracingConnection::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedKafkaTracingConnection::CreateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedKafkaTracingConnection::UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request) { @@ -71,6 +95,30 @@ ManagedKafkaTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +ManagedKafkaTracingConnection::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedKafkaTracingConnection::UpdateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedKafkaTracingConnection::DeleteCluster( google::cloud::managedkafka::v1::DeleteClusterRequest const& request) { @@ -80,6 +128,30 @@ ManagedKafkaTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +ManagedKafkaTracingConnection::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedKafkaTracingConnection::DeleteCluster( + google::cloud::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(google::cloud::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..97d5f3494de9d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::managedkafka::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(google::cloud::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_client.cc b/google/cloud/managedkafka/v1/managed_kafka_client.cc index 75a42fc24f0ff..34f61e4e76a17 100644 --- a/google/cloud/managedkafka/v1/managed_kafka_client.cc +++ b/google/cloud/managedkafka/v1/managed_kafka_client.cc @@ -77,6 +77,20 @@ ManagedKafkaClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr ManagedKafkaClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::managedkafka::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedkafka::v1::CreateClusterRequest request; + request.set_parent(parent); + *request.mutable_cluster() = cluster; + request.set_cluster_id(cluster_id); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedKafkaClient::CreateCluster( google::cloud::managedkafka::v1::CreateClusterRequest const& request, @@ -85,6 +99,24 @@ ManagedKafkaClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr ManagedKafkaClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedKafkaClient::CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> ManagedKafkaClient::UpdateCluster( google::cloud::managedkafka::v1::Cluster const& cluster, @@ -96,6 +128,18 @@ ManagedKafkaClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr ManagedKafkaClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedkafka::v1::UpdateClusterRequest request; + *request.mutable_cluster() = cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedKafkaClient::UpdateCluster( google::cloud::managedkafka::v1::UpdateClusterRequest const& request, @@ -104,6 +148,24 @@ ManagedKafkaClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr ManagedKafkaClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedKafkaClient::UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> ManagedKafkaClient::DeleteCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -112,6 +174,16 @@ ManagedKafkaClient::DeleteCluster(std::string const& name, Options opts) { return connection_->DeleteCluster(request); } +StatusOr ManagedKafkaClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::managedkafka::v1::DeleteClusterRequest request; + request.set_name(name); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedKafkaClient::DeleteCluster( google::cloud::managedkafka::v1::DeleteClusterRequest const& request, @@ -120,6 +192,24 @@ ManagedKafkaClient::DeleteCluster( return connection_->DeleteCluster(request); } +StatusOr ManagedKafkaClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedKafkaClient::DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ManagedKafkaClient::ListTopics(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/managedkafka/v1/managed_kafka_client.h b/google/cloud/managedkafka/v1/managed_kafka_client.h index f0f706c4908e8..f2bee2e626724 100644 --- a/google/cloud/managedkafka/v1/managed_kafka_client.h +++ b/google/cloud/managedkafka/v1/managed_kafka_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MANAGEDKAFKA_V1_MANAGED_KAFKA_CLIENT_H #include "google/cloud/managedkafka/v1/managed_kafka_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -262,6 +264,12 @@ class ManagedKafkaClient { google::cloud::managedkafka::v1::Cluster const& cluster, std::string const& cluster_id, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::managedkafka::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new cluster in a given project and location. @@ -300,6 +308,15 @@ class ManagedKafkaClient { google::cloud::managedkafka::v1::CreateClusterRequest const& request, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request, + Options opts = {}); + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the properties of a single cluster. @@ -338,6 +355,11 @@ class ManagedKafkaClient { google::cloud::managedkafka::v1::Cluster const& cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the properties of a single cluster. @@ -376,6 +398,15 @@ class ManagedKafkaClient { google::cloud::managedkafka::v1::UpdateClusterRequest const& request, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request, + Options opts = {}); + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single cluster. @@ -408,6 +439,10 @@ class ManagedKafkaClient { future> DeleteCluster(std::string const& name, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single cluster. @@ -447,6 +482,16 @@ class ManagedKafkaClient { google::cloud::managedkafka::v1::DeleteClusterRequest const& request, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request, + Options opts = {}); + + future> + DeleteCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the topics in a given cluster. 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..3e2524f4d5cad 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,54 @@ class MockManagedKafkaConnection (google::cloud::managedkafka::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCluster, (google::cloud::managedkafka::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::managedkafka::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::managedkafka::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCluster, + (google::cloud::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_client.cc b/google/cloud/memcache/v1/cloud_memcache_client.cc index 51fb0a77392a0..18e80c065e627 100644 --- a/google/cloud/memcache/v1/cloud_memcache_client.cc +++ b/google/cloud/memcache/v1/cloud_memcache_client.cc @@ -76,6 +76,20 @@ CloudMemcacheClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr CloudMemcacheClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::memcache::v1::Instance const& instance, + std::string const& instance_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::memcache::v1::CreateInstanceRequest request; + request.set_parent(parent); + *request.mutable_instance() = instance; + request.set_instance_id(instance_id); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudMemcacheClient::CreateInstance( google::cloud::memcache::v1::CreateInstanceRequest const& request, @@ -84,6 +98,24 @@ CloudMemcacheClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr CloudMemcacheClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudMemcacheClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudMemcacheClient::UpdateInstance( google::cloud::memcache::v1::Instance const& instance, @@ -95,6 +127,18 @@ CloudMemcacheClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr CloudMemcacheClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::memcache::v1::UpdateInstanceRequest request; + *request.mutable_instance() = instance; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudMemcacheClient::UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request, @@ -103,6 +147,24 @@ CloudMemcacheClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr CloudMemcacheClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudMemcacheClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudMemcacheClient::UpdateParameters( std::string const& name, google::protobuf::FieldMask const& update_mask, @@ -116,6 +178,20 @@ CloudMemcacheClient::UpdateParameters( return connection_->UpdateParameters(request); } +StatusOr CloudMemcacheClient::UpdateParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, google::protobuf::FieldMask const& update_mask, + google::cloud::memcache::v1::MemcacheParameters const& parameters, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::memcache::v1::UpdateParametersRequest request; + request.set_name(name); + *request.mutable_update_mask() = update_mask; + *request.mutable_parameters() = parameters; + return connection_->UpdateParameters(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudMemcacheClient::UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request, @@ -124,6 +200,24 @@ CloudMemcacheClient::UpdateParameters( return connection_->UpdateParameters(request); } +StatusOr CloudMemcacheClient::UpdateParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateParameters(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudMemcacheClient::UpdateParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateParameters(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudMemcacheClient::DeleteInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -132,6 +226,16 @@ CloudMemcacheClient::DeleteInstance(std::string const& name, Options opts) { return connection_->DeleteInstance(request); } +StatusOr CloudMemcacheClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::memcache::v1::DeleteInstanceRequest request; + request.set_name(name); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudMemcacheClient::DeleteInstance( google::cloud::memcache::v1::DeleteInstanceRequest const& request, @@ -140,6 +244,24 @@ CloudMemcacheClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr CloudMemcacheClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudMemcacheClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudMemcacheClient::ApplyParameters(std::string const& name, std::vector const& node_ids, @@ -152,6 +274,19 @@ CloudMemcacheClient::ApplyParameters(std::string const& name, return connection_->ApplyParameters(request); } +StatusOr CloudMemcacheClient::ApplyParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::vector const& node_ids, + bool apply_all, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::memcache::v1::ApplyParametersRequest request; + request.set_name(name); + *request.mutable_node_ids() = {node_ids.begin(), node_ids.end()}; + request.set_apply_all(apply_all); + return connection_->ApplyParameters(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudMemcacheClient::ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request, @@ -160,6 +295,24 @@ CloudMemcacheClient::ApplyParameters( return connection_->ApplyParameters(request); } +StatusOr CloudMemcacheClient::ApplyParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApplyParameters(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudMemcacheClient::ApplyParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ApplyParameters(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudMemcacheClient::RescheduleMaintenance( std::string const& instance, @@ -174,6 +327,22 @@ CloudMemcacheClient::RescheduleMaintenance( return connection_->RescheduleMaintenance(request); } +StatusOr +CloudMemcacheClient::RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& instance, + google::cloud::memcache::v1::RescheduleMaintenanceRequest::RescheduleType + reschedule_type, + google::protobuf::Timestamp const& schedule_time, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::memcache::v1::RescheduleMaintenanceRequest request; + request.set_instance(instance); + request.set_reschedule_type(reschedule_type); + *request.mutable_schedule_time() = schedule_time; + return connection_->RescheduleMaintenance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CloudMemcacheClient::RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request, @@ -182,6 +351,25 @@ CloudMemcacheClient::RescheduleMaintenance( return connection_->RescheduleMaintenance(request); } +StatusOr +CloudMemcacheClient::RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RescheduleMaintenance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudMemcacheClient::RescheduleMaintenance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RescheduleMaintenance(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace memcache_v1 } // namespace cloud diff --git a/google/cloud/memcache/v1/cloud_memcache_client.h b/google/cloud/memcache/v1/cloud_memcache_client.h index d62e3a2f85697..c080823722300 100644 --- a/google/cloud/memcache/v1/cloud_memcache_client.h +++ b/google/cloud/memcache/v1/cloud_memcache_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MEMCACHE_V1_CLOUD_MEMCACHE_CLIENT_H #include "google/cloud/memcache/v1/cloud_memcache_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -284,6 +286,12 @@ class CloudMemcacheClient { google::cloud::memcache::v1::Instance const& instance, std::string const& instance_id, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::memcache::v1::Instance const& instance, + std::string const& instance_id, Options opts = {}); + // clang-format off /// /// Creates a new Instance in a given location. @@ -322,6 +330,15 @@ class CloudMemcacheClient { google::cloud::memcache::v1::CreateInstanceRequest const& request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request, + Options opts = {}); + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates an existing Instance in a given project and location. @@ -359,6 +376,11 @@ class CloudMemcacheClient { google::cloud::memcache::v1::Instance const& instance, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an existing Instance in a given project and location. @@ -397,6 +419,15 @@ class CloudMemcacheClient { google::cloud::memcache::v1::UpdateInstanceRequest const& request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request, + Options opts = {}); + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the defined Memcached parameters for an existing instance. @@ -437,6 +468,12 @@ class CloudMemcacheClient { google::cloud::memcache::v1::MemcacheParameters const& parameters, Options opts = {}); + StatusOr UpdateParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, google::protobuf::FieldMask const& update_mask, + google::cloud::memcache::v1::MemcacheParameters const& parameters, + Options opts = {}); + // clang-format off /// /// Updates the defined Memcached parameters for an existing instance. @@ -478,6 +515,15 @@ class CloudMemcacheClient { google::cloud::memcache::v1::UpdateParametersRequest const& request, Options opts = {}); + StatusOr UpdateParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request, + Options opts = {}); + + future> UpdateParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Instance. @@ -512,6 +558,10 @@ class CloudMemcacheClient { future> DeleteInstance(std::string const& name, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Instance. @@ -551,6 +601,16 @@ class CloudMemcacheClient { google::cloud::memcache::v1::DeleteInstanceRequest const& request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request, + Options opts = {}); + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// `ApplyParameters` restarts the set of specified nodes in order to update @@ -590,6 +650,11 @@ class CloudMemcacheClient { std::string const& name, std::vector const& node_ids, bool apply_all, Options opts = {}); + StatusOr ApplyParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::vector const& node_ids, + bool apply_all, Options opts = {}); + // clang-format off /// /// `ApplyParameters` restarts the set of specified nodes in order to update @@ -629,6 +694,15 @@ class CloudMemcacheClient { google::cloud::memcache::v1::ApplyParametersRequest const& request, Options opts = {}); + StatusOr ApplyParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request, + Options opts = {}); + + future> ApplyParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Reschedules upcoming maintenance event. @@ -670,6 +744,13 @@ class CloudMemcacheClient { reschedule_type, google::protobuf::Timestamp const& schedule_time, Options opts = {}); + StatusOr RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& instance, + google::cloud::memcache::v1::RescheduleMaintenanceRequest::RescheduleType + reschedule_type, + google::protobuf::Timestamp const& schedule_time, Options opts = {}); + // clang-format off /// /// Reschedules upcoming maintenance event. @@ -708,6 +789,15 @@ class CloudMemcacheClient { google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request, Options opts = {}); + StatusOr RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request, + Options opts = {}); + + future> RescheduleMaintenance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..1ecf32460966f 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,59 @@ CloudMemcacheConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +243,59 @@ CloudMemcacheConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +335,59 @@ CloudMemcacheConnectionImpl::UpdateParameters( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::UpdateParameters( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +427,60 @@ CloudMemcacheConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +520,59 @@ CloudMemcacheConnectionImpl::ApplyParameters( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::ApplyParameters( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +613,59 @@ CloudMemcacheConnectionImpl::RescheduleMaintenance( polling_policy(*current), __func__); } +StatusOr +CloudMemcacheConnectionImpl::RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..d110dc20cedc6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request) override; + StatusOr UpdateParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request) + override; + + future> UpdateParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::memcache::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request) override; + StatusOr ApplyParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request) + override; + + future> ApplyParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) override; + StatusOr RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) + override; + + future> RescheduleMaintenance( + google::cloud::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..89bf823f2174d 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,30 @@ CloudMemcacheTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +CloudMemcacheTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request) { @@ -71,6 +95,30 @@ CloudMemcacheTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +CloudMemcacheTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request) { @@ -80,6 +128,30 @@ CloudMemcacheTracingConnection::UpdateParameters( return internal::EndSpan(std::move(span), child_->UpdateParameters(request)); } +StatusOr +CloudMemcacheTracingConnection::UpdateParameters( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::UpdateParameters( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::DeleteInstance( google::cloud::memcache::v1::DeleteInstanceRequest const& request) { @@ -89,6 +161,30 @@ CloudMemcacheTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +CloudMemcacheTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request) { @@ -98,6 +194,30 @@ CloudMemcacheTracingConnection::ApplyParameters( return internal::EndSpan(std::move(span), child_->ApplyParameters(request)); } +StatusOr +CloudMemcacheTracingConnection::ApplyParameters( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::ApplyParameters( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudMemcacheTracingConnection::RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) { @@ -108,6 +228,30 @@ CloudMemcacheTracingConnection::RescheduleMaintenance( child_->RescheduleMaintenance(request)); } +StatusOr +CloudMemcacheTracingConnection::RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudMemcacheTracingConnection::RescheduleMaintenance( + google::cloud::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( + google::cloud::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..b8196ea64b366 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::memcache::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateParameters( google::cloud::memcache::v1::UpdateParametersRequest const& request) override; + StatusOr UpdateParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request) + override; + + future> UpdateParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::memcache::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ApplyParameters( google::cloud::memcache::v1::ApplyParametersRequest const& request) override; + StatusOr ApplyParameters( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request) + override; + + future> ApplyParameters( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RescheduleMaintenance( google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) override; + StatusOr RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request) + override; + + future> RescheduleMaintenance( + google::cloud::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..d45263503cd5d 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::memcache::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateParameters, (google::cloud::memcache::v1::UpdateParametersRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateParameters, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::UpdateParametersRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateParameters, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::memcache::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ApplyParameters, (google::cloud::memcache::v1::ApplyParametersRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ApplyParameters, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::ApplyParametersRequest const& request), + (override)); + + MOCK_METHOD(future>, + ApplyParameters, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RescheduleMaintenance, (google::cloud::memcache::v1::RescheduleMaintenanceRequest const& request), (override)); + + MOCK_METHOD(StatusOr, RescheduleMaintenance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::memcache::v1::RescheduleMaintenanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RescheduleMaintenance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/metastore/v1/dataproc_metastore_client.cc b/google/cloud/metastore/v1/dataproc_metastore_client.cc index 80467a937561d..04d539dc5e945 100644 --- a/google/cloud/metastore/v1/dataproc_metastore_client.cc +++ b/google/cloud/metastore/v1/dataproc_metastore_client.cc @@ -76,6 +76,20 @@ DataprocMetastoreClient::CreateService( return connection_->CreateService(request); } +StatusOr DataprocMetastoreClient::CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::metastore::v1::Service const& service, + std::string const& service_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::CreateServiceRequest request; + request.set_parent(parent); + *request.mutable_service() = service; + request.set_service_id(service_id); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreClient::CreateService( google::cloud::metastore::v1::CreateServiceRequest const& request, @@ -84,6 +98,24 @@ DataprocMetastoreClient::CreateService( return connection_->CreateService(request); } +StatusOr DataprocMetastoreClient::CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::CreateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreClient::UpdateService( google::cloud::metastore::v1::Service const& service, @@ -95,6 +127,18 @@ DataprocMetastoreClient::UpdateService( return connection_->UpdateService(request); } +StatusOr DataprocMetastoreClient::UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::Service const& service, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::UpdateServiceRequest request; + *request.mutable_service() = service; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreClient::UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request, @@ -103,6 +147,24 @@ DataprocMetastoreClient::UpdateService( return connection_->UpdateService(request); } +StatusOr DataprocMetastoreClient::UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreClient::DeleteService(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -111,6 +173,16 @@ DataprocMetastoreClient::DeleteService(std::string const& name, Options opts) { return connection_->DeleteService(request); } +StatusOr DataprocMetastoreClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::DeleteServiceRequest request; + request.set_name(name); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreClient::DeleteService( google::cloud::metastore::v1::DeleteServiceRequest const& request, @@ -119,6 +191,24 @@ DataprocMetastoreClient::DeleteService( return connection_->DeleteService(request); } +StatusOr DataprocMetastoreClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::DeleteService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DataprocMetastoreClient::ListMetadataImports(std::string const& parent, Options opts) { @@ -166,6 +256,21 @@ DataprocMetastoreClient::CreateMetadataImport( return connection_->CreateMetadataImport(request); } +StatusOr +DataprocMetastoreClient::CreateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::metastore::v1::MetadataImport const& metadata_import, + std::string const& metadata_import_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::CreateMetadataImportRequest request; + request.set_parent(parent); + *request.mutable_metadata_import() = metadata_import; + request.set_metadata_import_id(metadata_import_id); + return connection_->CreateMetadataImport( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreClient::CreateMetadataImport( google::cloud::metastore::v1::CreateMetadataImportRequest const& request, @@ -174,6 +279,25 @@ DataprocMetastoreClient::CreateMetadataImport( return connection_->CreateMetadataImport(request); } +StatusOr +DataprocMetastoreClient::CreateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMetadataImport( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::CreateMetadataImport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMetadataImport(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreClient::UpdateMetadataImport( google::cloud::metastore::v1::MetadataImport const& metadata_import, @@ -185,6 +309,19 @@ DataprocMetastoreClient::UpdateMetadataImport( return connection_->UpdateMetadataImport(request); } +StatusOr +DataprocMetastoreClient::UpdateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::MetadataImport const& metadata_import, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::UpdateMetadataImportRequest request; + *request.mutable_metadata_import() = metadata_import; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateMetadataImport( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreClient::UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request, @@ -193,6 +330,25 @@ DataprocMetastoreClient::UpdateMetadataImport( return connection_->UpdateMetadataImport(request); } +StatusOr +DataprocMetastoreClient::UpdateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMetadataImport( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::UpdateMetadataImport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMetadataImport(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreClient::ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request, @@ -201,6 +357,25 @@ DataprocMetastoreClient::ExportMetadata( return connection_->ExportMetadata(request); } +StatusOr +DataprocMetastoreClient::ExportMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportMetadata(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::ExportMetadata( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportMetadata(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreClient::RestoreService(std::string const& service, std::string const& backup, @@ -212,6 +387,20 @@ DataprocMetastoreClient::RestoreService(std::string const& service, return connection_->RestoreService(request); } +StatusOr +DataprocMetastoreClient::RestoreService(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& service, + std::string const& backup, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::RestoreServiceRequest request; + request.set_service(service); + request.set_backup(backup); + return connection_->RestoreService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreClient::RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request, @@ -220,6 +409,25 @@ DataprocMetastoreClient::RestoreService( return connection_->RestoreService(request); } +StatusOr +DataprocMetastoreClient::RestoreService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::RestoreService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreService(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DataprocMetastoreClient::ListBackups(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -264,6 +472,20 @@ DataprocMetastoreClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr DataprocMetastoreClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::metastore::v1::Backup const& backup, + std::string const& backup_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::CreateBackupRequest request; + request.set_parent(parent); + *request.mutable_backup() = backup; + request.set_backup_id(backup_id); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreClient::CreateBackup( google::cloud::metastore::v1::CreateBackupRequest const& request, @@ -272,6 +494,23 @@ DataprocMetastoreClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr DataprocMetastoreClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, operation); +} + future> DataprocMetastoreClient::DeleteBackup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -280,6 +519,16 @@ DataprocMetastoreClient::DeleteBackup(std::string const& name, Options opts) { return connection_->DeleteBackup(request); } +StatusOr DataprocMetastoreClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::DeleteBackupRequest request; + request.set_name(name); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreClient::DeleteBackup( google::cloud::metastore::v1::DeleteBackupRequest const& request, @@ -288,6 +537,23 @@ DataprocMetastoreClient::DeleteBackup( return connection_->DeleteBackup(request); } +StatusOr DataprocMetastoreClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, operation); +} + future> DataprocMetastoreClient::QueryMetadata( google::cloud::metastore::v1::QueryMetadataRequest const& request, @@ -296,6 +562,24 @@ DataprocMetastoreClient::QueryMetadata( return connection_->QueryMetadata(request); } +StatusOr DataprocMetastoreClient::QueryMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->QueryMetadata(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::QueryMetadata( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->QueryMetadata(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreClient::MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request, @@ -304,6 +588,25 @@ DataprocMetastoreClient::MoveTableToDatabase( return connection_->MoveTableToDatabase(request); } +StatusOr +DataprocMetastoreClient::MoveTableToDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveTableToDatabase(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::MoveTableToDatabase( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveTableToDatabase(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreClient::AlterMetadataResourceLocation( @@ -314,6 +617,27 @@ DataprocMetastoreClient::AlterMetadataResourceLocation( return connection_->AlterMetadataResourceLocation(request); } +StatusOr +DataprocMetastoreClient::AlterMetadataResourceLocation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AlterMetadataResourceLocation( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreClient::AlterMetadataResourceLocation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AlterMetadataResourceLocation( + google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace metastore_v1 } // namespace cloud diff --git a/google/cloud/metastore/v1/dataproc_metastore_client.h b/google/cloud/metastore/v1/dataproc_metastore_client.h index dcd3891b66609..acd6902d8c54d 100644 --- a/google/cloud/metastore/v1/dataproc_metastore_client.h +++ b/google/cloud/metastore/v1/dataproc_metastore_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_METASTORE_V1_DATAPROC_METASTORE_CLIENT_H #include "google/cloud/metastore/v1/dataproc_metastore_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -287,6 +289,12 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::Service const& service, std::string const& service_id, Options opts = {}); + StatusOr CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::metastore::v1::Service const& service, + std::string const& service_id, Options opts = {}); + // clang-format off /// /// Creates a metastore service in a project and location. @@ -325,6 +333,15 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::CreateServiceRequest const& request, Options opts = {}); + StatusOr CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request, + Options opts = {}); + + future> CreateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single service. @@ -366,6 +383,11 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::Service const& service, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::Service const& service, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single service. @@ -404,6 +426,15 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::UpdateServiceRequest const& request, Options opts = {}); + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request, + Options opts = {}); + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single service. @@ -439,6 +470,10 @@ class DataprocMetastoreClient { future> DeleteService(std::string const& name, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single service. @@ -478,6 +513,16 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::DeleteServiceRequest const& request, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request, + Options opts = {}); + + future> + DeleteService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists imports in a service. @@ -661,6 +706,12 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::MetadataImport const& metadata_import, std::string const& metadata_import_id, Options opts = {}); + StatusOr CreateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::metastore::v1::MetadataImport const& metadata_import, + std::string const& metadata_import_id, Options opts = {}); + // clang-format off /// /// Creates a new MetadataImport in a given project and location. @@ -700,6 +751,16 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::CreateMetadataImportRequest const& request, Options opts = {}); + StatusOr CreateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request, + Options opts = {}); + + future> + CreateMetadataImport(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates a single import. @@ -743,6 +804,11 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::MetadataImport const& metadata_import, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::MetadataImport const& metadata_import, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a single import. @@ -783,6 +849,16 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::UpdateMetadataImportRequest const& request, Options opts = {}); + StatusOr UpdateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request, + Options opts = {}); + + future> + UpdateMetadataImport(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Exports metadata from a service. @@ -821,6 +897,15 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::ExportMetadataRequest const& request, Options opts = {}); + StatusOr ExportMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request, + Options opts = {}); + + future> ExportMetadata( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Restores a service from a backup. @@ -860,6 +945,10 @@ class DataprocMetastoreClient { future> RestoreService( std::string const& service, std::string const& backup, Options opts = {}); + StatusOr RestoreService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service, std::string const& backup, Options opts = {}); + // clang-format off /// /// Restores a service from a backup. @@ -898,6 +987,15 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::RestoreServiceRequest const& request, Options opts = {}); + StatusOr RestoreService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request, + Options opts = {}); + + future> RestoreService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists backups in a service. @@ -1079,6 +1177,12 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::Backup const& backup, std::string const& backup_id, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::metastore::v1::Backup const& backup, + std::string const& backup_id, Options opts = {}); + // clang-format off /// /// Creates a new backup in a given project and location. @@ -1117,6 +1221,15 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::CreateBackupRequest const& request, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request, + Options opts = {}); + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single backup. @@ -1152,6 +1265,10 @@ class DataprocMetastoreClient { future> DeleteBackup(std::string const& name, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single backup. @@ -1190,6 +1307,16 @@ class DataprocMetastoreClient { DeleteBackup(google::cloud::metastore::v1::DeleteBackupRequest const& request, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request, + Options opts = {}); + + future> + DeleteBackup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Query DPMS metadata. @@ -1229,6 +1356,16 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::QueryMetadataRequest const& request, Options opts = {}); + StatusOr QueryMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request, + Options opts = {}); + + future> + QueryMetadata(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Move a table to another database. @@ -1268,6 +1405,16 @@ class DataprocMetastoreClient { google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request, Options opts = {}); + StatusOr MoveTableToDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request, + Options opts = {}); + + future> + MoveTableToDatabase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Alter metadata resource location. The metadata resource can be a database, @@ -1312,6 +1459,18 @@ class DataprocMetastoreClient { request, Options opts = {}); + StatusOr AlterMetadataResourceLocation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request, + Options opts = {}); + + future> + AlterMetadataResourceLocation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/metastore/v1/dataproc_metastore_federation_client.cc index 167cdafe7b559..8dbd29f3c149e 100644 --- a/google/cloud/metastore/v1/dataproc_metastore_federation_client.cc +++ b/google/cloud/metastore/v1/dataproc_metastore_federation_client.cc @@ -81,6 +81,21 @@ DataprocMetastoreFederationClient::CreateFederation( return connection_->CreateFederation(request); } +StatusOr +DataprocMetastoreFederationClient::CreateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::metastore::v1::Federation const& federation, + std::string const& federation_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::CreateFederationRequest request; + request.set_parent(parent); + *request.mutable_federation() = federation; + request.set_federation_id(federation_id); + return connection_->CreateFederation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreFederationClient::CreateFederation( google::cloud::metastore::v1::CreateFederationRequest const& request, @@ -89,6 +104,25 @@ DataprocMetastoreFederationClient::CreateFederation( return connection_->CreateFederation(request); } +StatusOr +DataprocMetastoreFederationClient::CreateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFederation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreFederationClient::CreateFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFederation(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreFederationClient::UpdateFederation( google::cloud::metastore::v1::Federation const& federation, @@ -100,6 +134,19 @@ DataprocMetastoreFederationClient::UpdateFederation( return connection_->UpdateFederation(request); } +StatusOr +DataprocMetastoreFederationClient::UpdateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::Federation const& federation, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::UpdateFederationRequest request; + *request.mutable_federation() = federation; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFederation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreFederationClient::UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request, @@ -108,6 +155,25 @@ DataprocMetastoreFederationClient::UpdateFederation( return connection_->UpdateFederation(request); } +StatusOr +DataprocMetastoreFederationClient::UpdateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFederation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreFederationClient::UpdateFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFederation(google::cloud::ExperimentalTag{}, + operation); +} + future> DataprocMetastoreFederationClient::DeleteFederation(std::string const& name, Options opts) { @@ -117,6 +183,17 @@ DataprocMetastoreFederationClient::DeleteFederation(std::string const& name, return connection_->DeleteFederation(request); } +StatusOr +DataprocMetastoreFederationClient::DeleteFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::metastore::v1::DeleteFederationRequest request; + request.set_name(name); + return connection_->DeleteFederation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DataprocMetastoreFederationClient::DeleteFederation( google::cloud::metastore::v1::DeleteFederationRequest const& request, @@ -125,6 +202,25 @@ DataprocMetastoreFederationClient::DeleteFederation( return connection_->DeleteFederation(request); } +StatusOr +DataprocMetastoreFederationClient::DeleteFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFederation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DataprocMetastoreFederationClient::DeleteFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFederation(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace metastore_v1 } // namespace cloud diff --git a/google/cloud/metastore/v1/dataproc_metastore_federation_client.h b/google/cloud/metastore/v1/dataproc_metastore_federation_client.h index 8de7eafa28c7e..8cff56e86d21c 100644 --- a/google/cloud/metastore/v1/dataproc_metastore_federation_client.h +++ b/google/cloud/metastore/v1/dataproc_metastore_federation_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_METASTORE_V1_DATAPROC_METASTORE_FEDERATION_CLIENT_H #include "google/cloud/metastore/v1/dataproc_metastore_federation_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -285,6 +287,12 @@ class DataprocMetastoreFederationClient { google::cloud::metastore::v1::Federation const& federation, std::string const& federation_id, Options opts = {}); + StatusOr CreateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::metastore::v1::Federation const& federation, + std::string const& federation_id, Options opts = {}); + // clang-format off /// /// Creates a metastore federation in a project and location. @@ -323,6 +331,15 @@ class DataprocMetastoreFederationClient { google::cloud::metastore::v1::CreateFederationRequest const& request, Options opts = {}); + StatusOr CreateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request, + Options opts = {}); + + future> CreateFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the fields of a federation. @@ -364,6 +381,11 @@ class DataprocMetastoreFederationClient { google::cloud::metastore::v1::Federation const& federation, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::Federation const& federation, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the fields of a federation. @@ -402,6 +424,15 @@ class DataprocMetastoreFederationClient { google::cloud::metastore::v1::UpdateFederationRequest const& request, Options opts = {}); + StatusOr UpdateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request, + Options opts = {}); + + future> UpdateFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single federation. @@ -437,6 +468,10 @@ class DataprocMetastoreFederationClient { future> DeleteFederation(std::string const& name, Options opts = {}); + StatusOr DeleteFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single federation. @@ -476,6 +511,16 @@ class DataprocMetastoreFederationClient { google::cloud::metastore::v1::DeleteFederationRequest const& request, Options opts = {}); + StatusOr DeleteFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request, + Options opts = {}); + + future> + DeleteFederation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..89c3e01c76204 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,59 @@ DataprocMetastoreConnectionImpl::CreateService( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::CreateService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +246,59 @@ DataprocMetastoreConnectionImpl::UpdateService( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::UpdateService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +338,60 @@ DataprocMetastoreConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +482,60 @@ DataprocMetastoreConnectionImpl::CreateMetadataImport( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::CreateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +576,60 @@ DataprocMetastoreConnectionImpl::UpdateMetadataImport( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::UpdateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +669,60 @@ DataprocMetastoreConnectionImpl::ExportMetadata( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::ExportMetadata( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +762,59 @@ DataprocMetastoreConnectionImpl::RestoreService( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::RestoreService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +902,58 @@ DataprocMetastoreConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +993,59 @@ DataprocMetastoreConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1085,60 @@ DataprocMetastoreConnectionImpl::QueryMetadata( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::QueryMetadata( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1179,60 @@ DataprocMetastoreConnectionImpl::MoveTableToDatabase( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::MoveTableToDatabase( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1274,62 @@ DataprocMetastoreConnectionImpl::AlterMetadataResourceLocation( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreConnectionImpl::AlterMetadataResourceLocation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..92f8003b410be 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request) + override; + + future> CreateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request) + override; + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService(google::cloud::metastore::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request) + override; + + future> + DeleteService(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request) + override; + + future> + CreateMetadataImport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) override; + StatusOr UpdateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) + override; + + future> + UpdateMetadataImport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request) override; + StatusOr ExportMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request) + override; + + future> ExportMetadata( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request) override; + StatusOr RestoreService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request) + override; + + future> RestoreService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup(google::cloud::metastore::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request) + override; + + future> + DeleteBackup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> QueryMetadata(google::cloud::metastore::v1::QueryMetadataRequest const& request) override; + StatusOr QueryMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request) + override; + + future> + QueryMetadata(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) override; + StatusOr MoveTableToDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) + override; + + future> + MoveTableToDatabase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AlterMetadataResourceLocation( google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& request) override; + StatusOr AlterMetadataResourceLocation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request) override; + + future> + AlterMetadataResourceLocation( + google::cloud::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..be1b100879ab6 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,60 @@ DataprocMetastoreFederationConnectionImpl::CreateFederation( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreFederationConnectionImpl::CreateFederation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +259,60 @@ DataprocMetastoreFederationConnectionImpl::UpdateFederation( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreFederationConnectionImpl::UpdateFederation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +353,60 @@ DataprocMetastoreFederationConnectionImpl::DeleteFederation( polling_policy(*current), __func__); } +StatusOr +DataprocMetastoreFederationConnectionImpl::DeleteFederation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..ae9cf91721320 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request) + override; + + future> CreateFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request) override; + StatusOr UpdateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request) + override; + + future> UpdateFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFederation(google::cloud::metastore::v1::DeleteFederationRequest const& request) override; + StatusOr DeleteFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request) + override; + + future> + DeleteFederation(google::cloud::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..bca690890c95e 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,30 @@ DataprocMetastoreFederationTracingConnection::CreateFederation( return internal::EndSpan(std::move(span), child_->CreateFederation(request)); } +StatusOr +DataprocMetastoreFederationTracingConnection::CreateFederation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreFederationTracingConnection::CreateFederation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreFederationTracingConnection::UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request) { @@ -73,6 +97,30 @@ DataprocMetastoreFederationTracingConnection::UpdateFederation( return internal::EndSpan(std::move(span), child_->UpdateFederation(request)); } +StatusOr +DataprocMetastoreFederationTracingConnection::UpdateFederation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreFederationTracingConnection::UpdateFederation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreFederationTracingConnection::DeleteFederation( google::cloud::metastore::v1::DeleteFederationRequest const& request) { @@ -82,6 +130,30 @@ DataprocMetastoreFederationTracingConnection::DeleteFederation( return internal::EndSpan(std::move(span), child_->DeleteFederation(request)); } +StatusOr +DataprocMetastoreFederationTracingConnection::DeleteFederation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreFederationTracingConnection::DeleteFederation( + google::cloud::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(google::cloud::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..d8442ee5eca3c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request) + override; + + future> CreateFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFederation( google::cloud::metastore::v1::UpdateFederationRequest const& request) override; + StatusOr UpdateFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request) + override; + + future> UpdateFederation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFederation(google::cloud::metastore::v1::DeleteFederationRequest const& request) override; + StatusOr DeleteFederation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request) + override; + + future> + DeleteFederation(google::cloud::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..8100e004cee8e 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,30 @@ DataprocMetastoreTracingConnection::CreateService( return internal::EndSpan(std::move(span), child_->CreateService(request)); } +StatusOr +DataprocMetastoreTracingConnection::CreateService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::CreateService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request) { @@ -71,6 +95,30 @@ DataprocMetastoreTracingConnection::UpdateService( return internal::EndSpan(std::move(span), child_->UpdateService(request)); } +StatusOr +DataprocMetastoreTracingConnection::UpdateService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::UpdateService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::DeleteService( google::cloud::metastore::v1::DeleteServiceRequest const& request) { @@ -80,6 +128,30 @@ DataprocMetastoreTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr +DataprocMetastoreTracingConnection::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::DeleteService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DataprocMetastoreTracingConnection::ListMetadataImports( google::cloud::metastore::v1::ListMetadataImportsRequest request) { @@ -111,6 +183,30 @@ DataprocMetastoreTracingConnection::CreateMetadataImport( child_->CreateMetadataImport(request)); } +StatusOr +DataprocMetastoreTracingConnection::CreateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::CreateMetadataImport( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) { @@ -121,6 +217,30 @@ DataprocMetastoreTracingConnection::UpdateMetadataImport( child_->UpdateMetadataImport(request)); } +StatusOr +DataprocMetastoreTracingConnection::UpdateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::UpdateMetadataImport( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request) { @@ -130,6 +250,30 @@ DataprocMetastoreTracingConnection::ExportMetadata( return internal::EndSpan(std::move(span), child_->ExportMetadata(request)); } +StatusOr +DataprocMetastoreTracingConnection::ExportMetadata( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::ExportMetadata( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request) { @@ -139,6 +283,30 @@ DataprocMetastoreTracingConnection::RestoreService( return internal::EndSpan(std::move(span), child_->RestoreService(request)); } +StatusOr +DataprocMetastoreTracingConnection::RestoreService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::RestoreService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DataprocMetastoreTracingConnection::ListBackups( google::cloud::metastore::v1::ListBackupsRequest request) { @@ -168,6 +336,30 @@ DataprocMetastoreTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +DataprocMetastoreTracingConnection::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::CreateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::DeleteBackup( google::cloud::metastore::v1::DeleteBackupRequest const& request) { @@ -177,6 +369,30 @@ DataprocMetastoreTracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr +DataprocMetastoreTracingConnection::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::DeleteBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::QueryMetadata( google::cloud::metastore::v1::QueryMetadataRequest const& request) { @@ -186,6 +402,30 @@ DataprocMetastoreTracingConnection::QueryMetadata( return internal::EndSpan(std::move(span), child_->QueryMetadata(request)); } +StatusOr +DataprocMetastoreTracingConnection::QueryMetadata( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::QueryMetadata( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) { @@ -196,6 +436,30 @@ DataprocMetastoreTracingConnection::MoveTableToDatabase( child_->MoveTableToDatabase(request)); } +StatusOr +DataprocMetastoreTracingConnection::MoveTableToDatabase( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::MoveTableToDatabase( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DataprocMetastoreTracingConnection::AlterMetadataResourceLocation( @@ -209,6 +473,34 @@ DataprocMetastoreTracingConnection::AlterMetadataResourceLocation( child_->AlterMetadataResourceLocation(request)); } +StatusOr +DataprocMetastoreTracingConnection::AlterMetadataResourceLocation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DataprocMetastoreTracingConnection::AlterMetadataResourceLocation( + google::cloud::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( + google::cloud::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..200288a5b7e94 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request) + override; + + future> CreateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateService( google::cloud::metastore::v1::UpdateServiceRequest const& request) override; + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request) + override; + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService(google::cloud::metastore::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request) + override; + + future> + DeleteService(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& request) + override; + + future> + CreateMetadataImport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMetadataImport( google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) override; + StatusOr UpdateMetadataImport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& request) + override; + + future> + UpdateMetadataImport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportMetadata( google::cloud::metastore::v1::ExportMetadataRequest const& request) override; + StatusOr ExportMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request) + override; + + future> ExportMetadata( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RestoreService( google::cloud::metastore::v1::RestoreServiceRequest const& request) override; + StatusOr RestoreService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request) + override; + + future> RestoreService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackup(google::cloud::metastore::v1::DeleteBackupRequest const& request) override; + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request) + override; + + future> + DeleteBackup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> QueryMetadata(google::cloud::metastore::v1::QueryMetadataRequest const& request) override; + StatusOr QueryMetadata( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request) + override; + + future> + QueryMetadata(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveTableToDatabase( google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) override; + StatusOr MoveTableToDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request) + override; + + future> + MoveTableToDatabase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AlterMetadataResourceLocation( google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& request) override; + StatusOr AlterMetadataResourceLocation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request) override; + + future> + AlterMetadataResourceLocation( + google::cloud::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..c291e42a67e77 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateService, (google::cloud::metastore::v1::UpdateServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteService, (google::cloud::metastore::v1::DeleteServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListMetadataImports, @@ -89,23 +125,71 @@ class MockDataprocMetastoreConnection request), (override)); + MOCK_METHOD(StatusOr, CreateMetadataImport, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateMetadataImportRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateMetadataImport, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateMetadataImport, (google::cloud::metastore::v1::UpdateMetadataImportRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateMetadataImport, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateMetadataImportRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateMetadataImport, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ExportMetadata, (google::cloud::metastore::v1::ExportMetadataRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ExportMetadata, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::ExportMetadataRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportMetadata, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RestoreService, (google::cloud::metastore::v1::RestoreServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RestoreService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::RestoreServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RestoreService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListBackups, (google::cloud::metastore::v1::ListBackupsRequest request), (override)); @@ -119,18 +203,55 @@ class MockDataprocMetastoreConnection (google::cloud::metastore::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackup, (google::cloud::metastore::v1::DeleteBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, QueryMetadata, (google::cloud::metastore::v1::QueryMetadataRequest const& request), (override)); + MOCK_METHOD( + StatusOr, QueryMetadata, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::QueryMetadataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + QueryMetadata, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -138,6 +259,20 @@ class MockDataprocMetastoreConnection (google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request), (override)); + MOCK_METHOD( + StatusOr, MoveTableToDatabase, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::MoveTableToDatabaseRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + MoveTableToDatabase, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -145,6 +280,21 @@ class MockDataprocMetastoreConnection (google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, AlterMetadataResourceLocation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::AlterMetadataResourceLocationRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + AlterMetadataResourceLocation, + (google::cloud::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..bebaf3d9d9e25 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::CreateFederationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFederation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFederation, (google::cloud::metastore::v1::UpdateFederationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFederation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::UpdateFederationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFederation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFederation, (google::cloud::metastore::v1::DeleteFederationRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteFederation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::metastore::v1::DeleteFederationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFederation, + (google::cloud::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..97a88b435b20f 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,61 @@ MigrationCenterConnectionImpl::CreateImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateImportJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +394,61 @@ MigrationCenterConnectionImpl::DeleteImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteImportJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +489,61 @@ MigrationCenterConnectionImpl::UpdateImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::UpdateImportJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +585,62 @@ MigrationCenterConnectionImpl::ValidateImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::ValidateImportJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +681,61 @@ MigrationCenterConnectionImpl::RunImportJob( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::RunImportJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +828,63 @@ MigrationCenterConnectionImpl::CreateImportDataFile( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateImportDataFile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +926,63 @@ MigrationCenterConnectionImpl::DeleteImportDataFile( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteImportDataFile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1072,61 @@ MigrationCenterConnectionImpl::CreateGroup( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1167,61 @@ MigrationCenterConnectionImpl::UpdateGroup( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1256,144 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1411,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 +1454,62 @@ MigrationCenterConnectionImpl::RemoveAssetsFromGroup( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::RemoveAssetsFromGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1648,61 @@ MigrationCenterConnectionImpl::CreateSource( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateSource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1743,61 @@ MigrationCenterConnectionImpl::UpdateSource( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::UpdateSource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1838,61 @@ MigrationCenterConnectionImpl::DeleteSource( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteSource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1959,107 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2083,43 @@ MigrationCenterConnectionImpl::CreatePreferenceSet( polling_policy(*current), __func__); } -future> +StatusOr MigrationCenterConnectionImpl::UpdatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2137,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 +2181,63 @@ MigrationCenterConnectionImpl::DeletePreferenceSet( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeletePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2293,61 @@ MigrationCenterConnectionImpl::UpdateSettings( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::UpdateSettings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2389,63 @@ MigrationCenterConnectionImpl::CreateReportConfig( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateReportConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2537,63 @@ MigrationCenterConnectionImpl::DeleteReportConfig( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteReportConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2634,61 @@ MigrationCenterConnectionImpl::CreateReport( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::CreateReport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2778,61 @@ MigrationCenterConnectionImpl::DeleteReport( polling_policy(*current), __func__); } +StatusOr +MigrationCenterConnectionImpl::DeleteReport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..5db3b9256a632 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& request) + override; + + future> + CreateImportJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request) + override; + + future> + DeleteImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) override; + StatusOr UpdateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) + override; + + future> + UpdateImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& request) override; + StatusOr ValidateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request) override; + + future> + ValidateImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RunImportJob(google::cloud::migrationcenter::v1::RunImportJobRequest const& request) override; + StatusOr RunImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request) + override; + + future> + RunImportJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request) override; + + future> + CreateImportDataFile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& request) override; + StatusOr DeleteImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request) override; + + future> + DeleteImportDataFile( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request) + override; + + future> CreateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) override; + StatusOr UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) + override; + + future> UpdateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGroup(google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) override; + StatusOr DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) + override; + + future> + DeleteGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& request) override; + StatusOr AddAssetsToGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request) override; + + future> AddAssetsToGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& request) override; + StatusOr RemoveAssetsFromGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request) override; + + future> + RemoveAssetsFromGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request) + override; + + future> CreateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) override; + StatusOr UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) + override; + + future> UpdateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSource(google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) override; + StatusOr DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) + override; + + future> + DeleteSource(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request) override; + + future> + CreatePreferenceSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& request) override; + StatusOr UpdatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request) override; + + future> + UpdatePreferenceSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& request) override; + StatusOr DeletePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request) override; + + future> + DeletePreferenceSet(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request) + override; + + future> UpdateSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& request) override; + StatusOr CreateReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request) override; + + future> + CreateReportConfig(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request) override; + + future> + DeleteReportConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request) override; + StatusOr CreateReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request) + override; + + future> CreateReport( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request) + override; + + future> + DeleteReport(google::cloud::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..f129523e84e6b 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,30 @@ MigrationCenterTracingConnection::CreateImportJob( return internal::EndSpan(std::move(span), child_->CreateImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::CreateImportJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateImportJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange MigrationCenterTracingConnection::ListImportJobs( google::cloud::migrationcenter::v1::ListImportJobsRequest request) { @@ -149,6 +173,30 @@ MigrationCenterTracingConnection::DeleteImportJob( return internal::EndSpan(std::move(span), child_->DeleteImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteImportJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteImportJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) { @@ -158,6 +206,30 @@ MigrationCenterTracingConnection::UpdateImportJob( return internal::EndSpan(std::move(span), child_->UpdateImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::UpdateImportJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdateImportJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& @@ -168,6 +240,31 @@ MigrationCenterTracingConnection::ValidateImportJob( return internal::EndSpan(std::move(span), child_->ValidateImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::ValidateImportJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::ValidateImportJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::RunImportJob( google::cloud::migrationcenter::v1::RunImportJobRequest const& request) { @@ -177,6 +274,30 @@ MigrationCenterTracingConnection::RunImportJob( return internal::EndSpan(std::move(span), child_->RunImportJob(request)); } +StatusOr +MigrationCenterTracingConnection::RunImportJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::RunImportJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr MigrationCenterTracingConnection::GetImportDataFile( google::cloud::migrationcenter::v1::GetImportDataFileRequest const& @@ -210,6 +331,31 @@ MigrationCenterTracingConnection::CreateImportDataFile( child_->CreateImportDataFile(request)); } +StatusOr +MigrationCenterTracingConnection::CreateImportDataFile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateImportDataFile( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& @@ -221,6 +367,31 @@ MigrationCenterTracingConnection::DeleteImportDataFile( child_->DeleteImportDataFile(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteImportDataFile( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteImportDataFile( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange MigrationCenterTracingConnection::ListGroups( google::cloud::migrationcenter::v1::ListGroupsRequest request) { @@ -251,6 +422,30 @@ MigrationCenterTracingConnection::CreateGroup( return internal::EndSpan(std::move(span), child_->CreateGroup(request)); } +StatusOr +MigrationCenterTracingConnection::CreateGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) { @@ -260,6 +455,30 @@ MigrationCenterTracingConnection::UpdateGroup( return internal::EndSpan(std::move(span), child_->UpdateGroup(request)); } +StatusOr +MigrationCenterTracingConnection::UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdateGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::DeleteGroup( google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) { @@ -269,6 +488,30 @@ MigrationCenterTracingConnection::DeleteGroup( return internal::EndSpan(std::move(span), child_->DeleteGroup(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& @@ -279,6 +522,31 @@ MigrationCenterTracingConnection::AddAssetsToGroup( return internal::EndSpan(std::move(span), child_->AddAssetsToGroup(request)); } +StatusOr +MigrationCenterTracingConnection::AddAssetsToGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::AddAssetsToGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& @@ -290,6 +558,31 @@ MigrationCenterTracingConnection::RemoveAssetsFromGroup( child_->RemoveAssetsFromGroup(request)); } +StatusOr +MigrationCenterTracingConnection::RemoveAssetsFromGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::RemoveAssetsFromGroup( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange MigrationCenterTracingConnection::ListErrorFrames( google::cloud::migrationcenter::v1::ListErrorFramesRequest request) { @@ -341,6 +634,30 @@ MigrationCenterTracingConnection::CreateSource( return internal::EndSpan(std::move(span), child_->CreateSource(request)); } +StatusOr +MigrationCenterTracingConnection::CreateSource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateSource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) { @@ -350,6 +667,30 @@ MigrationCenterTracingConnection::UpdateSource( return internal::EndSpan(std::move(span), child_->UpdateSource(request)); } +StatusOr +MigrationCenterTracingConnection::UpdateSource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdateSource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::DeleteSource( google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) { @@ -359,6 +700,30 @@ MigrationCenterTracingConnection::DeleteSource( return internal::EndSpan(std::move(span), child_->DeleteSource(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteSource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteSource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange MigrationCenterTracingConnection::ListPreferenceSets( google::cloud::migrationcenter::v1::ListPreferenceSetsRequest request) { @@ -392,6 +757,31 @@ MigrationCenterTracingConnection::CreatePreferenceSet( child_->CreatePreferenceSet(request)); } +StatusOr +MigrationCenterTracingConnection::CreatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreatePreferenceSet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& @@ -403,6 +793,31 @@ MigrationCenterTracingConnection::UpdatePreferenceSet( child_->UpdatePreferenceSet(request)); } +StatusOr +MigrationCenterTracingConnection::UpdatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdatePreferenceSet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& @@ -414,6 +829,31 @@ MigrationCenterTracingConnection::DeletePreferenceSet( child_->DeletePreferenceSet(request)); } +StatusOr +MigrationCenterTracingConnection::DeletePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeletePreferenceSet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr MigrationCenterTracingConnection::GetSettings( google::cloud::migrationcenter::v1::GetSettingsRequest const& request) { @@ -432,6 +872,30 @@ MigrationCenterTracingConnection::UpdateSettings( return internal::EndSpan(std::move(span), child_->UpdateSettings(request)); } +StatusOr +MigrationCenterTracingConnection::UpdateSettings( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::UpdateSettings( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& @@ -443,6 +907,31 @@ MigrationCenterTracingConnection::CreateReportConfig( child_->CreateReportConfig(request)); } +StatusOr +MigrationCenterTracingConnection::CreateReportConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateReportConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr MigrationCenterTracingConnection::GetReportConfig( google::cloud::migrationcenter::v1::GetReportConfigRequest const& request) { @@ -475,6 +964,31 @@ MigrationCenterTracingConnection::DeleteReportConfig( child_->DeleteReportConfig(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteReportConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteReportConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> MigrationCenterTracingConnection::CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request) { @@ -484,6 +998,30 @@ MigrationCenterTracingConnection::CreateReport( return internal::EndSpan(std::move(span), child_->CreateReport(request)); } +StatusOr +MigrationCenterTracingConnection::CreateReport( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::CreateReport( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr MigrationCenterTracingConnection::GetReport( google::cloud::migrationcenter::v1::GetReportRequest const& request) { @@ -514,6 +1052,30 @@ MigrationCenterTracingConnection::DeleteReport( return internal::EndSpan(std::move(span), child_->DeleteReport(request)); } +StatusOr +MigrationCenterTracingConnection::DeleteReport( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MigrationCenterTracingConnection::DeleteReport( + google::cloud::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(google::cloud::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..1ff355c289e23 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& request) + override; + + future> + CreateImportJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request) + override; + + future> + DeleteImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) override; + StatusOr UpdateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request) + override; + + future> + UpdateImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& request) override; + StatusOr ValidateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request) override; + + future> + ValidateImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RunImportJob(google::cloud::migrationcenter::v1::RunImportJobRequest const& request) override; + StatusOr RunImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request) + override; + + future> + RunImportJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request) override; + + future> + CreateImportDataFile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& request) override; + StatusOr DeleteImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request) override; + + future> + DeleteImportDataFile( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request) + override; + + future> CreateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) override; + StatusOr UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request) + override; + + future> UpdateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGroup(google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) override; + StatusOr DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request) + override; + + future> + DeleteGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& request) override; + StatusOr AddAssetsToGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request) override; + + future> AddAssetsToGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& request) override; + StatusOr RemoveAssetsFromGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request) override; + + future> + RemoveAssetsFromGroup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request) + override; + + future> CreateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) override; + StatusOr UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request) + override; + + future> UpdateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSource(google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) override; + StatusOr DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request) + override; + + future> + DeleteSource(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request) override; + + future> + CreatePreferenceSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& request) override; + StatusOr UpdatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request) override; + + future> + UpdatePreferenceSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& request) override; + StatusOr DeletePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request) override; + + future> + DeletePreferenceSet(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request) + override; + + future> UpdateSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& request) override; + StatusOr CreateReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request) override; + + future> + CreateReportConfig(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request) override; + + future> + DeleteReportConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request) override; + StatusOr CreateReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request) + override; + + future> CreateReport( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request) + override; + + future> + DeleteReport(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/migrationcenter/v1/migration_center_client.cc b/google/cloud/migrationcenter/v1/migration_center_client.cc index 5ded4469abf6d..48b16c5f7cb2a 100644 --- a/google/cloud/migrationcenter/v1/migration_center_client.cc +++ b/google/cloud/migrationcenter/v1/migration_center_client.cc @@ -166,6 +166,20 @@ MigrationCenterClient::CreateImportJob( return connection_->CreateImportJob(request); } +StatusOr MigrationCenterClient::CreateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::ImportJob const& import_job, + std::string const& import_job_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::CreateImportJobRequest request; + request.set_parent(parent); + *request.mutable_import_job() = import_job; + request.set_import_job_id(import_job_id); + return connection_->CreateImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::CreateImportJob( google::cloud::migrationcenter::v1::CreateImportJobRequest const& request, @@ -174,6 +188,24 @@ MigrationCenterClient::CreateImportJob( return connection_->CreateImportJob(request); } +StatusOr MigrationCenterClient::CreateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::CreateImportJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateImportJob(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange MigrationCenterClient::ListImportJobs(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -214,6 +246,16 @@ MigrationCenterClient::DeleteImportJob(std::string const& name, Options opts) { return connection_->DeleteImportJob(request); } +StatusOr MigrationCenterClient::DeleteImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::DeleteImportJobRequest request; + request.set_name(name); + return connection_->DeleteImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::DeleteImportJob( google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request, @@ -222,6 +264,24 @@ MigrationCenterClient::DeleteImportJob( return connection_->DeleteImportJob(request); } +StatusOr MigrationCenterClient::DeleteImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::DeleteImportJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteImportJob(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::UpdateImportJob( google::cloud::migrationcenter::v1::ImportJob const& import_job, @@ -233,6 +293,18 @@ MigrationCenterClient::UpdateImportJob( return connection_->UpdateImportJob(request); } +StatusOr MigrationCenterClient::UpdateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::ImportJob const& import_job, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::UpdateImportJobRequest request; + *request.mutable_import_job() = import_job; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::UpdateImportJob( google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request, @@ -241,6 +313,24 @@ MigrationCenterClient::UpdateImportJob( return connection_->UpdateImportJob(request); } +StatusOr MigrationCenterClient::UpdateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::UpdateImportJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateImportJob(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::ValidateImportJob(std::string const& name, Options opts) { @@ -250,6 +340,18 @@ MigrationCenterClient::ValidateImportJob(std::string const& name, return connection_->ValidateImportJob(request); } +StatusOr +MigrationCenterClient::ValidateImportJob(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::ValidateImportJobRequest request; + request.set_name(name); + return connection_->ValidateImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::ValidateImportJob( google::cloud::migrationcenter::v1::ValidateImportJobRequest const& request, @@ -258,6 +360,25 @@ MigrationCenterClient::ValidateImportJob( return connection_->ValidateImportJob(request); } +StatusOr +MigrationCenterClient::ValidateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ValidateImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::ValidateImportJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ValidateImportJob(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::RunImportJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -266,6 +387,16 @@ MigrationCenterClient::RunImportJob(std::string const& name, Options opts) { return connection_->RunImportJob(request); } +StatusOr MigrationCenterClient::RunImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::RunImportJobRequest request; + request.set_name(name); + return connection_->RunImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::RunImportJob( google::cloud::migrationcenter::v1::RunImportJobRequest const& request, @@ -274,6 +405,23 @@ MigrationCenterClient::RunImportJob( return connection_->RunImportJob(request); } +StatusOr MigrationCenterClient::RunImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunImportJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::RunImportJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunImportJob(google::cloud::ExperimentalTag{}, operation); +} + StatusOr MigrationCenterClient::GetImportDataFile(std::string const& name, Options opts) { @@ -321,6 +469,21 @@ MigrationCenterClient::CreateImportDataFile( return connection_->CreateImportDataFile(request); } +StatusOr +MigrationCenterClient::CreateImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::ImportDataFile const& import_data_file, + std::string const& import_data_file_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::CreateImportDataFileRequest request; + request.set_parent(parent); + *request.mutable_import_data_file() = import_data_file; + request.set_import_data_file_id(import_data_file_id); + return connection_->CreateImportDataFile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::CreateImportDataFile( google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& @@ -330,6 +493,26 @@ MigrationCenterClient::CreateImportDataFile( return connection_->CreateImportDataFile(request); } +StatusOr +MigrationCenterClient::CreateImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateImportDataFile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::CreateImportDataFile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateImportDataFile(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::DeleteImportDataFile(std::string const& name, Options opts) { @@ -339,6 +522,18 @@ MigrationCenterClient::DeleteImportDataFile(std::string const& name, return connection_->DeleteImportDataFile(request); } +StatusOr +MigrationCenterClient::DeleteImportDataFile(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest request; + request.set_name(name); + return connection_->DeleteImportDataFile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::DeleteImportDataFile( google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& @@ -348,6 +543,26 @@ MigrationCenterClient::DeleteImportDataFile( return connection_->DeleteImportDataFile(request); } +StatusOr +MigrationCenterClient::DeleteImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteImportDataFile( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::DeleteImportDataFile( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteImportDataFile(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange MigrationCenterClient::ListGroups(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -393,6 +608,20 @@ MigrationCenterClient::CreateGroup( return connection_->CreateGroup(request); } +StatusOr MigrationCenterClient::CreateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::Group const& group, + std::string const& group_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::CreateGroupRequest request; + request.set_parent(parent); + *request.mutable_group() = group; + request.set_group_id(group_id); + return connection_->CreateGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::CreateGroup( google::cloud::migrationcenter::v1::CreateGroupRequest const& request, @@ -401,6 +630,23 @@ MigrationCenterClient::CreateGroup( return connection_->CreateGroup(request); } +StatusOr MigrationCenterClient::CreateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::CreateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGroup(google::cloud::ExperimentalTag{}, operation); +} + future> MigrationCenterClient::UpdateGroup( google::cloud::migrationcenter::v1::Group const& group, @@ -412,6 +658,18 @@ MigrationCenterClient::UpdateGroup( return connection_->UpdateGroup(request); } +StatusOr MigrationCenterClient::UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::Group const& group, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::UpdateGroupRequest request; + *request.mutable_group() = group; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::UpdateGroup( google::cloud::migrationcenter::v1::UpdateGroupRequest const& request, @@ -420,6 +678,23 @@ MigrationCenterClient::UpdateGroup( return connection_->UpdateGroup(request); } +StatusOr MigrationCenterClient::UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::UpdateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGroup(google::cloud::ExperimentalTag{}, operation); +} + future> MigrationCenterClient::DeleteGroup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -428,6 +703,16 @@ MigrationCenterClient::DeleteGroup(std::string const& name, Options opts) { return connection_->DeleteGroup(request); } +StatusOr MigrationCenterClient::DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::DeleteGroupRequest request; + request.set_name(name); + return connection_->DeleteGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::DeleteGroup( google::cloud::migrationcenter::v1::DeleteGroupRequest const& request, @@ -436,6 +721,23 @@ MigrationCenterClient::DeleteGroup( return connection_->DeleteGroup(request); } +StatusOr MigrationCenterClient::DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::DeleteGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGroup(google::cloud::ExperimentalTag{}, operation); +} + future> MigrationCenterClient::AddAssetsToGroup(std::string const& group, Options opts) { @@ -445,6 +747,18 @@ MigrationCenterClient::AddAssetsToGroup(std::string const& group, return connection_->AddAssetsToGroup(request); } +StatusOr +MigrationCenterClient::AddAssetsToGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& group, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest request; + request.set_group(group); + return connection_->AddAssetsToGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::AddAssetsToGroup( google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& request, @@ -453,6 +767,25 @@ MigrationCenterClient::AddAssetsToGroup( return connection_->AddAssetsToGroup(request); } +StatusOr +MigrationCenterClient::AddAssetsToGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAssetsToGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::AddAssetsToGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddAssetsToGroup(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::RemoveAssetsFromGroup(std::string const& group, Options opts) { @@ -462,6 +795,18 @@ MigrationCenterClient::RemoveAssetsFromGroup(std::string const& group, return connection_->RemoveAssetsFromGroup(request); } +StatusOr +MigrationCenterClient::RemoveAssetsFromGroup(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& group, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest request; + request.set_group(group); + return connection_->RemoveAssetsFromGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::RemoveAssetsFromGroup( google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& @@ -471,6 +816,26 @@ MigrationCenterClient::RemoveAssetsFromGroup( return connection_->RemoveAssetsFromGroup(request); } +StatusOr +MigrationCenterClient::RemoveAssetsFromGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveAssetsFromGroup( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::RemoveAssetsFromGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveAssetsFromGroup(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange MigrationCenterClient::ListErrorFrames(std::string const& parent, Options opts) { @@ -549,6 +914,20 @@ MigrationCenterClient::CreateSource( return connection_->CreateSource(request); } +StatusOr MigrationCenterClient::CreateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::Source const& source, + std::string const& source_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::CreateSourceRequest request; + request.set_parent(parent); + *request.mutable_source() = source; + request.set_source_id(source_id); + return connection_->CreateSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::CreateSource( google::cloud::migrationcenter::v1::CreateSourceRequest const& request, @@ -557,6 +936,23 @@ MigrationCenterClient::CreateSource( return connection_->CreateSource(request); } +StatusOr MigrationCenterClient::CreateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::CreateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSource(google::cloud::ExperimentalTag{}, operation); +} + future> MigrationCenterClient::UpdateSource( google::cloud::migrationcenter::v1::Source const& source, @@ -568,6 +964,18 @@ MigrationCenterClient::UpdateSource( return connection_->UpdateSource(request); } +StatusOr MigrationCenterClient::UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::Source const& source, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::UpdateSourceRequest request; + *request.mutable_source() = source; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::UpdateSource( google::cloud::migrationcenter::v1::UpdateSourceRequest const& request, @@ -576,6 +984,23 @@ MigrationCenterClient::UpdateSource( return connection_->UpdateSource(request); } +StatusOr MigrationCenterClient::UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::UpdateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSource(google::cloud::ExperimentalTag{}, operation); +} + future> MigrationCenterClient::DeleteSource(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -584,6 +1009,16 @@ MigrationCenterClient::DeleteSource(std::string const& name, Options opts) { return connection_->DeleteSource(request); } +StatusOr MigrationCenterClient::DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::DeleteSourceRequest request; + request.set_name(name); + return connection_->DeleteSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::DeleteSource( google::cloud::migrationcenter::v1::DeleteSourceRequest const& request, @@ -592,6 +1027,23 @@ MigrationCenterClient::DeleteSource( return connection_->DeleteSource(request); } +StatusOr MigrationCenterClient::DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::DeleteSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSource(google::cloud::ExperimentalTag{}, operation); +} + StreamRange MigrationCenterClient::ListPreferenceSets(std::string const& parent, Options opts) { @@ -638,6 +1090,21 @@ MigrationCenterClient::CreatePreferenceSet( return connection_->CreatePreferenceSet(request); } +StatusOr +MigrationCenterClient::CreatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::PreferenceSet const& preference_set, + std::string const& preference_set_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest request; + request.set_parent(parent); + *request.mutable_preference_set() = preference_set; + request.set_preference_set_id(preference_set_id); + return connection_->CreatePreferenceSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::CreatePreferenceSet( google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& @@ -647,6 +1114,26 @@ MigrationCenterClient::CreatePreferenceSet( return connection_->CreatePreferenceSet(request); } +StatusOr +MigrationCenterClient::CreatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePreferenceSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::CreatePreferenceSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePreferenceSet(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::UpdatePreferenceSet( google::cloud::migrationcenter::v1::PreferenceSet const& preference_set, @@ -658,6 +1145,19 @@ MigrationCenterClient::UpdatePreferenceSet( return connection_->UpdatePreferenceSet(request); } +StatusOr +MigrationCenterClient::UpdatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::PreferenceSet const& preference_set, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest request; + *request.mutable_preference_set() = preference_set; + *request.mutable_update_mask() = update_mask; + return connection_->UpdatePreferenceSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::UpdatePreferenceSet( google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& @@ -667,6 +1167,26 @@ MigrationCenterClient::UpdatePreferenceSet( return connection_->UpdatePreferenceSet(request); } +StatusOr +MigrationCenterClient::UpdatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePreferenceSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::UpdatePreferenceSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePreferenceSet(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::DeletePreferenceSet(std::string const& name, Options opts) { @@ -676,6 +1196,18 @@ MigrationCenterClient::DeletePreferenceSet(std::string const& name, return connection_->DeletePreferenceSet(request); } +StatusOr +MigrationCenterClient::DeletePreferenceSet(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest request; + request.set_name(name); + return connection_->DeletePreferenceSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::DeletePreferenceSet( google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& @@ -685,6 +1217,26 @@ MigrationCenterClient::DeletePreferenceSet( return connection_->DeletePreferenceSet(request); } +StatusOr +MigrationCenterClient::DeletePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePreferenceSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::DeletePreferenceSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePreferenceSet(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr MigrationCenterClient::GetSettings(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -712,6 +1264,18 @@ MigrationCenterClient::UpdateSettings( return connection_->UpdateSettings(request); } +StatusOr MigrationCenterClient::UpdateSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::Settings const& settings, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::UpdateSettingsRequest request; + *request.mutable_settings() = settings; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSettings(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::UpdateSettings( google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request, @@ -720,6 +1284,24 @@ MigrationCenterClient::UpdateSettings( return connection_->UpdateSettings(request); } +StatusOr MigrationCenterClient::UpdateSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSettings(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::UpdateSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSettings(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::CreateReportConfig( std::string const& parent, @@ -733,6 +1315,21 @@ MigrationCenterClient::CreateReportConfig( return connection_->CreateReportConfig(request); } +StatusOr +MigrationCenterClient::CreateReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::ReportConfig const& report_config, + std::string const& report_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::CreateReportConfigRequest request; + request.set_parent(parent); + *request.mutable_report_config() = report_config; + request.set_report_config_id(report_config_id); + return connection_->CreateReportConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::CreateReportConfig( google::cloud::migrationcenter::v1::CreateReportConfigRequest const& @@ -742,6 +1339,26 @@ MigrationCenterClient::CreateReportConfig( return connection_->CreateReportConfig(request); } +StatusOr +MigrationCenterClient::CreateReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateReportConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::CreateReportConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateReportConfig(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr MigrationCenterClient::GetReportConfig(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -784,6 +1401,18 @@ MigrationCenterClient::DeleteReportConfig(std::string const& name, return connection_->DeleteReportConfig(request); } +StatusOr +MigrationCenterClient::DeleteReportConfig(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::DeleteReportConfigRequest request; + request.set_name(name); + return connection_->DeleteReportConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::DeleteReportConfig( google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& @@ -793,6 +1422,26 @@ MigrationCenterClient::DeleteReportConfig( return connection_->DeleteReportConfig(request); } +StatusOr +MigrationCenterClient::DeleteReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteReportConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::DeleteReportConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteReportConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> MigrationCenterClient::CreateReport( std::string const& parent, @@ -806,6 +1455,20 @@ MigrationCenterClient::CreateReport( return connection_->CreateReport(request); } +StatusOr MigrationCenterClient::CreateReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::Report const& report, + std::string const& report_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::CreateReportRequest request; + request.set_parent(parent); + *request.mutable_report() = report; + request.set_report_id(report_id); + return connection_->CreateReport(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::CreateReport( google::cloud::migrationcenter::v1::CreateReportRequest const& request, @@ -814,6 +1477,23 @@ MigrationCenterClient::CreateReport( return connection_->CreateReport(request); } +StatusOr MigrationCenterClient::CreateReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateReport(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::CreateReport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateReport(google::cloud::ExperimentalTag{}, operation); +} + StatusOr MigrationCenterClient::GetReport(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -854,6 +1534,16 @@ MigrationCenterClient::DeleteReport(std::string const& name, Options opts) { return connection_->DeleteReport(request); } +StatusOr MigrationCenterClient::DeleteReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::migrationcenter::v1::DeleteReportRequest request; + request.set_name(name); + return connection_->DeleteReport(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> MigrationCenterClient::DeleteReport( google::cloud::migrationcenter::v1::DeleteReportRequest const& request, @@ -862,6 +1552,23 @@ MigrationCenterClient::DeleteReport( return connection_->DeleteReport(request); } +StatusOr MigrationCenterClient::DeleteReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteReport(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +MigrationCenterClient::DeleteReport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteReport(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace migrationcenter_v1 } // namespace cloud diff --git a/google/cloud/migrationcenter/v1/migration_center_client.h b/google/cloud/migrationcenter/v1/migration_center_client.h index a31e6f16ac87e..7d2f96675a80f 100644 --- a/google/cloud/migrationcenter/v1/migration_center_client.h +++ b/google/cloud/migrationcenter/v1/migration_center_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MIGRATIONCENTER_V1_MIGRATION_CENTER_CLIENT_H #include "google/cloud/migrationcenter/v1/migration_center_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -551,6 +553,12 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::ImportJob const& import_job, std::string const& import_job_id, Options opts = {}); + StatusOr CreateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::ImportJob const& import_job, + std::string const& import_job_id, Options opts = {}); + // clang-format off /// /// Creates an import job. @@ -590,6 +598,16 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::CreateImportJobRequest const& request, Options opts = {}); + StatusOr CreateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& request, + Options opts = {}); + + future> + CreateImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all import jobs. @@ -752,6 +770,10 @@ class MigrationCenterClient { future> DeleteImportJob(std::string const& name, Options opts = {}); + StatusOr DeleteImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an import job. @@ -791,6 +813,16 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request, Options opts = {}); + StatusOr DeleteImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& request, + Options opts = {}); + + future> + DeleteImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an import job. @@ -831,6 +863,11 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::ImportJob const& import_job, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::ImportJob const& import_job, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an import job. @@ -870,6 +907,16 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request, Options opts = {}); + StatusOr UpdateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request, + Options opts = {}); + + future> + UpdateImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Validates an import job. @@ -902,6 +949,10 @@ class MigrationCenterClient { future> ValidateImportJob(std::string const& name, Options opts = {}); + StatusOr ValidateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Validates an import job. @@ -942,6 +993,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr ValidateImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request, + Options opts = {}); + + future> + ValidateImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Runs an import job. @@ -974,6 +1036,10 @@ class MigrationCenterClient { future> RunImportJob(std::string const& name, Options opts = {}); + StatusOr RunImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Runs an import job. @@ -1013,6 +1079,16 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::RunImportJobRequest const& request, Options opts = {}); + StatusOr RunImportJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request, + Options opts = {}); + + future> + RunImportJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets an import data file. @@ -1184,6 +1260,13 @@ class MigrationCenterClient { std::string const& import_data_file_id, Options opts = {}); + StatusOr CreateImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::ImportDataFile const& + import_data_file, + std::string const& import_data_file_id, Options opts = {}); + // clang-format off /// /// Creates an import data file. @@ -1224,6 +1307,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr CreateImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request, + Options opts = {}); + + future> + CreateImportDataFile(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Delete an import data file. @@ -1256,6 +1350,10 @@ class MigrationCenterClient { future> DeleteImportDataFile(std::string const& name, Options opts = {}); + StatusOr DeleteImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete an import data file. @@ -1296,6 +1394,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr DeleteImportDataFile( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request, + Options opts = {}); + + future> + DeleteImportDataFile(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all groups in a given project and location. @@ -1466,6 +1575,12 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::Group const& group, std::string const& group_id, Options opts = {}); + StatusOr CreateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::Group const& group, + std::string const& group_id, Options opts = {}); + // clang-format off /// /// Creates a new group in a given project and location. @@ -1504,6 +1619,15 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::CreateGroupRequest const& request, Options opts = {}); + StatusOr CreateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request, + Options opts = {}); + + future> CreateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a group. @@ -1542,6 +1666,11 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::Group const& group, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::Group const& group, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a group. @@ -1580,6 +1709,15 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::UpdateGroupRequest const& request, Options opts = {}); + StatusOr UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request, + Options opts = {}); + + future> UpdateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a group. @@ -1612,6 +1750,10 @@ class MigrationCenterClient { future> DeleteGroup(std::string const& name, Options opts = {}); + StatusOr DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a group. @@ -1651,6 +1793,16 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::DeleteGroupRequest const& request, Options opts = {}); + StatusOr DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request, + Options opts = {}); + + future> + DeleteGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds assets to a group. @@ -1683,6 +1835,10 @@ class MigrationCenterClient { future> AddAssetsToGroup( std::string const& group, Options opts = {}); + StatusOr AddAssetsToGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& group, Options opts = {}); + // clang-format off /// /// Adds assets to a group. @@ -1722,6 +1878,16 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr AddAssetsToGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request, + Options opts = {}); + + future> AddAssetsToGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Removes assets from a group. @@ -1754,6 +1920,10 @@ class MigrationCenterClient { future> RemoveAssetsFromGroup(std::string const& group, Options opts = {}); + StatusOr RemoveAssetsFromGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& group, Options opts = {}); + // clang-format off /// /// Removes assets from a group. @@ -1794,6 +1964,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr RemoveAssetsFromGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request, + Options opts = {}); + + future> + RemoveAssetsFromGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all error frames in a given source and location. @@ -2096,6 +2277,12 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::Source const& source, std::string const& source_id, Options opts = {}); + StatusOr CreateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::Source const& source, + std::string const& source_id, Options opts = {}); + // clang-format off /// /// Creates a new source in a given project and location. @@ -2134,6 +2321,15 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::CreateSourceRequest const& request, Options opts = {}); + StatusOr CreateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request, + Options opts = {}); + + future> CreateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a source. @@ -2173,6 +2369,11 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::Source const& source, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::Source const& source, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a source. @@ -2211,6 +2412,15 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::UpdateSourceRequest const& request, Options opts = {}); + StatusOr UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request, + Options opts = {}); + + future> UpdateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a source. @@ -2243,6 +2453,10 @@ class MigrationCenterClient { future> DeleteSource(std::string const& name, Options opts = {}); + StatusOr DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a source. @@ -2282,6 +2496,16 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::DeleteSourceRequest const& request, Options opts = {}); + StatusOr DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request, + Options opts = {}); + + future> + DeleteSource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all the preference sets in a given project and location. @@ -2456,6 +2680,12 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::PreferenceSet const& preference_set, std::string const& preference_set_id, Options opts = {}); + StatusOr CreatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::PreferenceSet const& preference_set, + std::string const& preference_set_id, Options opts = {}); + // clang-format off /// /// Creates a new preference set in a given project and location. @@ -2496,6 +2726,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr CreatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request, + Options opts = {}); + + future> + CreatePreferenceSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a preference set. @@ -2536,6 +2777,11 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::PreferenceSet const& preference_set, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::PreferenceSet const& preference_set, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a preference set. @@ -2576,6 +2822,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr UpdatePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request, + Options opts = {}); + + future> + UpdatePreferenceSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a preference set. @@ -2608,6 +2865,10 @@ class MigrationCenterClient { future> DeletePreferenceSet(std::string const& name, Options opts = {}); + StatusOr DeletePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a preference set. @@ -2648,6 +2909,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr DeletePreferenceSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request, + Options opts = {}); + + future> + DeletePreferenceSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the details of regional settings. @@ -2743,6 +3015,11 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::Settings const& settings, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::Settings const& settings, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the regional-level project settings. @@ -2781,6 +3058,15 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request, Options opts = {}); + StatusOr UpdateSettings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& request, + Options opts = {}); + + future> UpdateSettings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a report configuration. @@ -2822,6 +3108,12 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::ReportConfig const& report_config, std::string const& report_config_id, Options opts = {}); + StatusOr CreateReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::ReportConfig const& report_config, + std::string const& report_config_id, Options opts = {}); + // clang-format off /// /// Creates a report configuration. @@ -2862,6 +3154,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr CreateReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request, + Options opts = {}); + + future> + CreateReportConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single ReportConfig. @@ -3025,6 +3328,10 @@ class MigrationCenterClient { future> DeleteReportConfig(std::string const& name, Options opts = {}); + StatusOr DeleteReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a ReportConfig. @@ -3065,6 +3372,17 @@ class MigrationCenterClient { request, Options opts = {}); + StatusOr DeleteReportConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request, + Options opts = {}); + + future> + DeleteReportConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a report. @@ -3105,6 +3423,12 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::Report const& report, std::string const& report_id, Options opts = {}); + StatusOr CreateReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::migrationcenter::v1::Report const& report, + std::string const& report_id, Options opts = {}); + // clang-format off /// /// Creates a report. @@ -3143,6 +3467,15 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::CreateReportRequest const& request, Options opts = {}); + StatusOr CreateReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request, + Options opts = {}); + + future> CreateReport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets details of a single Report. @@ -3305,6 +3638,10 @@ class MigrationCenterClient { future> DeleteReport(std::string const& name, Options opts = {}); + StatusOr DeleteReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Report. @@ -3344,6 +3681,16 @@ class MigrationCenterClient { google::cloud::migrationcenter::v1::DeleteReportRequest const& request, Options opts = {}); + StatusOr DeleteReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request, + Options opts = {}); + + future> + DeleteReport(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..63382a29dee1e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportJobRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateImportJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListImportJobs, @@ -119,12 +131,37 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteImportJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportJobRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteImportJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateImportJob, (google::cloud::migrationcenter::v1::UpdateImportJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateImportJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateImportJobRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateImportJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ValidateImportJob, @@ -132,12 +169,39 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, ValidateImportJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::ValidateImportJobRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + ValidateImportJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RunImportJob, (google::cloud::migrationcenter::v1::RunImportJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RunImportJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RunImportJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RunImportJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetImportDataFile, @@ -158,6 +222,20 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateImportDataFile, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateImportDataFileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateImportDataFile, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteImportDataFile, @@ -165,6 +243,20 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteImportDataFile, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteImportDataFileRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteImportDataFile, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListGroups, (google::cloud::migrationcenter::v1::ListGroupsRequest request), @@ -180,17 +272,54 @@ class MockMigrationCenterConnection (google::cloud::migrationcenter::v1::CreateGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateGroup, (google::cloud::migrationcenter::v1::UpdateGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGroup, (google::cloud::migrationcenter::v1::DeleteGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteGroupRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AddAssetsToGroup, @@ -198,6 +327,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, AddAssetsToGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::AddAssetsToGroupRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AddAssetsToGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RemoveAssetsFromGroup, @@ -205,6 +347,19 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, RemoveAssetsFromGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::RemoveAssetsFromGroupRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RemoveAssetsFromGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListErrorFrames, @@ -232,18 +387,55 @@ class MockMigrationCenterConnection (google::cloud::migrationcenter::v1::CreateSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateSourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSource, (google::cloud::migrationcenter::v1::UpdateSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSource, (google::cloud::migrationcenter::v1::DeleteSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteSourceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListPreferenceSets, @@ -264,6 +456,20 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, CreatePreferenceSet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreatePreferenceSetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreatePreferenceSet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdatePreferenceSet, @@ -271,6 +477,20 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdatePreferenceSet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdatePreferenceSetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdatePreferenceSet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeletePreferenceSet, @@ -278,6 +498,20 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePreferenceSet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeletePreferenceSetRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeletePreferenceSet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetSettings, (google::cloud::migrationcenter::v1::GetSettingsRequest const& request), @@ -289,6 +523,18 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD(StatusOr, UpdateSettings, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::UpdateSettingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateSettings, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateReportConfig, @@ -296,6 +542,20 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateReportConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateReportConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetReportConfig, (google::cloud::migrationcenter::v1::GetReportConfigRequest const& @@ -315,12 +575,38 @@ class MockMigrationCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteReportConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteReportConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateReport, (google::cloud::migrationcenter::v1::CreateReportRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateReport, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::CreateReportRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateReport, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetReport, (google::cloud::migrationcenter::v1::GetReportRequest const& request), @@ -336,6 +622,19 @@ class MockMigrationCenterConnection DeleteReport, (google::cloud::migrationcenter::v1::DeleteReportRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteReport, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::migrationcenter::v1::DeleteReportRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteReport, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/monitoring/dashboard/v1/dashboards_client.h b/google/cloud/monitoring/dashboard/v1/dashboards_client.h index d53e45dba0c28..38a8704132bd5 100644 --- a/google/cloud/monitoring/dashboard/v1/dashboards_client.h +++ b/google/cloud/monitoring/dashboard/v1/dashboards_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_DASHBOARD_V1_DASHBOARDS_CLIENT_H #include "google/cloud/monitoring/dashboard/v1/dashboards_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..5fcb0fb72b7ea 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,62 @@ MetricsScopesConnectionImpl::CreateMonitoredProject( polling_policy(*current), __func__); } +StatusOr +MetricsScopesConnectionImpl::CreateMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +243,62 @@ MetricsScopesConnectionImpl::DeleteMonitoredProject( polling_policy(*current), __func__); } +StatusOr +MetricsScopesConnectionImpl::DeleteMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..a50490e15a206 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request) override; + + future> + CreateMonitoredProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& request) override; + StatusOr DeleteMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request) override; + + future> + DeleteMonitoredProject( + google::cloud::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..65f69cf001f0f 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,33 @@ MetricsScopesTracingConnection::CreateMonitoredProject( child_->CreateMonitoredProject(request)); } +StatusOr +MetricsScopesTracingConnection::CreateMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetricsScopesTracingConnection::CreateMonitoredProject( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> MetricsScopesTracingConnection::DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& @@ -79,6 +106,33 @@ MetricsScopesTracingConnection::DeleteMonitoredProject( child_->DeleteMonitoredProject(request)); } +StatusOr +MetricsScopesTracingConnection::DeleteMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +MetricsScopesTracingConnection::DeleteMonitoredProject( + google::cloud::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( + google::cloud::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..adeebd0c7fa6a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request) override; + + future> + CreateMonitoredProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& request) override; + StatusOr DeleteMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request) override; + + future> + DeleteMonitoredProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/monitoring/metricsscope/v1/metrics_scopes_client.cc b/google/cloud/monitoring/metricsscope/v1/metrics_scopes_client.cc index be10b8b1332ef..56a77971117ca 100644 --- a/google/cloud/monitoring/metricsscope/v1/metrics_scopes_client.cc +++ b/google/cloud/monitoring/metricsscope/v1/metrics_scopes_client.cc @@ -71,6 +71,21 @@ MetricsScopesClient::CreateMonitoredProject( return connection_->CreateMonitoredProject(request); } +StatusOr +MetricsScopesClient::CreateMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::monitoring::metricsscope::v1::MonitoredProject const& + monitored_project, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest request; + request.set_parent(parent); + *request.mutable_monitored_project() = monitored_project; + return connection_->CreateMonitoredProject( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> MetricsScopesClient::CreateMonitoredProject( google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& @@ -80,6 +95,26 @@ MetricsScopesClient::CreateMonitoredProject( return connection_->CreateMonitoredProject(request); } +StatusOr +MetricsScopesClient::CreateMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMonitoredProject( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +MetricsScopesClient::CreateMonitoredProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMonitoredProject(google::cloud::ExperimentalTag{}, + operation); +} + future> MetricsScopesClient::DeleteMonitoredProject(std::string const& name, Options opts) { @@ -89,6 +124,18 @@ MetricsScopesClient::DeleteMonitoredProject(std::string const& name, return connection_->DeleteMonitoredProject(request); } +StatusOr +MetricsScopesClient::DeleteMonitoredProject(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest request; + request.set_name(name); + return connection_->DeleteMonitoredProject( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> MetricsScopesClient::DeleteMonitoredProject( google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& @@ -98,6 +145,26 @@ MetricsScopesClient::DeleteMonitoredProject( return connection_->DeleteMonitoredProject(request); } +StatusOr +MetricsScopesClient::DeleteMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMonitoredProject( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +MetricsScopesClient::DeleteMonitoredProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMonitoredProject(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace monitoring_metricsscope_v1 } // namespace cloud diff --git a/google/cloud/monitoring/metricsscope/v1/metrics_scopes_client.h b/google/cloud/monitoring/metricsscope/v1/metrics_scopes_client.h index 448ccdafa03eb..ef0cf4c9db86b 100644 --- a/google/cloud/monitoring/metricsscope/v1/metrics_scopes_client.h +++ b/google/cloud/monitoring/metricsscope/v1/metrics_scopes_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_METRICSSCOPE_V1_METRICS_SCOPES_CLIENT_H #include "google/cloud/monitoring/metricsscope/v1/metrics_scopes_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -226,6 +228,13 @@ class MetricsScopesClient { monitored_project, Options opts = {}); + StatusOr CreateMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::monitoring::metricsscope::v1::MonitoredProject const& + monitored_project, + Options opts = {}); + // clang-format off /// /// Adds a `MonitoredProject` with the given project ID @@ -267,6 +276,17 @@ class MetricsScopesClient { request, Options opts = {}); + StatusOr CreateMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1::CreateMonitoredProjectRequest const& + request, + Options opts = {}); + + future> + CreateMonitoredProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a `MonitoredProject` from the specified `Metrics Scope`. @@ -305,6 +325,10 @@ class MetricsScopesClient { future> DeleteMonitoredProject(std::string const& name, Options opts = {}); + StatusOr DeleteMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `MonitoredProject` from the specified `Metrics Scope`. @@ -345,6 +369,17 @@ class MetricsScopesClient { request, Options opts = {}); + StatusOr DeleteMonitoredProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1::DeleteMonitoredProjectRequest const& + request, + Options opts = {}); + + future> + DeleteMonitoredProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..b079001bba0c4 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,38 @@ class MockMetricsScopesConnection CreateMonitoredProjectRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateMonitoredProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1:: + CreateMonitoredProjectRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateMonitoredProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMonitoredProject, (google::monitoring::metricsscope::v1:: DeleteMonitoredProjectRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteMonitoredProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::monitoring::metricsscope::v1:: + DeleteMonitoredProjectRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteMonitoredProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/monitoring/v3/alert_policy_client.h b/google/cloud/monitoring/v3/alert_policy_client.h index 555c62957507f..4995a039e51ed 100644 --- a/google/cloud/monitoring/v3/alert_policy_client.h +++ b/google/cloud/monitoring/v3/alert_policy_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_V3_ALERT_POLICY_CLIENT_H #include "google/cloud/monitoring/v3/alert_policy_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/monitoring/v3/group_client.h index 63be89f5620de..db9a21dbbcec8 100644 --- a/google/cloud/monitoring/v3/group_client.h +++ b/google/cloud/monitoring/v3/group_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_V3_GROUP_CLIENT_H #include "google/cloud/monitoring/v3/group_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/monitoring/v3/metric_client.h index 0a2d05aea981a..0162b6d4baaab 100644 --- a/google/cloud/monitoring/v3/metric_client.h +++ b/google/cloud/monitoring/v3/metric_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_V3_METRIC_CLIENT_H #include "google/cloud/monitoring/v3/metric_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/monitoring/v3/notification_channel_client.h index 868ea7a7dd7e8..d6f2abe03ad36 100644 --- a/google/cloud/monitoring/v3/notification_channel_client.h +++ b/google/cloud/monitoring/v3/notification_channel_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_V3_NOTIFICATION_CHANNEL_CLIENT_H #include "google/cloud/monitoring/v3/notification_channel_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/monitoring/v3/query_client.h index 2dd39f479de54..02cd6c9acfd05 100644 --- a/google/cloud/monitoring/v3/query_client.h +++ b/google/cloud/monitoring/v3/query_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_V3_QUERY_CLIENT_H #include "google/cloud/monitoring/v3/query_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/monitoring/v3/service_monitoring_client.h index 284f97f93ca96..3284d0e89a310 100644 --- a/google/cloud/monitoring/v3/service_monitoring_client.h +++ b/google/cloud/monitoring/v3/service_monitoring_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_V3_SERVICE_MONITORING_CLIENT_H #include "google/cloud/monitoring/v3/service_monitoring_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/monitoring/v3/snooze_client.h index 33488e441588a..81a40c2561686 100644 --- a/google/cloud/monitoring/v3/snooze_client.h +++ b/google/cloud/monitoring/v3/snooze_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_V3_SNOOZE_CLIENT_H #include "google/cloud/monitoring/v3/snooze_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/monitoring/v3/uptime_check_client.h index 5d6663ada5b98..67ca2028676d1 100644 --- a/google/cloud/monitoring/v3/uptime_check_client.h +++ b/google/cloud/monitoring/v3/uptime_check_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_MONITORING_V3_UPTIME_CHECK_CLIENT_H #include "google/cloud/monitoring/v3/uptime_check_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..5dd419083edda 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,59 @@ NetAppConnectionImpl::CreateStoragePool( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateStoragePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +241,59 @@ NetAppConnectionImpl::UpdateStoragePool( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +333,60 @@ NetAppConnectionImpl::DeleteStoragePool( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +473,57 @@ NetAppConnectionImpl::CreateVolume( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::CreateVolume( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +563,57 @@ NetAppConnectionImpl::UpdateVolume( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +653,58 @@ NetAppConnectionImpl::DeleteVolume( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::DeleteVolume( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +744,57 @@ NetAppConnectionImpl::RevertVolume( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::RevertVolume( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +881,66 @@ NetAppConnectionImpl::CreateSnapshot( polling_policy(*current), __func__); } -future> -NetAppConnectionImpl::DeleteSnapshot( - google::cloud::netapp::v1::DeleteSnapshotRequest const& request) { +StatusOr NetAppConnectionImpl::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +971,58 @@ NetAppConnectionImpl::DeleteSnapshot( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1062,57 @@ NetAppConnectionImpl::UpdateSnapshot( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1204,60 @@ NetAppConnectionImpl::CreateActiveDirectory( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1298,60 @@ NetAppConnectionImpl::UpdateActiveDirectory( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::UpdateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1392,60 @@ NetAppConnectionImpl::DeleteActiveDirectory( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1519,57 @@ NetAppConnectionImpl::CreateKmsConfig( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::CreateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1623,65 @@ NetAppConnectionImpl::UpdateKmsConfig( polling_policy(*current), __func__); } -future> -NetAppConnectionImpl::EncryptVolumes( - google::cloud::netapp::v1::EncryptVolumesRequest const& request) { +StatusOr NetAppConnectionImpl::UpdateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1713,57 @@ NetAppConnectionImpl::EncryptVolumes( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::EncryptVolumes( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1817,58 @@ NetAppConnectionImpl::DeleteKmsConfig( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::DeleteKmsConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1956,59 @@ NetAppConnectionImpl::CreateReplication( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2048,60 @@ NetAppConnectionImpl::DeleteReplication( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2141,59 @@ NetAppConnectionImpl::UpdateReplication( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::UpdateReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2233,57 @@ NetAppConnectionImpl::StopReplication( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::StopReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2323,59 @@ NetAppConnectionImpl::ResumeReplication( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::ResumeReplication( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2417,61 @@ NetAppConnectionImpl::ReverseReplicationDirection( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::ReverseReplicationDirection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2511,59 @@ NetAppConnectionImpl::CreateBackupVault( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateBackupVault( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2647,60 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2743,60 @@ NetAppConnectionImpl::DeleteBackupVault( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteBackupVault( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2836,57 @@ NetAppConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2973,58 @@ NetAppConnectionImpl::DeleteBackup( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +3064,57 @@ NetAppConnectionImpl::UpdateBackup( polling_policy(*current), __func__); } +StatusOr NetAppConnectionImpl::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +3154,59 @@ NetAppConnectionImpl::CreateBackupPolicy( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::CreateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +3294,59 @@ NetAppConnectionImpl::UpdateBackupPolicy( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::UpdateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +3386,60 @@ NetAppConnectionImpl::DeleteBackupPolicy( polling_policy(*current), __func__); } +StatusOr +NetAppConnectionImpl::DeleteBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..829de158107e9 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request) + override; + + future> CreateStoragePool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) + override; + + future> UpdateStoragePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteStoragePool(google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) override; + StatusOr DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) + override; + + future> + DeleteStoragePool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request) override; + + future> CreateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request) override; + StatusOr UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request) override; + + future> UpdateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const& request) override; + StatusOr DeleteVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request) override; + + future> DeleteVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request) override; + StatusOr RevertVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request) override; + + future> RevertVolume( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request) override; + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request) override; + + future> DeleteSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request) override; + StatusOr UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request) override; + + future> UpdateSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request) + override; + + future> + CreateActiveDirectory( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) override; + StatusOr UpdateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) + override; + + future> + UpdateActiveDirectory( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) override; + StatusOr DeleteActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) + override; + + future> + DeleteActiveDirectory( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request) + override; + + future> CreateKmsConfig( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) + override; + + future> UpdateKmsConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const& request) override; + StatusOr EncryptVolumes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request) override; + + future> EncryptVolumes( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) + override; + + future> + DeleteKmsConfig(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request) + override; + + future> CreateReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteReplication(google::cloud::netapp::v1::DeleteReplicationRequest const& request) override; + StatusOr DeleteReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request) + override; + + future> + DeleteReplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request) override; + StatusOr UpdateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request) + override; + + future> UpdateReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request) override; + StatusOr StopReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request) + override; + + future> StopReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request) override; + StatusOr ResumeReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request) + override; + + future> ResumeReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& request) override; + StatusOr ReverseReplicationDirection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request) override; + + future> + ReverseReplicationDirection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request) override; + StatusOr CreateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request) + override; + + future> CreateBackupVault( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) + override; + + future> UpdateBackupVault( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupVault(google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) override; + StatusOr DeleteBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) + override; + + future> + DeleteBackupVault(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request) override; + + future> CreateBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request) override; + + future> DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request) override; + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) override; + StatusOr CreateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) + override; + + future> CreateBackupPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) + override; + + future> UpdateBackupPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupPolicy(google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) override; + StatusOr DeleteBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) + override; + + future> + DeleteBackupPolicy(google::cloud::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..0974d08a2296f 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,30 @@ NetAppTracingConnection::CreateStoragePool( return internal::EndSpan(std::move(span), child_->CreateStoragePool(request)); } +StatusOr +NetAppTracingConnection::CreateStoragePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateStoragePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetStoragePool( google::cloud::netapp::v1::GetStoragePoolRequest const& request) { @@ -70,6 +94,30 @@ NetAppTracingConnection::UpdateStoragePool( return internal::EndSpan(std::move(span), child_->UpdateStoragePool(request)); } +StatusOr +NetAppTracingConnection::UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateStoragePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteStoragePool( google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) { @@ -79,6 +127,30 @@ NetAppTracingConnection::DeleteStoragePool( return internal::EndSpan(std::move(span), child_->DeleteStoragePool(request)); } +StatusOr +NetAppTracingConnection::DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteStoragePool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListVolumes( google::cloud::netapp::v1::ListVolumesRequest request) { @@ -104,6 +176,27 @@ NetAppTracingConnection::CreateVolume( return internal::EndSpan(std::move(span), child_->CreateVolume(request)); } +StatusOr NetAppTracingConnection::CreateVolume( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateVolume( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request) { @@ -112,6 +205,27 @@ NetAppTracingConnection::UpdateVolume( return internal::EndSpan(std::move(span), child_->UpdateVolume(request)); } +StatusOr NetAppTracingConnection::UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateVolume( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const& request) { @@ -120,6 +234,27 @@ NetAppTracingConnection::DeleteVolume( return internal::EndSpan(std::move(span), child_->DeleteVolume(request)); } +StatusOr NetAppTracingConnection::DeleteVolume( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteVolume( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request) { @@ -128,6 +263,27 @@ NetAppTracingConnection::RevertVolume( return internal::EndSpan(std::move(span), child_->RevertVolume(request)); } +StatusOr NetAppTracingConnection::RevertVolume( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::RevertVolume( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListSnapshots( google::cloud::netapp::v1::ListSnapshotsRequest request) { @@ -154,6 +310,28 @@ NetAppTracingConnection::CreateSnapshot( return internal::EndSpan(std::move(span), child_->CreateSnapshot(request)); } +StatusOr +NetAppTracingConnection::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const& request) { @@ -162,6 +340,28 @@ NetAppTracingConnection::DeleteSnapshot( return internal::EndSpan(std::move(span), child_->DeleteSnapshot(request)); } +StatusOr +NetAppTracingConnection::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request) { @@ -170,6 +370,28 @@ NetAppTracingConnection::UpdateSnapshot( return internal::EndSpan(std::move(span), child_->UpdateSnapshot(request)); } +StatusOr +NetAppTracingConnection::UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateSnapshot( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListActiveDirectories( google::cloud::netapp::v1::ListActiveDirectoriesRequest request) { @@ -201,6 +423,30 @@ NetAppTracingConnection::CreateActiveDirectory( child_->CreateActiveDirectory(request)); } +StatusOr +NetAppTracingConnection::CreateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateActiveDirectory( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) { @@ -211,6 +457,30 @@ NetAppTracingConnection::UpdateActiveDirectory( child_->UpdateActiveDirectory(request)); } +StatusOr +NetAppTracingConnection::UpdateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateActiveDirectory( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) { @@ -221,6 +491,30 @@ NetAppTracingConnection::DeleteActiveDirectory( child_->DeleteActiveDirectory(request)); } +StatusOr +NetAppTracingConnection::DeleteActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteActiveDirectory( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListKmsConfigs( google::cloud::netapp::v1::ListKmsConfigsRequest request) { @@ -240,6 +534,30 @@ NetAppTracingConnection::CreateKmsConfig( return internal::EndSpan(std::move(span), child_->CreateKmsConfig(request)); } +StatusOr +NetAppTracingConnection::CreateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateKmsConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetKmsConfig( google::cloud::netapp::v1::GetKmsConfigRequest const& request) { @@ -257,6 +575,30 @@ NetAppTracingConnection::UpdateKmsConfig( return internal::EndSpan(std::move(span), child_->UpdateKmsConfig(request)); } +StatusOr +NetAppTracingConnection::UpdateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateKmsConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const& request) { @@ -265,6 +607,28 @@ NetAppTracingConnection::EncryptVolumes( return internal::EndSpan(std::move(span), child_->EncryptVolumes(request)); } +StatusOr +NetAppTracingConnection::EncryptVolumes( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::EncryptVolumes( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::VerifyKmsConfig( google::cloud::netapp::v1::VerifyKmsConfigRequest const& request) { @@ -283,6 +647,30 @@ NetAppTracingConnection::DeleteKmsConfig( return internal::EndSpan(std::move(span), child_->DeleteKmsConfig(request)); } +StatusOr +NetAppTracingConnection::DeleteKmsConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteKmsConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetAppTracingConnection::ListReplications( google::cloud::netapp::v1::ListReplicationsRequest request) { @@ -311,6 +699,30 @@ NetAppTracingConnection::CreateReplication( return internal::EndSpan(std::move(span), child_->CreateReplication(request)); } +StatusOr +NetAppTracingConnection::CreateReplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateReplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteReplication( google::cloud::netapp::v1::DeleteReplicationRequest const& request) { @@ -320,6 +732,30 @@ NetAppTracingConnection::DeleteReplication( return internal::EndSpan(std::move(span), child_->DeleteReplication(request)); } +StatusOr +NetAppTracingConnection::DeleteReplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteReplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request) { @@ -329,6 +765,30 @@ NetAppTracingConnection::UpdateReplication( return internal::EndSpan(std::move(span), child_->UpdateReplication(request)); } +StatusOr +NetAppTracingConnection::UpdateReplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateReplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request) { @@ -338,6 +798,30 @@ NetAppTracingConnection::StopReplication( return internal::EndSpan(std::move(span), child_->StopReplication(request)); } +StatusOr +NetAppTracingConnection::StopReplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::StopReplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request) { @@ -347,6 +831,30 @@ NetAppTracingConnection::ResumeReplication( return internal::EndSpan(std::move(span), child_->ResumeReplication(request)); } +StatusOr +NetAppTracingConnection::ResumeReplication( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::ResumeReplication( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& @@ -358,6 +866,31 @@ NetAppTracingConnection::ReverseReplicationDirection( child_->ReverseReplicationDirection(request)); } +StatusOr +NetAppTracingConnection::ReverseReplicationDirection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::ReverseReplicationDirection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request) { @@ -367,6 +900,30 @@ NetAppTracingConnection::CreateBackupVault( return internal::EndSpan(std::move(span), child_->CreateBackupVault(request)); } +StatusOr +NetAppTracingConnection::CreateBackupVault( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateBackupVault( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetBackupVault( google::cloud::netapp::v1::GetBackupVaultRequest const& request) { @@ -395,6 +952,30 @@ NetAppTracingConnection::UpdateBackupVault( return internal::EndSpan(std::move(span), child_->UpdateBackupVault(request)); } +StatusOr +NetAppTracingConnection::UpdateBackupVault( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateBackupVault( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteBackupVault( google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) { @@ -404,6 +985,30 @@ NetAppTracingConnection::DeleteBackupVault( return internal::EndSpan(std::move(span), child_->DeleteBackupVault(request)); } +StatusOr +NetAppTracingConnection::DeleteBackupVault( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteBackupVault( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request) { @@ -412,6 +1017,27 @@ NetAppTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr NetAppTracingConnection::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetBackup( google::cloud::netapp::v1::GetBackupRequest const& request) { auto span = internal::MakeSpan("netapp_v1::NetAppConnection::GetBackup"); @@ -437,6 +1063,27 @@ NetAppTracingConnection::DeleteBackup( return internal::EndSpan(std::move(span), child_->DeleteBackup(request)); } +StatusOr NetAppTracingConnection::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request) { @@ -445,6 +1092,27 @@ NetAppTracingConnection::UpdateBackup( return internal::EndSpan(std::move(span), child_->UpdateBackup(request)); } +StatusOr NetAppTracingConnection::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) { @@ -455,6 +1123,30 @@ NetAppTracingConnection::CreateBackupPolicy( child_->CreateBackupPolicy(request)); } +StatusOr +NetAppTracingConnection::CreateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::CreateBackupPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NetAppTracingConnection::GetBackupPolicy( google::cloud::netapp::v1::GetBackupPolicyRequest const& request) { @@ -485,6 +1177,30 @@ NetAppTracingConnection::UpdateBackupPolicy( child_->UpdateBackupPolicy(request)); } +StatusOr +NetAppTracingConnection::UpdateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::UpdateBackupPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetAppTracingConnection::DeleteBackupPolicy( google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) { @@ -495,6 +1211,30 @@ NetAppTracingConnection::DeleteBackupPolicy( child_->DeleteBackupPolicy(request)); } +StatusOr +NetAppTracingConnection::DeleteBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetAppTracingConnection::DeleteBackupPolicy( + google::cloud::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(google::cloud::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..53a4ebe1b4716 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request) + override; + + future> CreateStoragePool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request) + override; + + future> UpdateStoragePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteStoragePool(google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) override; + StatusOr DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request) + override; + + future> + DeleteStoragePool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request) override; + + future> CreateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request) override; + StatusOr UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request) override; + + future> UpdateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const& request) override; + StatusOr DeleteVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request) override; + + future> DeleteVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request) override; + StatusOr RevertVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request) override; + + future> RevertVolume( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request) override; + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const& request) override; + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request) override; + + future> DeleteSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request) override; + StatusOr UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request) override; + + future> UpdateSnapshot( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request) + override; + + future> + CreateActiveDirectory( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) override; + StatusOr UpdateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request) + override; + + future> + UpdateActiveDirectory( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) override; + StatusOr DeleteActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request) + override; + + future> + DeleteActiveDirectory( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request) + override; + + future> CreateKmsConfig( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request) + override; + + future> UpdateKmsConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const& request) override; + StatusOr EncryptVolumes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request) override; + + future> EncryptVolumes( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request) + override; + + future> + DeleteKmsConfig(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request) + override; + + future> CreateReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteReplication(google::cloud::netapp::v1::DeleteReplicationRequest const& request) override; + StatusOr DeleteReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request) + override; + + future> + DeleteReplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request) override; + StatusOr UpdateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request) + override; + + future> UpdateReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request) override; + StatusOr StopReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request) + override; + + future> StopReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request) override; + StatusOr ResumeReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request) + override; + + future> ResumeReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& request) override; + StatusOr ReverseReplicationDirection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request) override; + + future> + ReverseReplicationDirection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request) override; + StatusOr CreateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request) + override; + + future> CreateBackupVault( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request) + override; + + future> UpdateBackupVault( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupVault(google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) override; + StatusOr DeleteBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request) + override; + + future> + DeleteBackupVault(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request) override; + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request) override; + + future> CreateBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request) override; + + future> DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request) override; + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request) override; + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) override; + StatusOr CreateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request) + override; + + future> CreateBackupPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request) + override; + + future> UpdateBackupPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteBackupPolicy(google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) override; + StatusOr DeleteBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request) + override; + + future> + DeleteBackupPolicy(google::cloud::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..bfe6d13eea1c1 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateStoragePool, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateStoragePool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteStoragePool, (google::cloud::netapp::v1::DeleteStoragePoolRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteStoragePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteStoragePool, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateVolume, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateVolume, (google::cloud::netapp::v1::UpdateVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateVolume, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateVolume, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteVolume, (google::cloud::netapp::v1::DeleteVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteVolume, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteVolume, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RevertVolume, (google::cloud::netapp::v1::RevertVolumeRequest const& request), (override)); + MOCK_METHOD(StatusOr, RevertVolume, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request), + (override)); + + MOCK_METHOD(future>, RevertVolume, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSnapshot, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteSnapshot, (google::cloud::netapp::v1::DeleteSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteSnapshot, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSnapshot, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateSnapshot, (google::cloud::netapp::v1::UpdateSnapshotRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateSnapshot, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSnapshot, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateActiveDirectory, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateActiveDirectory, (google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateActiveDirectory, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateActiveDirectory, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteActiveDirectory, (google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteActiveDirectory, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteActiveDirectory, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateKmsConfig, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateKmsConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, EncryptVolumes, (google::cloud::netapp::v1::EncryptVolumesRequest const& request), (override)); + MOCK_METHOD(StatusOr, EncryptVolumes, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request), + (override)); + + MOCK_METHOD(future>, + EncryptVolumes, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteKmsConfig, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateReplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteReplication, (google::cloud::netapp::v1::DeleteReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteReplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteReplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateReplication, (google::cloud::netapp::v1::UpdateReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateReplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateReplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopReplication, (google::cloud::netapp::v1::StopReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopReplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopReplication, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResumeReplication, (google::cloud::netapp::v1::ResumeReplicationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResumeReplication, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResumeReplication, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ReverseReplicationDirection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateBackupVault, (google::cloud::netapp::v1::CreateBackupVaultRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackupVault, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackupVault, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackupVault, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackupVault, (google::cloud::netapp::v1::DeleteBackupVaultRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteBackupVault, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackupVault, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateBackup, (google::cloud::netapp::v1::CreateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateBackup, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateBackup, (google::cloud::netapp::v1::UpdateBackupRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateBackupPolicy, (google::cloud::netapp::v1::CreateBackupPolicyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateBackupPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateBackupPolicy, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateBackupPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteBackupPolicy, (google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteBackupPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteBackupPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/netapp/v1/net_app_client.cc b/google/cloud/netapp/v1/net_app_client.cc index 54cac064a5772..84479311abfb7 100644 --- a/google/cloud/netapp/v1/net_app_client.cc +++ b/google/cloud/netapp/v1/net_app_client.cc @@ -60,6 +60,20 @@ NetAppClient::CreateStoragePool( return connection_->CreateStoragePool(request); } +StatusOr NetAppClient::CreateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::StoragePool const& storage_pool, + std::string const& storage_pool_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateStoragePoolRequest request; + request.set_parent(parent); + *request.mutable_storage_pool() = storage_pool; + request.set_storage_pool_id(storage_pool_id); + return connection_->CreateStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateStoragePool( google::cloud::netapp::v1::CreateStoragePoolRequest const& request, @@ -68,6 +82,24 @@ NetAppClient::CreateStoragePool( return connection_->CreateStoragePool(request); } +StatusOr NetAppClient::CreateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::CreateStoragePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateStoragePool(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetAppClient::GetStoragePool( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -94,6 +126,18 @@ NetAppClient::UpdateStoragePool( return connection_->UpdateStoragePool(request); } +StatusOr NetAppClient::UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::StoragePool const& storage_pool, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateStoragePoolRequest request; + *request.mutable_storage_pool() = storage_pool; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateStoragePool( google::cloud::netapp::v1::UpdateStoragePoolRequest const& request, @@ -102,6 +146,24 @@ NetAppClient::UpdateStoragePool( return connection_->UpdateStoragePool(request); } +StatusOr NetAppClient::UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::UpdateStoragePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateStoragePool(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::DeleteStoragePool(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -110,6 +172,16 @@ NetAppClient::DeleteStoragePool(std::string const& name, Options opts) { return connection_->DeleteStoragePool(request); } +StatusOr NetAppClient::DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteStoragePoolRequest request; + request.set_name(name); + return connection_->DeleteStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteStoragePool( google::cloud::netapp::v1::DeleteStoragePoolRequest const& request, @@ -118,6 +190,24 @@ NetAppClient::DeleteStoragePool( return connection_->DeleteStoragePool(request); } +StatusOr NetAppClient::DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteStoragePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteStoragePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteStoragePool(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetAppClient::ListVolumes( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -157,6 +247,19 @@ future> NetAppClient::CreateVolume( return connection_->CreateVolume(request); } +StatusOr NetAppClient::CreateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::netapp::v1::Volume const& volume, + std::string const& volume_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateVolumeRequest request; + request.set_parent(parent); + *request.mutable_volume() = volume; + request.set_volume_id(volume_id); + return connection_->CreateVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateVolume( google::cloud::netapp::v1::CreateVolumeRequest const& request, Options opts) { @@ -164,6 +267,22 @@ future> NetAppClient::CreateVolume( return connection_->CreateVolume(request); } +StatusOr NetAppClient::CreateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> NetAppClient::CreateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVolume(google::cloud::ExperimentalTag{}, operation); +} + future> NetAppClient::UpdateVolume( google::cloud::netapp::v1::Volume const& volume, google::protobuf::FieldMask const& update_mask, Options opts) { @@ -174,6 +293,18 @@ future> NetAppClient::UpdateVolume( return connection_->UpdateVolume(request); } +StatusOr NetAppClient::UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::Volume const& volume, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateVolumeRequest request; + *request.mutable_volume() = volume; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateVolume( google::cloud::netapp::v1::UpdateVolumeRequest const& request, Options opts) { @@ -181,6 +312,22 @@ future> NetAppClient::UpdateVolume( return connection_->UpdateVolume(request); } +StatusOr NetAppClient::UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> NetAppClient::UpdateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVolume(google::cloud::ExperimentalTag{}, operation); +} + future> NetAppClient::DeleteVolume(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -189,6 +336,16 @@ NetAppClient::DeleteVolume(std::string const& name, Options opts) { return connection_->DeleteVolume(request); } +StatusOr NetAppClient::DeleteVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteVolumeRequest request; + request.set_name(name); + return connection_->DeleteVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteVolume( google::cloud::netapp::v1::DeleteVolumeRequest const& request, @@ -197,6 +354,23 @@ NetAppClient::DeleteVolume( return connection_->DeleteVolume(request); } +StatusOr NetAppClient::DeleteVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteVolume(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVolume(google::cloud::ExperimentalTag{}, operation); +} + future> NetAppClient::RevertVolume( google::cloud::netapp::v1::RevertVolumeRequest const& request, Options opts) { @@ -204,6 +378,22 @@ future> NetAppClient::RevertVolume( return connection_->RevertVolume(request); } +StatusOr NetAppClient::RevertVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RevertVolume(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> NetAppClient::RevertVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RevertVolume(google::cloud::ExperimentalTag{}, operation); +} + StreamRange NetAppClient::ListSnapshots( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -246,6 +436,20 @@ NetAppClient::CreateSnapshot( return connection_->CreateSnapshot(request); } +StatusOr NetAppClient::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::Snapshot const& snapshot, + std::string const& snapshot_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateSnapshotRequest request; + request.set_parent(parent); + *request.mutable_snapshot() = snapshot; + request.set_snapshot_id(snapshot_id); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateSnapshot( google::cloud::netapp::v1::CreateSnapshotRequest const& request, @@ -254,6 +458,24 @@ NetAppClient::CreateSnapshot( return connection_->CreateSnapshot(request); } +StatusOr NetAppClient::CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::CreateSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::DeleteSnapshot(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -262,6 +484,16 @@ NetAppClient::DeleteSnapshot(std::string const& name, Options opts) { return connection_->DeleteSnapshot(request); } +StatusOr NetAppClient::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteSnapshotRequest request; + request.set_name(name); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteSnapshot( google::cloud::netapp::v1::DeleteSnapshotRequest const& request, @@ -270,6 +502,24 @@ NetAppClient::DeleteSnapshot( return connection_->DeleteSnapshot(request); } +StatusOr NetAppClient::DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::UpdateSnapshot( google::cloud::netapp::v1::Snapshot const& snapshot, @@ -281,6 +531,18 @@ NetAppClient::UpdateSnapshot( return connection_->UpdateSnapshot(request); } +StatusOr NetAppClient::UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::Snapshot const& snapshot, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateSnapshotRequest request; + *request.mutable_snapshot() = snapshot; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateSnapshot( google::cloud::netapp::v1::UpdateSnapshotRequest const& request, @@ -289,6 +551,24 @@ NetAppClient::UpdateSnapshot( return connection_->UpdateSnapshot(request); } +StatusOr NetAppClient::UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSnapshot(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::UpdateSnapshot(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSnapshot(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetAppClient::ListActiveDirectories(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -334,6 +614,20 @@ NetAppClient::CreateActiveDirectory( return connection_->CreateActiveDirectory(request); } +StatusOr NetAppClient::CreateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::ActiveDirectory const& active_directory, + std::string const& active_directory_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateActiveDirectoryRequest request; + request.set_parent(parent); + *request.mutable_active_directory() = active_directory; + request.set_active_directory_id(active_directory_id); + return connection_->CreateActiveDirectory( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateActiveDirectory( google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request, @@ -342,6 +636,24 @@ NetAppClient::CreateActiveDirectory( return connection_->CreateActiveDirectory(request); } +StatusOr NetAppClient::CreateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateActiveDirectory( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::CreateActiveDirectory( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateActiveDirectory(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::UpdateActiveDirectory( google::cloud::netapp::v1::ActiveDirectory const& active_directory, @@ -353,6 +665,18 @@ NetAppClient::UpdateActiveDirectory( return connection_->UpdateActiveDirectory(request); } +StatusOr NetAppClient::UpdateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ActiveDirectory const& active_directory, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateActiveDirectoryRequest request; + *request.mutable_active_directory() = active_directory; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateActiveDirectory( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateActiveDirectory( google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request, @@ -361,6 +685,24 @@ NetAppClient::UpdateActiveDirectory( return connection_->UpdateActiveDirectory(request); } +StatusOr NetAppClient::UpdateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateActiveDirectory( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::UpdateActiveDirectory( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateActiveDirectory(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::DeleteActiveDirectory(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -369,6 +711,16 @@ NetAppClient::DeleteActiveDirectory(std::string const& name, Options opts) { return connection_->DeleteActiveDirectory(request); } +StatusOr NetAppClient::DeleteActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteActiveDirectoryRequest request; + request.set_name(name); + return connection_->DeleteActiveDirectory( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteActiveDirectory( google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request, @@ -377,6 +729,24 @@ NetAppClient::DeleteActiveDirectory( return connection_->DeleteActiveDirectory(request); } +StatusOr NetAppClient::DeleteActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteActiveDirectory( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteActiveDirectory( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteActiveDirectory(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetAppClient::ListKmsConfigs( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -404,6 +774,20 @@ NetAppClient::CreateKmsConfig( return connection_->CreateKmsConfig(request); } +StatusOr NetAppClient::CreateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::KmsConfig const& kms_config, + std::string const& kms_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateKmsConfigRequest request; + request.set_parent(parent); + *request.mutable_kms_config() = kms_config; + request.set_kms_config_id(kms_config_id); + return connection_->CreateKmsConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateKmsConfig( google::cloud::netapp::v1::CreateKmsConfigRequest const& request, @@ -412,6 +796,24 @@ NetAppClient::CreateKmsConfig( return connection_->CreateKmsConfig(request); } +StatusOr NetAppClient::CreateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateKmsConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::CreateKmsConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateKmsConfig(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetAppClient::GetKmsConfig( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -438,6 +840,18 @@ NetAppClient::UpdateKmsConfig( return connection_->UpdateKmsConfig(request); } +StatusOr NetAppClient::UpdateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::KmsConfig const& kms_config, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateKmsConfigRequest request; + *request.mutable_kms_config() = kms_config; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateKmsConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateKmsConfig( google::cloud::netapp::v1::UpdateKmsConfigRequest const& request, @@ -446,6 +860,24 @@ NetAppClient::UpdateKmsConfig( return connection_->UpdateKmsConfig(request); } +StatusOr NetAppClient::UpdateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateKmsConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::UpdateKmsConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateKmsConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::EncryptVolumes( google::cloud::netapp::v1::EncryptVolumesRequest const& request, @@ -454,6 +886,24 @@ NetAppClient::EncryptVolumes( return connection_->EncryptVolumes(request); } +StatusOr NetAppClient::EncryptVolumes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EncryptVolumes(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::EncryptVolumes(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EncryptVolumes(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetAppClient::VerifyKmsConfig( google::cloud::netapp::v1::VerifyKmsConfigRequest const& request, @@ -470,6 +920,16 @@ NetAppClient::DeleteKmsConfig(std::string const& name, Options opts) { return connection_->DeleteKmsConfig(request); } +StatusOr NetAppClient::DeleteKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteKmsConfigRequest request; + request.set_name(name); + return connection_->DeleteKmsConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteKmsConfig( google::cloud::netapp::v1::DeleteKmsConfigRequest const& request, @@ -478,6 +938,24 @@ NetAppClient::DeleteKmsConfig( return connection_->DeleteKmsConfig(request); } +StatusOr NetAppClient::DeleteKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteKmsConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteKmsConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteKmsConfig(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetAppClient::ListReplications(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -521,6 +999,20 @@ NetAppClient::CreateReplication( return connection_->CreateReplication(request); } +StatusOr NetAppClient::CreateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::Replication const& replication, + std::string const& replication_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateReplicationRequest request; + request.set_parent(parent); + *request.mutable_replication() = replication; + request.set_replication_id(replication_id); + return connection_->CreateReplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateReplication( google::cloud::netapp::v1::CreateReplicationRequest const& request, @@ -529,6 +1021,24 @@ NetAppClient::CreateReplication( return connection_->CreateReplication(request); } +StatusOr NetAppClient::CreateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateReplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::CreateReplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::DeleteReplication(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -537,6 +1047,16 @@ NetAppClient::DeleteReplication(std::string const& name, Options opts) { return connection_->DeleteReplication(request); } +StatusOr NetAppClient::DeleteReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteReplicationRequest request; + request.set_name(name); + return connection_->DeleteReplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteReplication( google::cloud::netapp::v1::DeleteReplicationRequest const& request, @@ -545,6 +1065,24 @@ NetAppClient::DeleteReplication( return connection_->DeleteReplication(request); } +StatusOr NetAppClient::DeleteReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteReplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteReplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::UpdateReplication( google::cloud::netapp::v1::Replication const& replication, @@ -556,6 +1094,18 @@ NetAppClient::UpdateReplication( return connection_->UpdateReplication(request); } +StatusOr NetAppClient::UpdateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::Replication const& replication, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateReplicationRequest request; + *request.mutable_replication() = replication; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateReplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateReplication( google::cloud::netapp::v1::UpdateReplicationRequest const& request, @@ -564,6 +1114,24 @@ NetAppClient::UpdateReplication( return connection_->UpdateReplication(request); } +StatusOr NetAppClient::UpdateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateReplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::UpdateReplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::StopReplication( google::cloud::netapp::v1::StopReplicationRequest const& request, @@ -572,6 +1140,24 @@ NetAppClient::StopReplication( return connection_->StopReplication(request); } +StatusOr NetAppClient::StopReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopReplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::StopReplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::ResumeReplication( google::cloud::netapp::v1::ResumeReplicationRequest const& request, @@ -580,6 +1166,24 @@ NetAppClient::ResumeReplication( return connection_->ResumeReplication(request); } +StatusOr NetAppClient::ResumeReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResumeReplication(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::ResumeReplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResumeReplication(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::ReverseReplicationDirection( google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& @@ -589,6 +1193,26 @@ NetAppClient::ReverseReplicationDirection( return connection_->ReverseReplicationDirection(request); } +StatusOr +NetAppClient::ReverseReplicationDirection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReverseReplicationDirection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::ReverseReplicationDirection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReverseReplicationDirection( + google::cloud::ExperimentalTag{}, operation); +} + future> NetAppClient::CreateBackupVault( std::string const& parent, @@ -602,6 +1226,20 @@ NetAppClient::CreateBackupVault( return connection_->CreateBackupVault(request); } +StatusOr NetAppClient::CreateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::BackupVault const& backup_vault, + std::string const& backup_vault_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateBackupVaultRequest request; + request.set_parent(parent); + *request.mutable_backup_vault() = backup_vault; + request.set_backup_vault_id(backup_vault_id); + return connection_->CreateBackupVault(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateBackupVault( google::cloud::netapp::v1::CreateBackupVaultRequest const& request, @@ -610,6 +1248,24 @@ NetAppClient::CreateBackupVault( return connection_->CreateBackupVault(request); } +StatusOr NetAppClient::CreateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackupVault(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::CreateBackupVault(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackupVault(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetAppClient::GetBackupVault( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -651,6 +1307,18 @@ NetAppClient::UpdateBackupVault( return connection_->UpdateBackupVault(request); } +StatusOr NetAppClient::UpdateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::BackupVault const& backup_vault, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateBackupVaultRequest request; + *request.mutable_backup_vault() = backup_vault; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateBackupVault(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateBackupVault( google::cloud::netapp::v1::UpdateBackupVaultRequest const& request, @@ -659,6 +1327,24 @@ NetAppClient::UpdateBackupVault( return connection_->UpdateBackupVault(request); } +StatusOr NetAppClient::UpdateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackupVault(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::UpdateBackupVault(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackupVault(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::DeleteBackupVault(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -667,6 +1353,16 @@ NetAppClient::DeleteBackupVault(std::string const& name, Options opts) { return connection_->DeleteBackupVault(request); } +StatusOr NetAppClient::DeleteBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteBackupVaultRequest request; + request.set_name(name); + return connection_->DeleteBackupVault(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteBackupVault( google::cloud::netapp::v1::DeleteBackupVaultRequest const& request, @@ -675,6 +1371,24 @@ NetAppClient::DeleteBackupVault( return connection_->DeleteBackupVault(request); } +StatusOr NetAppClient::DeleteBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackupVault(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteBackupVault(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackupVault(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::CreateBackup( std::string const& parent, google::cloud::netapp::v1::Backup const& backup, std::string const& backup_id, Options opts) { @@ -686,6 +1400,19 @@ future> NetAppClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr NetAppClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::netapp::v1::Backup const& backup, + std::string const& backup_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateBackupRequest request; + request.set_parent(parent); + *request.mutable_backup() = backup; + request.set_backup_id(backup_id); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateBackup( google::cloud::netapp::v1::CreateBackupRequest const& request, Options opts) { @@ -693,6 +1420,22 @@ future> NetAppClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr NetAppClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> NetAppClient::CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, operation); +} + StatusOr NetAppClient::GetBackup( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -729,6 +1472,16 @@ NetAppClient::DeleteBackup(std::string const& name, Options opts) { return connection_->DeleteBackup(request); } +StatusOr NetAppClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteBackupRequest request; + request.set_name(name); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteBackup( google::cloud::netapp::v1::DeleteBackupRequest const& request, @@ -737,6 +1490,23 @@ NetAppClient::DeleteBackup( return connection_->DeleteBackup(request); } +StatusOr NetAppClient::DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteBackup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackup(google::cloud::ExperimentalTag{}, operation); +} + future> NetAppClient::UpdateBackup( google::cloud::netapp::v1::Backup const& backup, google::protobuf::FieldMask const& update_mask, Options opts) { @@ -747,6 +1517,18 @@ future> NetAppClient::UpdateBackup( return connection_->UpdateBackup(request); } +StatusOr NetAppClient::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::Backup const& backup, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateBackupRequest request; + *request.mutable_backup() = backup; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateBackup( google::cloud::netapp::v1::UpdateBackupRequest const& request, Options opts) { @@ -754,6 +1536,22 @@ future> NetAppClient::UpdateBackup( return connection_->UpdateBackup(request); } +StatusOr NetAppClient::UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> NetAppClient::UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackup(google::cloud::ExperimentalTag{}, operation); +} + future> NetAppClient::CreateBackupPolicy( std::string const& parent, @@ -767,6 +1565,20 @@ NetAppClient::CreateBackupPolicy( return connection_->CreateBackupPolicy(request); } +StatusOr NetAppClient::CreateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::BackupPolicy const& backup_policy, + std::string const& backup_policy_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::CreateBackupPolicyRequest request; + request.set_parent(parent); + *request.mutable_backup_policy() = backup_policy; + request.set_backup_policy_id(backup_policy_id); + return connection_->CreateBackupPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::CreateBackupPolicy( google::cloud::netapp::v1::CreateBackupPolicyRequest const& request, @@ -775,6 +1587,24 @@ NetAppClient::CreateBackupPolicy( return connection_->CreateBackupPolicy(request); } +StatusOr NetAppClient::CreateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackupPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::CreateBackupPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackupPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NetAppClient::GetBackupPolicy( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -817,6 +1647,18 @@ NetAppClient::UpdateBackupPolicy( return connection_->UpdateBackupPolicy(request); } +StatusOr NetAppClient::UpdateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::BackupPolicy const& backup_policy, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::UpdateBackupPolicyRequest request; + *request.mutable_backup_policy() = backup_policy; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateBackupPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::UpdateBackupPolicy( google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request, @@ -825,6 +1667,24 @@ NetAppClient::UpdateBackupPolicy( return connection_->UpdateBackupPolicy(request); } +StatusOr NetAppClient::UpdateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackupPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::UpdateBackupPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateBackupPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> NetAppClient::DeleteBackupPolicy(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -833,6 +1693,16 @@ NetAppClient::DeleteBackupPolicy(std::string const& name, Options opts) { return connection_->DeleteBackupPolicy(request); } +StatusOr NetAppClient::DeleteBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::netapp::v1::DeleteBackupPolicyRequest request; + request.set_name(name); + return connection_->DeleteBackupPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetAppClient::DeleteBackupPolicy( google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request, @@ -841,6 +1711,24 @@ NetAppClient::DeleteBackupPolicy( return connection_->DeleteBackupPolicy(request); } +StatusOr NetAppClient::DeleteBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackupPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetAppClient::DeleteBackupPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteBackupPolicy(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace netapp_v1 } // namespace cloud diff --git a/google/cloud/netapp/v1/net_app_client.h b/google/cloud/netapp/v1/net_app_client.h index 2088804f55a24..873430f88d368 100644 --- a/google/cloud/netapp/v1/net_app_client.h +++ b/google/cloud/netapp/v1/net_app_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NETAPP_V1_NET_APP_CLIENT_H #include "google/cloud/netapp/v1/net_app_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,12 @@ class NetAppClient { google::cloud::netapp::v1::StoragePool const& storage_pool, std::string const& storage_pool_id, Options opts = {}); + StatusOr CreateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::StoragePool const& storage_pool, + std::string const& storage_pool_id, Options opts = {}); + // clang-format off /// /// Creates a new storage pool. @@ -235,6 +243,15 @@ class NetAppClient { google::cloud::netapp::v1::CreateStoragePoolRequest const& request, Options opts = {}); + StatusOr CreateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateStoragePoolRequest const& request, + Options opts = {}); + + future> CreateStoragePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns the description of the specified storage pool by poolId. @@ -329,6 +346,11 @@ class NetAppClient { google::cloud::netapp::v1::StoragePool const& storage_pool, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::StoragePool const& storage_pool, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the storage pool properties with the full spec @@ -367,6 +389,15 @@ class NetAppClient { google::cloud::netapp::v1::UpdateStoragePoolRequest const& request, Options opts = {}); + StatusOr UpdateStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateStoragePoolRequest const& request, + Options opts = {}); + + future> UpdateStoragePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Warning! This operation will permanently delete the storage pool. @@ -399,6 +430,10 @@ class NetAppClient { future> DeleteStoragePool(std::string const& name, Options opts = {}); + StatusOr DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Warning! This operation will permanently delete the storage pool. @@ -438,6 +473,16 @@ class NetAppClient { google::cloud::netapp::v1::DeleteStoragePoolRequest const& request, Options opts = {}); + StatusOr DeleteStoragePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteStoragePoolRequest const& request, + Options opts = {}); + + future> + DeleteStoragePool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Volumes in a given project. @@ -605,6 +650,12 @@ class NetAppClient { google::cloud::netapp::v1::Volume const& volume, std::string const& volume_id, Options opts = {}); + StatusOr CreateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::Volume const& volume, + std::string const& volume_id, Options opts = {}); + // clang-format off /// /// Creates a new Volume in a given project and location. @@ -643,6 +694,15 @@ class NetAppClient { google::cloud::netapp::v1::CreateVolumeRequest const& request, Options opts = {}); + StatusOr CreateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateVolumeRequest const& request, + Options opts = {}); + + future> CreateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Volume. @@ -681,6 +741,11 @@ class NetAppClient { google::cloud::netapp::v1::Volume const& volume, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::Volume const& volume, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Volume. @@ -719,6 +784,15 @@ class NetAppClient { google::cloud::netapp::v1::UpdateVolumeRequest const& request, Options opts = {}); + StatusOr UpdateVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateVolumeRequest const& request, + Options opts = {}); + + future> UpdateVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Volume. @@ -751,6 +825,10 @@ class NetAppClient { future> DeleteVolume( std::string const& name, Options opts = {}); + StatusOr DeleteVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Volume. @@ -789,6 +867,15 @@ class NetAppClient { google::cloud::netapp::v1::DeleteVolumeRequest const& request, Options opts = {}); + StatusOr DeleteVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteVolumeRequest const& request, + Options opts = {}); + + future> DeleteVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Revert an existing volume to a specified snapshot. @@ -829,6 +916,15 @@ class NetAppClient { google::cloud::netapp::v1::RevertVolumeRequest const& request, Options opts = {}); + StatusOr RevertVolume( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::RevertVolumeRequest const& request, + Options opts = {}); + + future> RevertVolume( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns descriptions of all snapshots for a volume. @@ -1001,6 +1097,12 @@ class NetAppClient { google::cloud::netapp::v1::Snapshot const& snapshot, std::string const& snapshot_id, Options opts = {}); + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::Snapshot const& snapshot, + std::string const& snapshot_id, Options opts = {}); + // clang-format off /// /// Create a new snapshot for a volume. @@ -1039,6 +1141,15 @@ class NetAppClient { google::cloud::netapp::v1::CreateSnapshotRequest const& request, Options opts = {}); + StatusOr CreateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateSnapshotRequest const& request, + Options opts = {}); + + future> CreateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a snapshot. @@ -1072,6 +1183,10 @@ class NetAppClient { future> DeleteSnapshot( std::string const& name, Options opts = {}); + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a snapshot. @@ -1110,6 +1225,15 @@ class NetAppClient { google::cloud::netapp::v1::DeleteSnapshotRequest const& request, Options opts = {}); + StatusOr DeleteSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteSnapshotRequest const& request, + Options opts = {}); + + future> DeleteSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific snapshot. @@ -1145,6 +1269,11 @@ class NetAppClient { google::cloud::netapp::v1::Snapshot const& snapshot, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::Snapshot const& snapshot, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific snapshot. @@ -1183,6 +1312,15 @@ class NetAppClient { google::cloud::netapp::v1::UpdateSnapshotRequest const& request, Options opts = {}); + StatusOr UpdateSnapshot( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateSnapshotRequest const& request, + Options opts = {}); + + future> UpdateSnapshot( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists active directories. @@ -1351,6 +1489,12 @@ class NetAppClient { google::cloud::netapp::v1::ActiveDirectory const& active_directory, std::string const& active_directory_id, Options opts = {}); + StatusOr CreateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::ActiveDirectory const& active_directory, + std::string const& active_directory_id, Options opts = {}); + // clang-format off /// /// CreateActiveDirectory @@ -1391,6 +1535,16 @@ class NetAppClient { google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request, Options opts = {}); + StatusOr CreateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateActiveDirectoryRequest const& request, + Options opts = {}); + + future> + CreateActiveDirectory(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Update the parameters of an active directories. @@ -1430,6 +1584,11 @@ class NetAppClient { google::cloud::netapp::v1::ActiveDirectory const& active_directory, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ActiveDirectory const& active_directory, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update the parameters of an active directories. @@ -1469,6 +1628,16 @@ class NetAppClient { google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request, Options opts = {}); + StatusOr UpdateActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateActiveDirectoryRequest const& request, + Options opts = {}); + + future> + UpdateActiveDirectory(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Delete the active directory specified in the request. @@ -1501,6 +1670,10 @@ class NetAppClient { future> DeleteActiveDirectory(std::string const& name, Options opts = {}); + StatusOr DeleteActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete the active directory specified in the request. @@ -1540,6 +1713,16 @@ class NetAppClient { google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request, Options opts = {}); + StatusOr DeleteActiveDirectory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteActiveDirectoryRequest const& request, + Options opts = {}); + + future> + DeleteActiveDirectory(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns descriptions of all KMS configs owned by the caller. @@ -1652,6 +1835,12 @@ class NetAppClient { google::cloud::netapp::v1::KmsConfig const& kms_config, std::string const& kms_config_id, Options opts = {}); + StatusOr CreateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::KmsConfig const& kms_config, + std::string const& kms_config_id, Options opts = {}); + // clang-format off /// /// Creates a new KMS config. @@ -1690,6 +1879,15 @@ class NetAppClient { google::cloud::netapp::v1::CreateKmsConfigRequest const& request, Options opts = {}); + StatusOr CreateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateKmsConfigRequest const& request, + Options opts = {}); + + future> CreateKmsConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns the description of the specified KMS config by kms_config_id. @@ -1784,6 +1982,11 @@ class NetAppClient { google::cloud::netapp::v1::KmsConfig const& kms_config, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::KmsConfig const& kms_config, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the Kms config properties with the full spec @@ -1822,6 +2025,15 @@ class NetAppClient { google::cloud::netapp::v1::UpdateKmsConfigRequest const& request, Options opts = {}); + StatusOr UpdateKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateKmsConfigRequest const& request, + Options opts = {}); + + future> UpdateKmsConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Encrypt the existing volumes without CMEK encryption with the desired the @@ -1861,6 +2073,15 @@ class NetAppClient { google::cloud::netapp::v1::EncryptVolumesRequest const& request, Options opts = {}); + StatusOr EncryptVolumes( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::EncryptVolumesRequest const& request, + Options opts = {}); + + future> EncryptVolumes( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Verifies KMS config reachability. @@ -1924,6 +2145,10 @@ class NetAppClient { future> DeleteKmsConfig(std::string const& name, Options opts = {}); + StatusOr DeleteKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Warning! This operation will permanently delete the Kms config. @@ -1963,6 +2188,16 @@ class NetAppClient { google::cloud::netapp::v1::DeleteKmsConfigRequest const& request, Options opts = {}); + StatusOr DeleteKmsConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteKmsConfigRequest const& request, + Options opts = {}); + + future> + DeleteKmsConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns descriptions of all replications for a volume. @@ -2135,6 +2370,12 @@ class NetAppClient { google::cloud::netapp::v1::Replication const& replication, std::string const& replication_id, Options opts = {}); + StatusOr CreateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::Replication const& replication, + std::string const& replication_id, Options opts = {}); + // clang-format off /// /// Create a new replication for a volume. @@ -2173,6 +2414,15 @@ class NetAppClient { google::cloud::netapp::v1::CreateReplicationRequest const& request, Options opts = {}); + StatusOr CreateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateReplicationRequest const& request, + Options opts = {}); + + future> CreateReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a replication. @@ -2206,6 +2456,10 @@ class NetAppClient { future> DeleteReplication(std::string const& name, Options opts = {}); + StatusOr DeleteReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a replication. @@ -2245,6 +2499,16 @@ class NetAppClient { google::cloud::netapp::v1::DeleteReplicationRequest const& request, Options opts = {}); + StatusOr DeleteReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteReplicationRequest const& request, + Options opts = {}); + + future> + DeleteReplication(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the settings of a specific replication. @@ -2280,6 +2544,11 @@ class NetAppClient { google::cloud::netapp::v1::Replication const& replication, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::Replication const& replication, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific replication. @@ -2318,6 +2587,15 @@ class NetAppClient { google::cloud::netapp::v1::UpdateReplicationRequest const& request, Options opts = {}); + StatusOr UpdateReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateReplicationRequest const& request, + Options opts = {}); + + future> UpdateReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Stop Cross Region Replication. @@ -2356,6 +2634,15 @@ class NetAppClient { google::cloud::netapp::v1::StopReplicationRequest const& request, Options opts = {}); + StatusOr StopReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::StopReplicationRequest const& request, + Options opts = {}); + + future> StopReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Resume Cross Region Replication. @@ -2394,6 +2681,15 @@ class NetAppClient { google::cloud::netapp::v1::ResumeReplicationRequest const& request, Options opts = {}); + StatusOr ResumeReplication( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ResumeReplicationRequest const& request, + Options opts = {}); + + future> ResumeReplication( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Reverses direction of replication. Source becomes destination and @@ -2435,6 +2731,17 @@ class NetAppClient { request, Options opts = {}); + StatusOr ReverseReplicationDirection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::ReverseReplicationDirectionRequest const& + request, + Options opts = {}); + + future> + ReverseReplicationDirection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates new backup vault @@ -2478,6 +2785,12 @@ class NetAppClient { google::cloud::netapp::v1::BackupVault const& backup_vault, std::string const& backup_vault_id, Options opts = {}); + StatusOr CreateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::BackupVault const& backup_vault, + std::string const& backup_vault_id, Options opts = {}); + // clang-format off /// /// Creates new backup vault @@ -2516,6 +2829,15 @@ class NetAppClient { google::cloud::netapp::v1::CreateBackupVaultRequest const& request, Options opts = {}); + StatusOr CreateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupVaultRequest const& request, + Options opts = {}); + + future> CreateBackupVault( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns the description of the specified backup vault @@ -2687,6 +3009,11 @@ class NetAppClient { google::cloud::netapp::v1::BackupVault const& backup_vault, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::BackupVault const& backup_vault, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the settings of a specific backup vault. @@ -2725,6 +3052,15 @@ class NetAppClient { google::cloud::netapp::v1::UpdateBackupVaultRequest const& request, Options opts = {}); + StatusOr UpdateBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupVaultRequest const& request, + Options opts = {}); + + future> UpdateBackupVault( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Warning! This operation will permanently delete the backup vault. @@ -2758,6 +3094,10 @@ class NetAppClient { future> DeleteBackupVault(std::string const& name, Options opts = {}); + StatusOr DeleteBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Warning! This operation will permanently delete the backup vault. @@ -2797,6 +3137,16 @@ class NetAppClient { google::cloud::netapp::v1::DeleteBackupVaultRequest const& request, Options opts = {}); + StatusOr DeleteBackupVault( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupVaultRequest const& request, + Options opts = {}); + + future> + DeleteBackupVault(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a backup from the volume specified in the request @@ -2842,6 +3192,12 @@ class NetAppClient { google::cloud::netapp::v1::Backup const& backup, std::string const& backup_id, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::Backup const& backup, + std::string const& backup_id, Options opts = {}); + // clang-format off /// /// Creates a backup from the volume specified in the request @@ -2883,6 +3239,15 @@ class NetAppClient { google::cloud::netapp::v1::CreateBackupRequest const& request, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupRequest const& request, + Options opts = {}); + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns the description of the specified backup @@ -3054,6 +3419,10 @@ class NetAppClient { future> DeleteBackup( std::string const& name, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Warning! This operation will permanently delete the backup. @@ -3092,6 +3461,15 @@ class NetAppClient { google::cloud::netapp::v1::DeleteBackupRequest const& request, Options opts = {}); + StatusOr DeleteBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupRequest const& request, + Options opts = {}); + + future> DeleteBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Update backup with full spec. @@ -3130,6 +3508,11 @@ class NetAppClient { google::cloud::netapp::v1::Backup const& backup, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::Backup const& backup, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update backup with full spec. @@ -3168,6 +3551,15 @@ class NetAppClient { google::cloud::netapp::v1::UpdateBackupRequest const& request, Options opts = {}); + StatusOr UpdateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupRequest const& request, + Options opts = {}); + + future> UpdateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates new backup policy @@ -3208,6 +3600,12 @@ class NetAppClient { google::cloud::netapp::v1::BackupPolicy const& backup_policy, std::string const& backup_policy_id, Options opts = {}); + StatusOr CreateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::netapp::v1::BackupPolicy const& backup_policy, + std::string const& backup_policy_id, Options opts = {}); + // clang-format off /// /// Creates new backup policy @@ -3246,6 +3644,15 @@ class NetAppClient { google::cloud::netapp::v1::CreateBackupPolicyRequest const& request, Options opts = {}); + StatusOr CreateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::CreateBackupPolicyRequest const& request, + Options opts = {}); + + future> CreateBackupPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns the description of the specified backup policy by backup_policy_id. @@ -3415,6 +3822,11 @@ class NetAppClient { google::cloud::netapp::v1::BackupPolicy const& backup_policy, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::BackupPolicy const& backup_policy, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates settings of a specific backup policy. @@ -3453,6 +3865,15 @@ class NetAppClient { google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request, Options opts = {}); + StatusOr UpdateBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::UpdateBackupPolicyRequest const& request, + Options opts = {}); + + future> UpdateBackupPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Warning! This operation will permanently delete the backup policy. @@ -3486,6 +3907,10 @@ class NetAppClient { future> DeleteBackupPolicy(std::string const& name, Options opts = {}); + StatusOr DeleteBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Warning! This operation will permanently delete the backup policy. @@ -3525,6 +3950,16 @@ class NetAppClient { google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request, Options opts = {}); + StatusOr DeleteBackupPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::netapp::v1::DeleteBackupPolicyRequest const& request, + Options opts = {}); + + future> + DeleteBackupPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/networkconnectivity/v1/hub_client.cc index dbc5a527726f6..e7b1c8f3c7f4b 100644 --- a/google/cloud/networkconnectivity/v1/hub_client.cc +++ b/google/cloud/networkconnectivity/v1/hub_client.cc @@ -76,6 +76,20 @@ HubServiceClient::CreateHub( return connection_->CreateHub(request); } +StatusOr HubServiceClient::CreateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkconnectivity::v1::Hub const& hub, + std::string const& hub_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::CreateHubRequest request; + request.set_parent(parent); + *request.mutable_hub() = hub; + request.set_hub_id(hub_id); + return connection_->CreateHub(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HubServiceClient::CreateHub( google::cloud::networkconnectivity::v1::CreateHubRequest const& request, @@ -84,6 +98,23 @@ HubServiceClient::CreateHub( return connection_->CreateHub(request); } +StatusOr HubServiceClient::CreateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateHub(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HubServiceClient::CreateHub(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateHub(google::cloud::ExperimentalTag{}, operation); +} + future> HubServiceClient::UpdateHub( google::cloud::networkconnectivity::v1::Hub const& hub, @@ -95,6 +126,18 @@ HubServiceClient::UpdateHub( return connection_->UpdateHub(request); } +StatusOr HubServiceClient::UpdateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::Hub const& hub, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::UpdateHubRequest request; + *request.mutable_hub() = hub; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateHub(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HubServiceClient::UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request, @@ -103,6 +146,23 @@ HubServiceClient::UpdateHub( return connection_->UpdateHub(request); } +StatusOr HubServiceClient::UpdateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHub(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HubServiceClient::UpdateHub(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHub(google::cloud::ExperimentalTag{}, operation); +} + future> HubServiceClient::DeleteHub(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -111,6 +171,16 @@ HubServiceClient::DeleteHub(std::string const& name, Options opts) { return connection_->DeleteHub(request); } +StatusOr HubServiceClient::DeleteHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::DeleteHubRequest request; + request.set_name(name); + return connection_->DeleteHub(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HubServiceClient::DeleteHub( google::cloud::networkconnectivity::v1::DeleteHubRequest const& request, @@ -119,6 +189,23 @@ HubServiceClient::DeleteHub( return connection_->DeleteHub(request); } +StatusOr HubServiceClient::DeleteHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHub(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HubServiceClient::DeleteHub(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHub(google::cloud::ExperimentalTag{}, operation); +} + StreamRange HubServiceClient::ListHubSpokes(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -180,6 +267,20 @@ HubServiceClient::CreateSpoke( return connection_->CreateSpoke(request); } +StatusOr HubServiceClient::CreateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkconnectivity::v1::Spoke const& spoke, + std::string const& spoke_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::CreateSpokeRequest request; + request.set_parent(parent); + *request.mutable_spoke() = spoke; + request.set_spoke_id(spoke_id); + return connection_->CreateSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HubServiceClient::CreateSpoke( google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request, @@ -188,6 +289,23 @@ HubServiceClient::CreateSpoke( return connection_->CreateSpoke(request); } +StatusOr HubServiceClient::CreateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HubServiceClient::CreateSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSpoke(google::cloud::ExperimentalTag{}, operation); +} + future> HubServiceClient::UpdateSpoke( google::cloud::networkconnectivity::v1::Spoke const& spoke, @@ -199,6 +317,18 @@ HubServiceClient::UpdateSpoke( return connection_->UpdateSpoke(request); } +StatusOr HubServiceClient::UpdateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::Spoke const& spoke, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::UpdateSpokeRequest request; + *request.mutable_spoke() = spoke; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HubServiceClient::UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request, @@ -207,6 +337,23 @@ HubServiceClient::UpdateSpoke( return connection_->UpdateSpoke(request); } +StatusOr HubServiceClient::UpdateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HubServiceClient::UpdateSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSpoke(google::cloud::ExperimentalTag{}, operation); +} + future> HubServiceClient::RejectHubSpoke(std::string const& name, std::string const& spoke_uri, Options opts) { @@ -217,6 +364,17 @@ HubServiceClient::RejectHubSpoke(std::string const& name, return connection_->RejectHubSpoke(request); } +StatusOr HubServiceClient::RejectHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& spoke_uri, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest request; + request.set_name(name); + request.set_spoke_uri(spoke_uri); + return connection_->RejectHubSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HubServiceClient::RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& @@ -226,6 +384,25 @@ HubServiceClient::RejectHubSpoke( return connection_->RejectHubSpoke(request); } +StatusOr HubServiceClient::RejectHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RejectHubSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HubServiceClient::RejectHubSpoke( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RejectHubSpoke(google::cloud::ExperimentalTag{}, + operation); +} + future> HubServiceClient::AcceptHubSpoke(std::string const& name, std::string const& spoke_uri, Options opts) { @@ -236,6 +413,17 @@ HubServiceClient::AcceptHubSpoke(std::string const& name, return connection_->AcceptHubSpoke(request); } +StatusOr HubServiceClient::AcceptHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& spoke_uri, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest request; + request.set_name(name); + request.set_spoke_uri(spoke_uri); + return connection_->AcceptHubSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HubServiceClient::AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& @@ -245,6 +433,25 @@ HubServiceClient::AcceptHubSpoke( return connection_->AcceptHubSpoke(request); } +StatusOr HubServiceClient::AcceptHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AcceptHubSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HubServiceClient::AcceptHubSpoke( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AcceptHubSpoke(google::cloud::ExperimentalTag{}, + operation); +} + future> HubServiceClient::DeleteSpoke(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -253,6 +460,16 @@ HubServiceClient::DeleteSpoke(std::string const& name, Options opts) { return connection_->DeleteSpoke(request); } +StatusOr HubServiceClient::DeleteSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::DeleteSpokeRequest request; + request.set_name(name); + return connection_->DeleteSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> HubServiceClient::DeleteSpoke( google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request, @@ -261,6 +478,23 @@ HubServiceClient::DeleteSpoke( return connection_->DeleteSpoke(request); } +StatusOr HubServiceClient::DeleteSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSpoke(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +HubServiceClient::DeleteSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSpoke(google::cloud::ExperimentalTag{}, operation); +} + StatusOr HubServiceClient::GetRouteTable(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/networkconnectivity/v1/hub_client.h b/google/cloud/networkconnectivity/v1/hub_client.h index cc0e816d46de5..fbf177b444027 100644 --- a/google/cloud/networkconnectivity/v1/hub_client.h +++ b/google/cloud/networkconnectivity/v1/hub_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NETWORKCONNECTIVITY_V1_HUB_CLIENT_H #include "google/cloud/networkconnectivity/v1/hub_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -253,6 +255,12 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::Hub const& hub, std::string const& hub_id, Options opts = {}); + StatusOr CreateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkconnectivity::v1::Hub const& hub, + std::string const& hub_id, Options opts = {}); + // clang-format off /// /// Creates a new Network Connectivity Center hub in the specified project. @@ -291,6 +299,15 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::CreateHubRequest const& request, Options opts = {}); + StatusOr CreateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request, + Options opts = {}); + + future> CreateHub( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the description and/or labels of a Network Connectivity Center @@ -330,6 +347,11 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::Hub const& hub, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::Hub const& hub, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the description and/or labels of a Network Connectivity Center @@ -369,6 +391,15 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::UpdateHubRequest const& request, Options opts = {}); + StatusOr UpdateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request, + Options opts = {}); + + future> UpdateHub( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a Network Connectivity Center hub. @@ -401,6 +432,10 @@ class HubServiceClient { future> DeleteHub(std::string const& name, Options opts = {}); + StatusOr DeleteHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Network Connectivity Center hub. @@ -440,6 +475,15 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::DeleteHubRequest const& request, Options opts = {}); + StatusOr DeleteHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request, + Options opts = {}); + + future> + DeleteHub(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists the Network Connectivity Center spokes associated with a @@ -686,6 +730,12 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::Spoke const& spoke, std::string const& spoke_id, Options opts = {}); + StatusOr CreateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkconnectivity::v1::Spoke const& spoke, + std::string const& spoke_id, Options opts = {}); + // clang-format off /// /// Creates a Network Connectivity Center spoke. @@ -724,6 +774,15 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request, Options opts = {}); + StatusOr CreateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request, + Options opts = {}); + + future> CreateSpoke( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a Network Connectivity Center spoke. @@ -762,6 +821,11 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::Spoke const& spoke, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::Spoke const& spoke, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a Network Connectivity Center spoke. @@ -800,6 +864,15 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request, Options opts = {}); + StatusOr UpdateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request, + Options opts = {}); + + future> UpdateSpoke( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Rejects a Network Connectivity Center spoke from being attached to a hub. @@ -838,6 +911,10 @@ class HubServiceClient { RejectHubSpoke(std::string const& name, std::string const& spoke_uri, Options opts = {}); + StatusOr RejectHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& spoke_uri, Options opts = {}); + // clang-format off /// /// Rejects a Network Connectivity Center spoke from being attached to a hub. @@ -882,6 +959,18 @@ class HubServiceClient { request, Options opts = {}); + StatusOr RejectHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request, + Options opts = {}); + + future< + StatusOr> + RejectHubSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Accepts a proposal to attach a Network Connectivity Center spoke @@ -918,6 +1007,10 @@ class HubServiceClient { AcceptHubSpoke(std::string const& name, std::string const& spoke_uri, Options opts = {}); + StatusOr AcceptHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& spoke_uri, Options opts = {}); + // clang-format off /// /// Accepts a proposal to attach a Network Connectivity Center spoke @@ -960,6 +1053,18 @@ class HubServiceClient { request, Options opts = {}); + StatusOr AcceptHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request, + Options opts = {}); + + future< + StatusOr> + AcceptHubSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a Network Connectivity Center spoke. @@ -992,6 +1097,10 @@ class HubServiceClient { future> DeleteSpoke(std::string const& name, Options opts = {}); + StatusOr DeleteSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Network Connectivity Center spoke. @@ -1031,6 +1140,16 @@ class HubServiceClient { google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request, Options opts = {}); + StatusOr DeleteSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request, + Options opts = {}); + + future> + DeleteSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details about a Network Connectivity Center route table. 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..3acf0d3fd2891 100644 --- a/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.cc +++ b/google/cloud/networkconnectivity/v1/internal/hub_connection_impl.cc @@ -155,6 +155,60 @@ HubServiceConnectionImpl::CreateHub( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::CreateHub( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +248,60 @@ HubServiceConnectionImpl::UpdateHub( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::UpdateHub( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +341,60 @@ HubServiceConnectionImpl::DeleteHub( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::DeleteHub( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +520,60 @@ HubServiceConnectionImpl::CreateSpoke( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::CreateSpoke( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +614,60 @@ HubServiceConnectionImpl::UpdateSpoke( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::UpdateSpoke( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +709,63 @@ HubServiceConnectionImpl::RejectHubSpoke( polling_policy(*current), __func__); } +StatusOr +HubServiceConnectionImpl::RejectHubSpoke( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +807,63 @@ HubServiceConnectionImpl::AcceptHubSpoke( polling_policy(*current), __func__); } +StatusOr +HubServiceConnectionImpl::AcceptHubSpoke( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +904,60 @@ HubServiceConnectionImpl::DeleteSpoke( polling_policy(*current), __func__); } +StatusOr HubServiceConnectionImpl::DeleteSpoke( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..e9a406b7da17f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request) + override; + + future> CreateHub( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) override; + StatusOr UpdateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) + override; + + future> UpdateHub( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteHub(google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) override; + StatusOr DeleteHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) + override; + + future> + DeleteHub(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request) + override; + + future> CreateSpoke( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) override; + StatusOr UpdateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) + override; + + future> UpdateSpoke( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& request) override; + StatusOr RejectHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request) override; + + future< + StatusOr> + RejectHubSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& request) override; + StatusOr AcceptHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request) override; + + future< + StatusOr> + AcceptHubSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSpoke(google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) override; + StatusOr DeleteSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) + override; + + future> + DeleteSpoke(google::cloud::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..b5472b12d9311 100644 --- a/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.cc +++ b/google/cloud/networkconnectivity/v1/internal/hub_tracing_connection.cc @@ -63,6 +63,29 @@ HubServiceTracingConnection::CreateHub( return internal::EndSpan(std::move(span), child_->CreateHub(request)); } +StatusOr HubServiceTracingConnection::CreateHub( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::CreateHub( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) { @@ -72,6 +95,29 @@ HubServiceTracingConnection::UpdateHub( return internal::EndSpan(std::move(span), child_->UpdateHub(request)); } +StatusOr HubServiceTracingConnection::UpdateHub( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::UpdateHub( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::DeleteHub( google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) { @@ -81,6 +127,29 @@ HubServiceTracingConnection::DeleteHub( return internal::EndSpan(std::move(span), child_->DeleteHub(request)); } +StatusOr HubServiceTracingConnection::DeleteHub( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::DeleteHub( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange HubServiceTracingConnection::ListHubSpokes( google::cloud::networkconnectivity::v1::ListHubSpokesRequest request) { @@ -123,6 +192,30 @@ HubServiceTracingConnection::CreateSpoke( return internal::EndSpan(std::move(span), child_->CreateSpoke(request)); } +StatusOr +HubServiceTracingConnection::CreateSpoke( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::CreateSpoke( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) { @@ -132,6 +225,30 @@ HubServiceTracingConnection::UpdateSpoke( return internal::EndSpan(std::move(span), child_->UpdateSpoke(request)); } +StatusOr +HubServiceTracingConnection::UpdateSpoke( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::UpdateSpoke( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& @@ -142,6 +259,31 @@ HubServiceTracingConnection::RejectHubSpoke( return internal::EndSpan(std::move(span), child_->RejectHubSpoke(request)); } +StatusOr +HubServiceTracingConnection::RejectHubSpoke( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::RejectHubSpoke( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& @@ -152,6 +294,31 @@ HubServiceTracingConnection::AcceptHubSpoke( return internal::EndSpan(std::move(span), child_->AcceptHubSpoke(request)); } +StatusOr +HubServiceTracingConnection::AcceptHubSpoke( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::AcceptHubSpoke( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> HubServiceTracingConnection::DeleteSpoke( google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) { @@ -161,6 +328,30 @@ HubServiceTracingConnection::DeleteSpoke( return internal::EndSpan(std::move(span), child_->DeleteSpoke(request)); } +StatusOr +HubServiceTracingConnection::DeleteSpoke( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +HubServiceTracingConnection::DeleteSpoke( + google::cloud::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(google::cloud::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..c3418dcc6d819 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request) + override; + + future> CreateHub( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateHub( google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) override; + StatusOr UpdateHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request) + override; + + future> UpdateHub( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteHub(google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) override; + StatusOr DeleteHub( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request) + override; + + future> + DeleteHub(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& request) + override; + + future> CreateSpoke( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSpoke( google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) override; + StatusOr UpdateSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request) + override; + + future> UpdateSpoke( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> RejectHubSpoke( google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& request) override; + StatusOr RejectHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request) override; + + future< + StatusOr> + RejectHubSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> AcceptHubSpoke( google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& request) override; + StatusOr AcceptHubSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request) override; + + future< + StatusOr> + AcceptHubSpoke(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSpoke(google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) override; + StatusOr DeleteSpoke( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& request) + override; + + future> + DeleteSpoke(google::cloud::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..30ef17631ac4f 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,62 @@ PolicyBasedRoutingServiceConnectionImpl::CreatePolicyBasedRoute( polling_policy(*current), __func__); } +StatusOr +PolicyBasedRoutingServiceConnectionImpl::CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +268,62 @@ PolicyBasedRoutingServiceConnectionImpl::DeletePolicyBasedRoute( polling_policy(*current), __func__); } +StatusOr +PolicyBasedRoutingServiceConnectionImpl::DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..d8f7dc668395a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request) override; + + future> + CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1:: DeletePolicyBasedRouteRequest const& request) override; + StatusOr DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request) override; + + future> + DeletePolicyBasedRoute( + google::cloud::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..c0fe592b45a3d 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,33 @@ PolicyBasedRoutingServiceTracingConnection::CreatePolicyBasedRoute( child_->CreatePolicyBasedRoute(request)); } +StatusOr +PolicyBasedRoutingServiceTracingConnection::CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PolicyBasedRoutingServiceTracingConnection::CreatePolicyBasedRoute( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> PolicyBasedRoutingServiceTracingConnection::DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1::DeletePolicyBasedRouteRequest const& @@ -85,6 +112,33 @@ PolicyBasedRoutingServiceTracingConnection::DeletePolicyBasedRoute( child_->DeletePolicyBasedRoute(request)); } +StatusOr +PolicyBasedRoutingServiceTracingConnection::DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +PolicyBasedRoutingServiceTracingConnection::DeletePolicyBasedRoute( + google::cloud::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( + google::cloud::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..8d54b5a58b4e3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request) override; + + future> + CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1:: DeletePolicyBasedRouteRequest const& request) override; + StatusOr DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request) override; + + future> + DeletePolicyBasedRoute( + google::cloud::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..af52dbdf5b5f6 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateHubRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateHub, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateHub, (google::cloud::networkconnectivity::v1::UpdateHubRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateHub, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateHubRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateHub, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -74,6 +98,20 @@ class MockHubServiceConnection (google::cloud::networkconnectivity::v1::DeleteHubRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteHub, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteHubRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteHub, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListHubSpokes, @@ -96,12 +134,36 @@ class MockHubServiceConnection request), (override)); + MOCK_METHOD(StatusOr, CreateSpoke, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreateSpokeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateSpoke, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateSpoke, (google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateSpoke, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::UpdateSpokeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateSpoke, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -110,6 +172,21 @@ class MockHubServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, RejectHubSpoke, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::RejectHubSpokeRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RejectHubSpoke, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -118,6 +195,21 @@ class MockHubServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, AcceptHubSpoke, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::AcceptHubSpokeRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + AcceptHubSpoke, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -126,6 +218,20 @@ class MockHubServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteSpoke, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeleteSpokeRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteSpoke, + (google::cloud::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..d0987e2ca88be 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,20 @@ class MockPolicyBasedRoutingServiceConnection CreatePolicyBasedRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreatePolicyBasedRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreatePolicyBasedRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -76,6 +90,20 @@ class MockPolicyBasedRoutingServiceConnection (google::cloud::networkconnectivity::v1:: DeletePolicyBasedRouteRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeletePolicyBasedRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeletePolicyBasedRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networkconnectivity/v1/policy_based_routing_client.cc b/google/cloud/networkconnectivity/v1/policy_based_routing_client.cc index 02c9c89adb77f..65815b94d998d 100644 --- a/google/cloud/networkconnectivity/v1/policy_based_routing_client.cc +++ b/google/cloud/networkconnectivity/v1/policy_based_routing_client.cc @@ -83,6 +83,22 @@ PolicyBasedRoutingServiceClient::CreatePolicyBasedRoute( return connection_->CreatePolicyBasedRoute(request); } +StatusOr +PolicyBasedRoutingServiceClient::CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkconnectivity::v1::PolicyBasedRoute const& + policy_based_route, + std::string const& policy_based_route_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::CreatePolicyBasedRouteRequest request; + request.set_parent(parent); + *request.mutable_policy_based_route() = policy_based_route; + request.set_policy_based_route_id(policy_based_route_id); + return connection_->CreatePolicyBasedRoute( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PolicyBasedRoutingServiceClient::CreatePolicyBasedRoute( google::cloud::networkconnectivity::v1::CreatePolicyBasedRouteRequest const& @@ -92,6 +108,26 @@ PolicyBasedRoutingServiceClient::CreatePolicyBasedRoute( return connection_->CreatePolicyBasedRoute(request); } +StatusOr +PolicyBasedRoutingServiceClient::CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::CreatePolicyBasedRouteRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePolicyBasedRoute( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PolicyBasedRoutingServiceClient::CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePolicyBasedRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> PolicyBasedRoutingServiceClient::DeletePolicyBasedRoute(std::string const& name, Options opts) { @@ -101,6 +137,17 @@ PolicyBasedRoutingServiceClient::DeletePolicyBasedRoute(std::string const& name, return connection_->DeletePolicyBasedRoute(request); } +StatusOr +PolicyBasedRoutingServiceClient::DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkconnectivity::v1::DeletePolicyBasedRouteRequest request; + request.set_name(name); + return connection_->DeletePolicyBasedRoute( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> PolicyBasedRoutingServiceClient::DeletePolicyBasedRoute( google::cloud::networkconnectivity::v1::DeletePolicyBasedRouteRequest const& @@ -110,6 +157,26 @@ PolicyBasedRoutingServiceClient::DeletePolicyBasedRoute( return connection_->DeletePolicyBasedRoute(request); } +StatusOr +PolicyBasedRoutingServiceClient::DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1::DeletePolicyBasedRouteRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePolicyBasedRoute( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +PolicyBasedRoutingServiceClient::DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePolicyBasedRoute(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networkconnectivity_v1 } // namespace cloud diff --git a/google/cloud/networkconnectivity/v1/policy_based_routing_client.h b/google/cloud/networkconnectivity/v1/policy_based_routing_client.h index 4ecfa03306263..fe0d921a04e22 100644 --- a/google/cloud/networkconnectivity/v1/policy_based_routing_client.h +++ b/google/cloud/networkconnectivity/v1/policy_based_routing_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NETWORKCONNECTIVITY_V1_POLICY_BASED_ROUTING_CLIENT_H #include "google/cloud/networkconnectivity/v1/policy_based_routing_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -264,6 +266,13 @@ class PolicyBasedRoutingServiceClient { policy_based_route, std::string const& policy_based_route_id, Options opts = {}); + StatusOr CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkconnectivity::v1::PolicyBasedRoute const& + policy_based_route, + std::string const& policy_based_route_id, Options opts = {}); + // clang-format off /// /// Creates a new PolicyBasedRoute in a given project and location. @@ -303,6 +312,17 @@ class PolicyBasedRoutingServiceClient { CreatePolicyBasedRouteRequest const& request, Options opts = {}); + StatusOr CreatePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1:: + CreatePolicyBasedRouteRequest const& request, + Options opts = {}); + + future> + CreatePolicyBasedRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single PolicyBasedRoute. @@ -335,6 +355,10 @@ class PolicyBasedRoutingServiceClient { future> DeletePolicyBasedRoute(std::string const& name, Options opts = {}); + StatusOr DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single PolicyBasedRoute. @@ -374,6 +398,17 @@ class PolicyBasedRoutingServiceClient { DeletePolicyBasedRouteRequest const& request, Options opts = {}); + StatusOr DeletePolicyBasedRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkconnectivity::v1:: + DeletePolicyBasedRouteRequest const& request, + Options opts = {}); + + future> + DeletePolicyBasedRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..9f6c2f1f20060 100644 --- a/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.cc +++ b/google/cloud/networkmanagement/v1/internal/reachability_connection_impl.cc @@ -167,6 +167,62 @@ ReachabilityServiceConnectionImpl::CreateConnectivityTest( polling_policy(*current), __func__); } +StatusOr +ReachabilityServiceConnectionImpl::CreateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +263,62 @@ ReachabilityServiceConnectionImpl::UpdateConnectivityTest( polling_policy(*current), __func__); } +StatusOr +ReachabilityServiceConnectionImpl::UpdateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +359,62 @@ ReachabilityServiceConnectionImpl::RerunConnectivityTest( polling_policy(*current), __func__); } +StatusOr +ReachabilityServiceConnectionImpl::RerunConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +455,62 @@ ReachabilityServiceConnectionImpl::DeleteConnectivityTest( polling_policy(*current), __func__); } +StatusOr +ReachabilityServiceConnectionImpl::DeleteConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..f9e7c4436dcee 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request) override; + + future> + CreateConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& request) override; + StatusOr UpdateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request) override; + + future> + UpdateConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& request) override; + StatusOr RerunConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request) override; + + future> + RerunConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& request) override; + StatusOr DeleteConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request) override; + + future> + DeleteConnectivityTest( + google::cloud::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..b9d1ffd1797ba 100644 --- a/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.cc +++ b/google/cloud/networkmanagement/v1/internal/reachability_tracing_connection.cc @@ -70,6 +70,33 @@ ReachabilityServiceTracingConnection::CreateConnectivityTest( child_->CreateConnectivityTest(request)); } +StatusOr +ReachabilityServiceTracingConnection::CreateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ReachabilityServiceTracingConnection::CreateConnectivityTest( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ReachabilityServiceTracingConnection::UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& @@ -82,6 +109,33 @@ ReachabilityServiceTracingConnection::UpdateConnectivityTest( child_->UpdateConnectivityTest(request)); } +StatusOr +ReachabilityServiceTracingConnection::UpdateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ReachabilityServiceTracingConnection::UpdateConnectivityTest( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ReachabilityServiceTracingConnection::RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& @@ -94,6 +148,33 @@ ReachabilityServiceTracingConnection::RerunConnectivityTest( child_->RerunConnectivityTest(request)); } +StatusOr +ReachabilityServiceTracingConnection::RerunConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ReachabilityServiceTracingConnection::RerunConnectivityTest( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ReachabilityServiceTracingConnection::DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& @@ -106,6 +187,33 @@ ReachabilityServiceTracingConnection::DeleteConnectivityTest( child_->DeleteConnectivityTest(request)); } +StatusOr +ReachabilityServiceTracingConnection::DeleteConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ReachabilityServiceTracingConnection::DeleteConnectivityTest( + google::cloud::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( + google::cloud::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..f24807d5ac57f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request) override; + + future> + CreateConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& request) override; + StatusOr UpdateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request) override; + + future> + UpdateConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& request) override; + StatusOr RerunConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request) override; + + future> + RerunConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& request) override; + StatusOr DeleteConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request) override; + + future> + DeleteConnectivityTest( + google::cloud::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..455c478bd13a4 100644 --- a/google/cloud/networkmanagement/v1/mocks/mock_reachability_connection.h +++ b/google/cloud/networkmanagement/v1/mocks/mock_reachability_connection.h @@ -68,6 +68,19 @@ class MockReachabilityServiceConnection CreateConnectivityTestRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateConnectivityTest, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1:: + CreateConnectivityTestRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateConnectivityTest, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateConnectivityTest, @@ -75,6 +88,19 @@ class MockReachabilityServiceConnection UpdateConnectivityTestRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateConnectivityTest, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1:: + UpdateConnectivityTestRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateConnectivityTest, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RerunConnectivityTest, @@ -82,12 +108,39 @@ class MockReachabilityServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, RerunConnectivityTest, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RerunConnectivityTest, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteConnectivityTest, (google::cloud::networkmanagement::v1:: DeleteConnectivityTestRequest const& request), (override)); + + MOCK_METHOD(StatusOr, DeleteConnectivityTest, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1:: + DeleteConnectivityTestRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteConnectivityTest, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networkmanagement/v1/reachability_client.cc b/google/cloud/networkmanagement/v1/reachability_client.cc index 396ad78f51dbd..d464a4fb45cc8 100644 --- a/google/cloud/networkmanagement/v1/reachability_client.cc +++ b/google/cloud/networkmanagement/v1/reachability_client.cc @@ -80,6 +80,21 @@ ReachabilityServiceClient::CreateConnectivityTest( return connection_->CreateConnectivityTest(request); } +StatusOr +ReachabilityServiceClient::CreateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& test_id, + google::cloud::networkmanagement::v1::ConnectivityTest const& resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest request; + request.set_parent(parent); + request.set_test_id(test_id); + *request.mutable_resource() = resource; + return connection_->CreateConnectivityTest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ReachabilityServiceClient::CreateConnectivityTest( google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& @@ -89,6 +104,26 @@ ReachabilityServiceClient::CreateConnectivityTest( return connection_->CreateConnectivityTest(request); } +StatusOr +ReachabilityServiceClient::CreateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnectivityTest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ReachabilityServiceClient::CreateConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnectivityTest(google::cloud::ExperimentalTag{}, + operation); +} + future> ReachabilityServiceClient::UpdateConnectivityTest( google::protobuf::FieldMask const& update_mask, @@ -101,6 +136,20 @@ ReachabilityServiceClient::UpdateConnectivityTest( return connection_->UpdateConnectivityTest(request); } +StatusOr +ReachabilityServiceClient::UpdateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::protobuf::FieldMask const& update_mask, + google::cloud::networkmanagement::v1::ConnectivityTest const& resource, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest request; + *request.mutable_update_mask() = update_mask; + *request.mutable_resource() = resource; + return connection_->UpdateConnectivityTest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ReachabilityServiceClient::UpdateConnectivityTest( google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& @@ -110,6 +159,26 @@ ReachabilityServiceClient::UpdateConnectivityTest( return connection_->UpdateConnectivityTest(request); } +StatusOr +ReachabilityServiceClient::UpdateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnectivityTest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ReachabilityServiceClient::UpdateConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateConnectivityTest(google::cloud::ExperimentalTag{}, + operation); +} + future> ReachabilityServiceClient::RerunConnectivityTest( google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& @@ -119,6 +188,26 @@ ReachabilityServiceClient::RerunConnectivityTest( return connection_->RerunConnectivityTest(request); } +StatusOr +ReachabilityServiceClient::RerunConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RerunConnectivityTest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ReachabilityServiceClient::RerunConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RerunConnectivityTest(google::cloud::ExperimentalTag{}, + operation); +} + future> ReachabilityServiceClient::DeleteConnectivityTest(std::string const& name, Options opts) { @@ -128,6 +217,17 @@ ReachabilityServiceClient::DeleteConnectivityTest(std::string const& name, return connection_->DeleteConnectivityTest(request); } +StatusOr +ReachabilityServiceClient::DeleteConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest request; + request.set_name(name); + return connection_->DeleteConnectivityTest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ReachabilityServiceClient::DeleteConnectivityTest( google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& @@ -137,6 +237,26 @@ ReachabilityServiceClient::DeleteConnectivityTest( return connection_->DeleteConnectivityTest(request); } +StatusOr +ReachabilityServiceClient::DeleteConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnectivityTest( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ReachabilityServiceClient::DeleteConnectivityTest( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnectivityTest(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networkmanagement_v1 } // namespace cloud diff --git a/google/cloud/networkmanagement/v1/reachability_client.h b/google/cloud/networkmanagement/v1/reachability_client.h index aaf602cbd6a77..08ff401ca0e90 100644 --- a/google/cloud/networkmanagement/v1/reachability_client.h +++ b/google/cloud/networkmanagement/v1/reachability_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NETWORKMANAGEMENT_V1_REACHABILITY_CLIENT_H #include "google/cloud/networkmanagement/v1/reachability_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -289,6 +291,12 @@ class ReachabilityServiceClient { google::cloud::networkmanagement::v1::ConnectivityTest const& resource, Options opts = {}); + StatusOr CreateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& test_id, + google::cloud::networkmanagement::v1::ConnectivityTest const& resource, + Options opts = {}); + // clang-format off /// /// Creates a new Connectivity Test. @@ -341,6 +349,17 @@ class ReachabilityServiceClient { request, Options opts = {}); + StatusOr CreateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::CreateConnectivityTestRequest const& + request, + Options opts = {}); + + future> + CreateConnectivityTest(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the configuration of an existing `ConnectivityTest`. @@ -391,6 +410,12 @@ class ReachabilityServiceClient { google::cloud::networkmanagement::v1::ConnectivityTest const& resource, Options opts = {}); + StatusOr UpdateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::protobuf::FieldMask const& update_mask, + google::cloud::networkmanagement::v1::ConnectivityTest const& resource, + Options opts = {}); + // clang-format off /// /// Updates the configuration of an existing `ConnectivityTest`. @@ -444,6 +469,17 @@ class ReachabilityServiceClient { request, Options opts = {}); + StatusOr UpdateConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::UpdateConnectivityTestRequest const& + request, + Options opts = {}); + + future> + UpdateConnectivityTest(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Rerun an existing `ConnectivityTest`. @@ -495,6 +531,17 @@ class ReachabilityServiceClient { request, Options opts = {}); + StatusOr RerunConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::RerunConnectivityTestRequest const& + request, + Options opts = {}); + + future> + RerunConnectivityTest(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a specific `ConnectivityTest`. @@ -528,6 +575,10 @@ class ReachabilityServiceClient { future> DeleteConnectivityTest(std::string const& name, Options opts = {}); + StatusOr DeleteConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific `ConnectivityTest`. @@ -568,6 +619,17 @@ class ReachabilityServiceClient { request, Options opts = {}); + StatusOr DeleteConnectivityTest( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkmanagement::v1::DeleteConnectivityTestRequest const& + request, + Options opts = {}); + + future> + DeleteConnectivityTest(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..ad5c3b6fa44ad 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,62 @@ NetworkSecurityConnectionImpl::CreateAuthorizationPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +258,62 @@ NetworkSecurityConnectionImpl::UpdateAuthorizationPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +354,62 @@ NetworkSecurityConnectionImpl::DeleteAuthorizationPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +502,62 @@ NetworkSecurityConnectionImpl::CreateServerTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::CreateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +598,62 @@ NetworkSecurityConnectionImpl::UpdateServerTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +694,62 @@ NetworkSecurityConnectionImpl::DeleteServerTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::DeleteServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +842,62 @@ NetworkSecurityConnectionImpl::CreateClientTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::CreateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +938,62 @@ NetworkSecurityConnectionImpl::UpdateClientTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1034,62 @@ NetworkSecurityConnectionImpl::DeleteClientTlsPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkSecurityConnectionImpl::DeleteClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..d06f2200e75f2 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request) override; + + future> + CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAuthorizationPolicy( google::cloud::networksecurity::v1:: UpdateAuthorizationPolicyRequest const& request) override; + StatusOr UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request) override; + + future> + UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAuthorizationPolicy( google::cloud::networksecurity::v1:: DeleteAuthorizationPolicyRequest const& request) override; + StatusOr DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request) override; + + future> + DeleteAuthorizationPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request) override; + + future> + CreateServerTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& request) override; + StatusOr UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request) override; + + future> + UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& request) override; + StatusOr DeleteServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request) override; + + future> + DeleteServerTlsPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request) override; + + future> + CreateClientTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& request) override; + StatusOr UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request) override; + + future> + UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& request) override; + StatusOr DeleteClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request) override; + + future> + DeleteClientTlsPolicy( + google::cloud::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..4b16bd37cf356 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,33 @@ NetworkSecurityTracingConnection::CreateAuthorizationPolicy( child_->CreateAuthorizationPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::CreateAuthorizationPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::UpdateAuthorizationPolicy( google::cloud::networksecurity::v1::UpdateAuthorizationPolicyRequest const& @@ -81,6 +108,33 @@ NetworkSecurityTracingConnection::UpdateAuthorizationPolicy( child_->UpdateAuthorizationPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::UpdateAuthorizationPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::DeleteAuthorizationPolicy( google::cloud::networksecurity::v1::DeleteAuthorizationPolicyRequest const& @@ -93,6 +147,33 @@ NetworkSecurityTracingConnection::DeleteAuthorizationPolicy( child_->DeleteAuthorizationPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::DeleteAuthorizationPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkSecurityTracingConnection::ListServerTlsPolicies( google::cloud::networksecurity::v1::ListServerTlsPoliciesRequest request) { @@ -126,6 +207,31 @@ NetworkSecurityTracingConnection::CreateServerTlsPolicy( child_->CreateServerTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::CreateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::CreateServerTlsPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& @@ -137,6 +243,31 @@ NetworkSecurityTracingConnection::UpdateServerTlsPolicy( child_->UpdateServerTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::UpdateServerTlsPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& @@ -148,6 +279,31 @@ NetworkSecurityTracingConnection::DeleteServerTlsPolicy( child_->DeleteServerTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::DeleteServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::DeleteServerTlsPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkSecurityTracingConnection::ListClientTlsPolicies( google::cloud::networksecurity::v1::ListClientTlsPoliciesRequest request) { @@ -181,6 +337,31 @@ NetworkSecurityTracingConnection::CreateClientTlsPolicy( child_->CreateClientTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::CreateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::CreateClientTlsPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& @@ -192,6 +373,31 @@ NetworkSecurityTracingConnection::UpdateClientTlsPolicy( child_->UpdateClientTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::UpdateClientTlsPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkSecurityTracingConnection::DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& @@ -203,6 +409,31 @@ NetworkSecurityTracingConnection::DeleteClientTlsPolicy( child_->DeleteClientTlsPolicy(request)); } +StatusOr +NetworkSecurityTracingConnection::DeleteClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkSecurityTracingConnection::DeleteClientTlsPolicy( + google::cloud::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( + google::cloud::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..844c0970eed57 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request) override; + + future> + CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateAuthorizationPolicy( google::cloud::networksecurity::v1:: UpdateAuthorizationPolicyRequest const& request) override; + StatusOr UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request) override; + + future> + UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAuthorizationPolicy( google::cloud::networksecurity::v1:: DeleteAuthorizationPolicyRequest const& request) override; + StatusOr DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request) override; + + future> + DeleteAuthorizationPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request) override; + + future> + CreateServerTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& request) override; + StatusOr UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request) override; + + future> + UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& request) override; + StatusOr DeleteServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request) override; + + future> + DeleteServerTlsPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request) override; + + future> + CreateClientTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& request) override; + StatusOr UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request) override; + + future> + UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& request) override; + StatusOr DeleteClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request) override; + + future> + DeleteClientTlsPolicy( + google::cloud::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..20916a9bd7545 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,20 @@ class MockNetworkSecurityConnection CreateAuthorizationPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateAuthorizationPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAuthorizationPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateAuthorizationPolicy, @@ -75,6 +89,20 @@ class MockNetworkSecurityConnection UpdateAuthorizationPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateAuthorizationPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateAuthorizationPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteAuthorizationPolicy, @@ -82,6 +110,20 @@ class MockNetworkSecurityConnection DeleteAuthorizationPolicyRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteAuthorizationPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteAuthorizationPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListServerTlsPolicies, @@ -103,6 +145,20 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateServerTlsPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateServerTlsPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateServerTlsPolicy, @@ -110,6 +166,20 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateServerTlsPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateServerTlsPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteServerTlsPolicy, @@ -117,6 +187,20 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteServerTlsPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteServerTlsPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListClientTlsPolicies, @@ -138,6 +222,20 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateClientTlsPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateClientTlsPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateClientTlsPolicy, @@ -145,12 +243,40 @@ class MockNetworkSecurityConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateClientTlsPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateClientTlsPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteClientTlsPolicy, (google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteClientTlsPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteClientTlsPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networksecurity/v1/network_security_client.cc b/google/cloud/networksecurity/v1/network_security_client.cc index fe76e2fe05458..581e90bdc88a1 100644 --- a/google/cloud/networksecurity/v1/network_security_client.cc +++ b/google/cloud/networksecurity/v1/network_security_client.cc @@ -82,6 +82,22 @@ NetworkSecurityClient::CreateAuthorizationPolicy( return connection_->CreateAuthorizationPolicy(request); } +StatusOr +NetworkSecurityClient::CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networksecurity::v1::AuthorizationPolicy const& + authorization_policy, + std::string const& authorization_policy_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::CreateAuthorizationPolicyRequest request; + request.set_parent(parent); + *request.mutable_authorization_policy() = authorization_policy; + request.set_authorization_policy_id(authorization_policy_id); + return connection_->CreateAuthorizationPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::CreateAuthorizationPolicy( google::cloud::networksecurity::v1::CreateAuthorizationPolicyRequest const& @@ -91,6 +107,26 @@ NetworkSecurityClient::CreateAuthorizationPolicy( return connection_->CreateAuthorizationPolicy(request); } +StatusOr +NetworkSecurityClient::CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateAuthorizationPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAuthorizationPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAuthorizationPolicy( + google::cloud::ExperimentalTag{}, operation); +} + future> NetworkSecurityClient::UpdateAuthorizationPolicy( google::cloud::networksecurity::v1::AuthorizationPolicy const& @@ -103,6 +139,20 @@ NetworkSecurityClient::UpdateAuthorizationPolicy( return connection_->UpdateAuthorizationPolicy(request); } +StatusOr +NetworkSecurityClient::UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::AuthorizationPolicy const& + authorization_policy, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::UpdateAuthorizationPolicyRequest request; + *request.mutable_authorization_policy() = authorization_policy; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::UpdateAuthorizationPolicy( google::cloud::networksecurity::v1::UpdateAuthorizationPolicyRequest const& @@ -112,6 +162,26 @@ NetworkSecurityClient::UpdateAuthorizationPolicy( return connection_->UpdateAuthorizationPolicy(request); } +StatusOr +NetworkSecurityClient::UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateAuthorizationPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag{}, operation); +} + future> NetworkSecurityClient::DeleteAuthorizationPolicy(std::string const& name, Options opts) { @@ -121,6 +191,18 @@ NetworkSecurityClient::DeleteAuthorizationPolicy(std::string const& name, return connection_->DeleteAuthorizationPolicy(request); } +StatusOr +NetworkSecurityClient::DeleteAuthorizationPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::DeleteAuthorizationPolicyRequest request; + request.set_name(name); + return connection_->DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::DeleteAuthorizationPolicy( google::cloud::networksecurity::v1::DeleteAuthorizationPolicyRequest const& @@ -130,6 +212,26 @@ NetworkSecurityClient::DeleteAuthorizationPolicy( return connection_->DeleteAuthorizationPolicy(request); } +StatusOr +NetworkSecurityClient::DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteAuthorizationPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange NetworkSecurityClient::ListServerTlsPolicies(std::string const& parent, Options opts) { @@ -179,6 +281,22 @@ NetworkSecurityClient::CreateServerTlsPolicy( return connection_->CreateServerTlsPolicy(request); } +StatusOr +NetworkSecurityClient::CreateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networksecurity::v1::ServerTlsPolicy const& + server_tls_policy, + std::string const& server_tls_policy_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest request; + request.set_parent(parent); + *request.mutable_server_tls_policy() = server_tls_policy; + request.set_server_tls_policy_id(server_tls_policy_id); + return connection_->CreateServerTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::CreateServerTlsPolicy( google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& @@ -188,6 +306,26 @@ NetworkSecurityClient::CreateServerTlsPolicy( return connection_->CreateServerTlsPolicy(request); } +StatusOr +NetworkSecurityClient::CreateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServerTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::CreateServerTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServerTlsPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkSecurityClient::UpdateServerTlsPolicy( google::cloud::networksecurity::v1::ServerTlsPolicy const& @@ -200,6 +338,20 @@ NetworkSecurityClient::UpdateServerTlsPolicy( return connection_->UpdateServerTlsPolicy(request); } +StatusOr +NetworkSecurityClient::UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::ServerTlsPolicy const& + server_tls_policy, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest request; + *request.mutable_server_tls_policy() = server_tls_policy; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateServerTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::UpdateServerTlsPolicy( google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& @@ -209,6 +361,26 @@ NetworkSecurityClient::UpdateServerTlsPolicy( return connection_->UpdateServerTlsPolicy(request); } +StatusOr +NetworkSecurityClient::UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateServerTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateServerTlsPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkSecurityClient::DeleteServerTlsPolicy(std::string const& name, Options opts) { @@ -218,6 +390,18 @@ NetworkSecurityClient::DeleteServerTlsPolicy(std::string const& name, return connection_->DeleteServerTlsPolicy(request); } +StatusOr +NetworkSecurityClient::DeleteServerTlsPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest request; + request.set_name(name); + return connection_->DeleteServerTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::DeleteServerTlsPolicy( google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& @@ -227,6 +411,26 @@ NetworkSecurityClient::DeleteServerTlsPolicy( return connection_->DeleteServerTlsPolicy(request); } +StatusOr +NetworkSecurityClient::DeleteServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServerTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::DeleteServerTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServerTlsPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkSecurityClient::ListClientTlsPolicies(std::string const& parent, Options opts) { @@ -276,6 +480,22 @@ NetworkSecurityClient::CreateClientTlsPolicy( return connection_->CreateClientTlsPolicy(request); } +StatusOr +NetworkSecurityClient::CreateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networksecurity::v1::ClientTlsPolicy const& + client_tls_policy, + std::string const& client_tls_policy_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest request; + request.set_parent(parent); + *request.mutable_client_tls_policy() = client_tls_policy; + request.set_client_tls_policy_id(client_tls_policy_id); + return connection_->CreateClientTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::CreateClientTlsPolicy( google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& @@ -285,6 +505,26 @@ NetworkSecurityClient::CreateClientTlsPolicy( return connection_->CreateClientTlsPolicy(request); } +StatusOr +NetworkSecurityClient::CreateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateClientTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::CreateClientTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateClientTlsPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkSecurityClient::UpdateClientTlsPolicy( google::cloud::networksecurity::v1::ClientTlsPolicy const& @@ -297,6 +537,20 @@ NetworkSecurityClient::UpdateClientTlsPolicy( return connection_->UpdateClientTlsPolicy(request); } +StatusOr +NetworkSecurityClient::UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::ClientTlsPolicy const& + client_tls_policy, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest request; + *request.mutable_client_tls_policy() = client_tls_policy; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateClientTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::UpdateClientTlsPolicy( google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& @@ -306,6 +560,26 @@ NetworkSecurityClient::UpdateClientTlsPolicy( return connection_->UpdateClientTlsPolicy(request); } +StatusOr +NetworkSecurityClient::UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateClientTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateClientTlsPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkSecurityClient::DeleteClientTlsPolicy(std::string const& name, Options opts) { @@ -315,6 +589,18 @@ NetworkSecurityClient::DeleteClientTlsPolicy(std::string const& name, return connection_->DeleteClientTlsPolicy(request); } +StatusOr +NetworkSecurityClient::DeleteClientTlsPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest request; + request.set_name(name); + return connection_->DeleteClientTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkSecurityClient::DeleteClientTlsPolicy( google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& @@ -324,6 +610,26 @@ NetworkSecurityClient::DeleteClientTlsPolicy( return connection_->DeleteClientTlsPolicy(request); } +StatusOr +NetworkSecurityClient::DeleteClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteClientTlsPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkSecurityClient::DeleteClientTlsPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteClientTlsPolicy(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networksecurity_v1 } // namespace cloud diff --git a/google/cloud/networksecurity/v1/network_security_client.h b/google/cloud/networksecurity/v1/network_security_client.h index c9a82265a45c1..6b24d011e115d 100644 --- a/google/cloud/networksecurity/v1/network_security_client.h +++ b/google/cloud/networksecurity/v1/network_security_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NETWORKSECURITY_V1_NETWORK_SECURITY_CLIENT_H #include "google/cloud/networksecurity/v1/network_security_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -268,6 +270,13 @@ class NetworkSecurityClient { authorization_policy, std::string const& authorization_policy_id, Options opts = {}); + StatusOr CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networksecurity::v1::AuthorizationPolicy const& + authorization_policy, + std::string const& authorization_policy_id, Options opts = {}); + // clang-format off /// /// Creates a new AuthorizationPolicy in a given project and location. @@ -307,6 +316,17 @@ class NetworkSecurityClient { CreateAuthorizationPolicyRequest const& request, Options opts = {}); + StatusOr CreateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + CreateAuthorizationPolicyRequest const& request, + Options opts = {}); + + future> + CreateAuthorizationPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single AuthorizationPolicy. @@ -347,6 +367,12 @@ class NetworkSecurityClient { authorization_policy, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::AuthorizationPolicy const& + authorization_policy, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single AuthorizationPolicy. @@ -386,6 +412,17 @@ class NetworkSecurityClient { UpdateAuthorizationPolicyRequest const& request, Options opts = {}); + StatusOr UpdateAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + UpdateAuthorizationPolicyRequest const& request, + Options opts = {}); + + future> + UpdateAuthorizationPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single AuthorizationPolicy. @@ -419,6 +456,10 @@ class NetworkSecurityClient { future> DeleteAuthorizationPolicy(std::string const& name, Options opts = {}); + StatusOr DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single AuthorizationPolicy. @@ -458,6 +499,17 @@ class NetworkSecurityClient { DeleteAuthorizationPolicyRequest const& request, Options opts = {}); + StatusOr DeleteAuthorizationPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1:: + DeleteAuthorizationPolicyRequest const& request, + Options opts = {}); + + future> + DeleteAuthorizationPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists ServerTlsPolicies in a given project and location. @@ -634,6 +686,13 @@ class NetworkSecurityClient { server_tls_policy, std::string const& server_tls_policy_id, Options opts = {}); + StatusOr CreateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networksecurity::v1::ServerTlsPolicy const& + server_tls_policy, + std::string const& server_tls_policy_id, Options opts = {}); + // clang-format off /// /// Creates a new ServerTlsPolicy in a given project and location. @@ -674,6 +733,17 @@ class NetworkSecurityClient { request, Options opts = {}); + StatusOr CreateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateServerTlsPolicyRequest const& + request, + Options opts = {}); + + future> + CreateServerTlsPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single ServerTlsPolicy. @@ -715,6 +785,12 @@ class NetworkSecurityClient { server_tls_policy, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::ServerTlsPolicy const& + server_tls_policy, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single ServerTlsPolicy. @@ -755,6 +831,17 @@ class NetworkSecurityClient { request, Options opts = {}); + StatusOr UpdateServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateServerTlsPolicyRequest const& + request, + Options opts = {}); + + future> + UpdateServerTlsPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single ServerTlsPolicy. @@ -788,6 +875,10 @@ class NetworkSecurityClient { future> DeleteServerTlsPolicy(std::string const& name, Options opts = {}); + StatusOr DeleteServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single ServerTlsPolicy. @@ -828,6 +919,17 @@ class NetworkSecurityClient { request, Options opts = {}); + StatusOr DeleteServerTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteServerTlsPolicyRequest const& + request, + Options opts = {}); + + future> + DeleteServerTlsPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists ClientTlsPolicies in a given project and location. @@ -1004,6 +1106,13 @@ class NetworkSecurityClient { client_tls_policy, std::string const& client_tls_policy_id, Options opts = {}); + StatusOr CreateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networksecurity::v1::ClientTlsPolicy const& + client_tls_policy, + std::string const& client_tls_policy_id, Options opts = {}); + // clang-format off /// /// Creates a new ClientTlsPolicy in a given project and location. @@ -1044,6 +1153,17 @@ class NetworkSecurityClient { request, Options opts = {}); + StatusOr CreateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::CreateClientTlsPolicyRequest const& + request, + Options opts = {}); + + future> + CreateClientTlsPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single ClientTlsPolicy. @@ -1085,6 +1205,12 @@ class NetworkSecurityClient { client_tls_policy, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::ClientTlsPolicy const& + client_tls_policy, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single ClientTlsPolicy. @@ -1125,6 +1251,17 @@ class NetworkSecurityClient { request, Options opts = {}); + StatusOr UpdateClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::UpdateClientTlsPolicyRequest const& + request, + Options opts = {}); + + future> + UpdateClientTlsPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single ClientTlsPolicy. @@ -1158,6 +1295,10 @@ class NetworkSecurityClient { future> DeleteClientTlsPolicy(std::string const& name, Options opts = {}); + StatusOr DeleteClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single ClientTlsPolicy. @@ -1198,6 +1339,17 @@ class NetworkSecurityClient { request, Options opts = {}); + StatusOr DeleteClientTlsPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networksecurity::v1::DeleteClientTlsPolicyRequest const& + request, + Options opts = {}); + + future> + DeleteClientTlsPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/networkservices/v1/dep_client.cc index cefa15684e583..d2d39cd0499e2 100644 --- a/google/cloud/networkservices/v1/dep_client.cc +++ b/google/cloud/networkservices/v1/dep_client.cc @@ -80,6 +80,22 @@ DepServiceClient::CreateLbTrafficExtension( return connection_->CreateLbTrafficExtension(request); } +StatusOr +DepServiceClient::CreateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::LbTrafficExtension const& + lb_traffic_extension, + std::string const& lb_traffic_extension_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest request; + request.set_parent(parent); + *request.mutable_lb_traffic_extension() = lb_traffic_extension; + request.set_lb_traffic_extension_id(lb_traffic_extension_id); + return connection_->CreateLbTrafficExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DepServiceClient::CreateLbTrafficExtension( google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& @@ -89,6 +105,26 @@ DepServiceClient::CreateLbTrafficExtension( return connection_->CreateLbTrafficExtension(request); } +StatusOr +DepServiceClient::CreateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLbTrafficExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DepServiceClient::CreateLbTrafficExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLbTrafficExtension(google::cloud::ExperimentalTag{}, + operation); +} + future> DepServiceClient::UpdateLbTrafficExtension( google::cloud::networkservices::v1::LbTrafficExtension const& @@ -101,6 +137,20 @@ DepServiceClient::UpdateLbTrafficExtension( return connection_->UpdateLbTrafficExtension(request); } +StatusOr +DepServiceClient::UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::LbTrafficExtension const& + lb_traffic_extension, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest request; + *request.mutable_lb_traffic_extension() = lb_traffic_extension; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateLbTrafficExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DepServiceClient::UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& @@ -110,6 +160,26 @@ DepServiceClient::UpdateLbTrafficExtension( return connection_->UpdateLbTrafficExtension(request); } +StatusOr +DepServiceClient::UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLbTrafficExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DepServiceClient::UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLbTrafficExtension(google::cloud::ExperimentalTag{}, + operation); +} + future> DepServiceClient::DeleteLbTrafficExtension(std::string const& name, Options opts) { @@ -119,6 +189,18 @@ DepServiceClient::DeleteLbTrafficExtension(std::string const& name, return connection_->DeleteLbTrafficExtension(request); } +StatusOr +DepServiceClient::DeleteLbTrafficExtension(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest request; + request.set_name(name); + return connection_->DeleteLbTrafficExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DepServiceClient::DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& @@ -128,6 +210,26 @@ DepServiceClient::DeleteLbTrafficExtension( return connection_->DeleteLbTrafficExtension(request); } +StatusOr +DepServiceClient::DeleteLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLbTrafficExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DepServiceClient::DeleteLbTrafficExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLbTrafficExtension(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DepServiceClient::ListLbRouteExtensions(std::string const& parent, Options opts) { @@ -176,6 +278,22 @@ DepServiceClient::CreateLbRouteExtension( return connection_->CreateLbRouteExtension(request); } +StatusOr +DepServiceClient::CreateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::LbRouteExtension const& + lb_route_extension, + std::string const& lb_route_extension_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest request; + request.set_parent(parent); + *request.mutable_lb_route_extension() = lb_route_extension; + request.set_lb_route_extension_id(lb_route_extension_id); + return connection_->CreateLbRouteExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DepServiceClient::CreateLbRouteExtension( google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& @@ -185,6 +303,26 @@ DepServiceClient::CreateLbRouteExtension( return connection_->CreateLbRouteExtension(request); } +StatusOr +DepServiceClient::CreateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLbRouteExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DepServiceClient::CreateLbRouteExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLbRouteExtension(google::cloud::ExperimentalTag{}, + operation); +} + future> DepServiceClient::UpdateLbRouteExtension( google::cloud::networkservices::v1::LbRouteExtension const& @@ -197,6 +335,20 @@ DepServiceClient::UpdateLbRouteExtension( return connection_->UpdateLbRouteExtension(request); } +StatusOr +DepServiceClient::UpdateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::LbRouteExtension const& + lb_route_extension, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest request; + *request.mutable_lb_route_extension() = lb_route_extension; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateLbRouteExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DepServiceClient::UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& @@ -206,6 +358,26 @@ DepServiceClient::UpdateLbRouteExtension( return connection_->UpdateLbRouteExtension(request); } +StatusOr +DepServiceClient::UpdateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLbRouteExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DepServiceClient::UpdateLbRouteExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLbRouteExtension(google::cloud::ExperimentalTag{}, + operation); +} + future> DepServiceClient::DeleteLbRouteExtension(std::string const& name, Options opts) { @@ -215,6 +387,18 @@ DepServiceClient::DeleteLbRouteExtension(std::string const& name, return connection_->DeleteLbRouteExtension(request); } +StatusOr +DepServiceClient::DeleteLbRouteExtension(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest request; + request.set_name(name); + return connection_->DeleteLbRouteExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> DepServiceClient::DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& @@ -224,6 +408,26 @@ DepServiceClient::DeleteLbRouteExtension( return connection_->DeleteLbRouteExtension(request); } +StatusOr +DepServiceClient::DeleteLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLbRouteExtension( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +DepServiceClient::DeleteLbRouteExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLbRouteExtension(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networkservices_v1 } // namespace cloud diff --git a/google/cloud/networkservices/v1/dep_client.h b/google/cloud/networkservices/v1/dep_client.h index 559572e2e8f63..cd26386d79c56 100644 --- a/google/cloud/networkservices/v1/dep_client.h +++ b/google/cloud/networkservices/v1/dep_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NETWORKSERVICES_V1_DEP_CLIENT_H #include "google/cloud/networkservices/v1/dep_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -264,6 +266,13 @@ class DepServiceClient { lb_traffic_extension, std::string const& lb_traffic_extension_id, Options opts = {}); + StatusOr CreateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::LbTrafficExtension const& + lb_traffic_extension, + std::string const& lb_traffic_extension_id, Options opts = {}); + // clang-format off /// /// Creates a new `LbTrafficExtension` resource in a given project and @@ -305,6 +314,17 @@ class DepServiceClient { request, Options opts = {}); + StatusOr CreateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request, + Options opts = {}); + + future> + CreateLbTrafficExtension(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of the specified `LbTrafficExtension` resource. @@ -345,6 +365,12 @@ class DepServiceClient { lb_traffic_extension, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::LbTrafficExtension const& + lb_traffic_extension, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of the specified `LbTrafficExtension` resource. @@ -385,6 +411,17 @@ class DepServiceClient { request, Options opts = {}); + StatusOr UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request, + Options opts = {}); + + future> + UpdateLbTrafficExtension(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified `LbTrafficExtension` resource. @@ -419,6 +456,10 @@ class DepServiceClient { future> DeleteLbTrafficExtension(std::string const& name, Options opts = {}); + StatusOr DeleteLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified `LbTrafficExtension` resource. @@ -459,6 +500,17 @@ class DepServiceClient { request, Options opts = {}); + StatusOr DeleteLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request, + Options opts = {}); + + future> + DeleteLbTrafficExtension(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists `LbRouteExtension` resources in a given project and location. @@ -636,6 +688,13 @@ class DepServiceClient { lb_route_extension, std::string const& lb_route_extension_id, Options opts = {}); + StatusOr CreateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::LbRouteExtension const& + lb_route_extension, + std::string const& lb_route_extension_id, Options opts = {}); + // clang-format off /// /// Creates a new `LbRouteExtension` resource in a given project and location. @@ -676,6 +735,17 @@ class DepServiceClient { request, Options opts = {}); + StatusOr CreateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request, + Options opts = {}); + + future> + CreateLbRouteExtension(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of the specified `LbRouteExtension` resource. @@ -716,6 +786,12 @@ class DepServiceClient { lb_route_extension, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::LbRouteExtension const& + lb_route_extension, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of the specified `LbRouteExtension` resource. @@ -756,6 +832,17 @@ class DepServiceClient { request, Options opts = {}); + StatusOr UpdateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request, + Options opts = {}); + + future> + UpdateLbRouteExtension(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified `LbRouteExtension` resource. @@ -790,6 +877,10 @@ class DepServiceClient { future> DeleteLbRouteExtension(std::string const& name, Options opts = {}); + StatusOr DeleteLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified `LbRouteExtension` resource. @@ -830,6 +921,17 @@ class DepServiceClient { request, Options opts = {}); + StatusOr DeleteLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request, + Options opts = {}); + + future> + DeleteLbRouteExtension(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..1b90e1e7f94ce 100644 --- a/google/cloud/networkservices/v1/internal/dep_connection_impl.cc +++ b/google/cloud/networkservices/v1/internal/dep_connection_impl.cc @@ -160,6 +160,62 @@ DepServiceConnectionImpl::CreateLbTrafficExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::CreateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +256,62 @@ DepServiceConnectionImpl::UpdateLbTrafficExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +352,62 @@ DepServiceConnectionImpl::DeleteLbTrafficExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::DeleteLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +500,62 @@ DepServiceConnectionImpl::CreateLbRouteExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::CreateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +596,62 @@ DepServiceConnectionImpl::UpdateLbRouteExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::UpdateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +692,62 @@ DepServiceConnectionImpl::DeleteLbRouteExtension( polling_policy(*current), __func__); } +StatusOr +DepServiceConnectionImpl::DeleteLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..106c773e66b5d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request) override; + + future> + CreateLbTrafficExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& request) override; + StatusOr UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request) override; + + future> + UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& request) override; + StatusOr DeleteLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request) override; + + future> + DeleteLbTrafficExtension( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request) override; + + future> + CreateLbRouteExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& request) override; + StatusOr UpdateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request) override; + + future> + UpdateLbRouteExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& request) override; + StatusOr DeleteLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request) override; + + future> + DeleteLbRouteExtension( + google::cloud::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..db98c3f13cfb5 100644 --- a/google/cloud/networkservices/v1/internal/dep_tracing_connection.cc +++ b/google/cloud/networkservices/v1/internal/dep_tracing_connection.cc @@ -67,6 +67,31 @@ DepServiceTracingConnection::CreateLbTrafficExtension( child_->CreateLbTrafficExtension(request)); } +StatusOr +DepServiceTracingConnection::CreateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::CreateLbTrafficExtension( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DepServiceTracingConnection::UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& @@ -78,6 +103,31 @@ DepServiceTracingConnection::UpdateLbTrafficExtension( child_->UpdateLbTrafficExtension(request)); } +StatusOr +DepServiceTracingConnection::UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::UpdateLbTrafficExtension( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DepServiceTracingConnection::DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& @@ -89,6 +139,31 @@ DepServiceTracingConnection::DeleteLbTrafficExtension( child_->DeleteLbTrafficExtension(request)); } +StatusOr +DepServiceTracingConnection::DeleteLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::DeleteLbTrafficExtension( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange DepServiceTracingConnection::ListLbRouteExtensions( google::cloud::networkservices::v1::ListLbRouteExtensionsRequest request) { @@ -122,6 +197,31 @@ DepServiceTracingConnection::CreateLbRouteExtension( child_->CreateLbRouteExtension(request)); } +StatusOr +DepServiceTracingConnection::CreateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::CreateLbRouteExtension( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DepServiceTracingConnection::UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& @@ -133,6 +233,31 @@ DepServiceTracingConnection::UpdateLbRouteExtension( child_->UpdateLbRouteExtension(request)); } +StatusOr +DepServiceTracingConnection::UpdateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::UpdateLbRouteExtension( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> DepServiceTracingConnection::DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& @@ -144,6 +269,31 @@ DepServiceTracingConnection::DeleteLbRouteExtension( child_->DeleteLbRouteExtension(request)); } +StatusOr +DepServiceTracingConnection::DeleteLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DepServiceTracingConnection::DeleteLbRouteExtension( + google::cloud::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( + google::cloud::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..d975c4d6dddf7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbTrafficExtensionRequest const& + request) override; + + future> + CreateLbTrafficExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLbTrafficExtension( google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& request) override; + StatusOr UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbTrafficExtensionRequest const& + request) override; + + future> + UpdateLbTrafficExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLbTrafficExtension( google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& request) override; + StatusOr DeleteLbTrafficExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbTrafficExtensionRequest const& + request) override; + + future> + DeleteLbTrafficExtension( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request) override; + + future> + CreateLbRouteExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLbRouteExtension( google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& request) override; + StatusOr UpdateLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request) override; + + future> + UpdateLbRouteExtension( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLbRouteExtension( google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& request) override; + StatusOr DeleteLbRouteExtension( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request) override; + + future> + DeleteLbRouteExtension( + google::cloud::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..f6f18e14e0294 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,63 @@ NetworkServicesConnectionImpl::CreateEndpointPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +259,63 @@ NetworkServicesConnectionImpl::UpdateEndpointPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +357,63 @@ NetworkServicesConnectionImpl::DeleteEndpointPolicy( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +504,61 @@ NetworkServicesConnectionImpl::CreateGateway( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +599,61 @@ NetworkServicesConnectionImpl::UpdateGateway( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +694,61 @@ NetworkServicesConnectionImpl::DeleteGateway( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +839,41 @@ NetworkServicesConnectionImpl::CreateGrpcRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::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 +891,105 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1029,61 @@ NetworkServicesConnectionImpl::DeleteGrpcRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1174,61 @@ NetworkServicesConnectionImpl::CreateHttpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1269,61 @@ NetworkServicesConnectionImpl::UpdateHttpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1364,61 @@ NetworkServicesConnectionImpl::DeleteHttpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteHttpRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1509,61 @@ NetworkServicesConnectionImpl::CreateTcpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1604,61 @@ NetworkServicesConnectionImpl::UpdateTcpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1699,61 @@ NetworkServicesConnectionImpl::DeleteTcpRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteTcpRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1810,102 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1913,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 +1939,41 @@ NetworkServicesConnectionImpl::CreateTlsRoute( polling_policy(*current), __func__); } -future> +StatusOr NetworkServicesConnectionImpl::UpdateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1991,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 +2034,61 @@ NetworkServicesConnectionImpl::DeleteTlsRoute( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteTlsRoute( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2181,63 @@ NetworkServicesConnectionImpl::CreateServiceBinding( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateServiceBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2279,63 @@ NetworkServicesConnectionImpl::DeleteServiceBinding( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteServiceBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2425,61 @@ NetworkServicesConnectionImpl::CreateMesh( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::CreateMesh( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2520,61 @@ NetworkServicesConnectionImpl::UpdateMesh( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::UpdateMesh( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2615,61 @@ NetworkServicesConnectionImpl::DeleteMesh( polling_policy(*current), __func__); } +StatusOr +NetworkServicesConnectionImpl::DeleteMesh( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..96c48c1601efb 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request) override; + + future> + CreateEndpointPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& request) override; + StatusOr UpdateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request) override; + + future> + UpdateEndpointPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& request) override; + StatusOr DeleteEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request) override; + + future> + DeleteEndpointPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request) + override; + + future> CreateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request) override; + StatusOr UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request) + override; + + future> UpdateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGateway(google::cloud::networkservices::v1::DeleteGatewayRequest const& request) override; + StatusOr DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request) + override; + + future> + DeleteGateway(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request) + override; + + future> + CreateGrpcRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGrpcRoute( google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) override; + StatusOr UpdateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) + override; + + future> + UpdateGrpcRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) override; + StatusOr DeleteGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) + override; + + future> + DeleteGrpcRoute(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& request) + override; + + future> + CreateHttpRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) override; + StatusOr UpdateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) + override; + + future> + UpdateHttpRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) override; + StatusOr DeleteHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) + override; + + future> + DeleteHttpRoute(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request) + override; + + future> CreateTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) override; + StatusOr UpdateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) + override; + + future> UpdateTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) override; + StatusOr DeleteTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) + override; + + future> + DeleteTcpRoute(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request) + override; + + future> CreateTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) override; + StatusOr UpdateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) + override; + + future> UpdateTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) override; + StatusOr DeleteTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) + override; + + future> + DeleteTlsRoute(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request) override; + + future> + CreateServiceBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& request) override; + StatusOr DeleteServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request) override; + + future> + DeleteServiceBinding( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request) + override; + + future> CreateMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request) override; + StatusOr UpdateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request) + override; + + future> UpdateMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMesh(google::cloud::networkservices::v1::DeleteMeshRequest const& request) override; + StatusOr DeleteMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request) + override; + + future> + DeleteMesh(google::cloud::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..43a126d1206b2 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,31 @@ NetworkServicesTracingConnection::CreateEndpointPolicy( child_->CreateEndpointPolicy(request)); } +StatusOr +NetworkServicesTracingConnection::CreateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateEndpointPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& @@ -77,6 +102,31 @@ NetworkServicesTracingConnection::UpdateEndpointPolicy( child_->UpdateEndpointPolicy(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateEndpointPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& @@ -88,6 +138,31 @@ NetworkServicesTracingConnection::DeleteEndpointPolicy( child_->DeleteEndpointPolicy(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteEndpointPolicy( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListGateways( google::cloud::networkservices::v1::ListGatewaysRequest request) { @@ -118,6 +193,30 @@ NetworkServicesTracingConnection::CreateGateway( return internal::EndSpan(std::move(span), child_->CreateGateway(request)); } +StatusOr +NetworkServicesTracingConnection::CreateGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request) { @@ -127,6 +226,30 @@ NetworkServicesTracingConnection::UpdateGateway( return internal::EndSpan(std::move(span), child_->UpdateGateway(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteGateway( google::cloud::networkservices::v1::DeleteGatewayRequest const& request) { @@ -136,6 +259,30 @@ NetworkServicesTracingConnection::DeleteGateway( return internal::EndSpan(std::move(span), child_->DeleteGateway(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteGateway( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListGrpcRoutes( google::cloud::networkservices::v1::ListGrpcRoutesRequest request) { @@ -166,6 +313,30 @@ NetworkServicesTracingConnection::CreateGrpcRoute( return internal::EndSpan(std::move(span), child_->CreateGrpcRoute(request)); } +StatusOr +NetworkServicesTracingConnection::CreateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateGrpcRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateGrpcRoute( google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) { @@ -175,6 +346,30 @@ NetworkServicesTracingConnection::UpdateGrpcRoute( return internal::EndSpan(std::move(span), child_->UpdateGrpcRoute(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateGrpcRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) { @@ -184,6 +379,30 @@ NetworkServicesTracingConnection::DeleteGrpcRoute( return internal::EndSpan(std::move(span), child_->DeleteGrpcRoute(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteGrpcRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListHttpRoutes( google::cloud::networkservices::v1::ListHttpRoutesRequest request) { @@ -214,6 +433,30 @@ NetworkServicesTracingConnection::CreateHttpRoute( return internal::EndSpan(std::move(span), child_->CreateHttpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::CreateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateHttpRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) { @@ -223,6 +466,30 @@ NetworkServicesTracingConnection::UpdateHttpRoute( return internal::EndSpan(std::move(span), child_->UpdateHttpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateHttpRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) { @@ -232,6 +499,30 @@ NetworkServicesTracingConnection::DeleteHttpRoute( return internal::EndSpan(std::move(span), child_->DeleteHttpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteHttpRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteHttpRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListTcpRoutes( google::cloud::networkservices::v1::ListTcpRoutesRequest request) { @@ -262,6 +553,30 @@ NetworkServicesTracingConnection::CreateTcpRoute( return internal::EndSpan(std::move(span), child_->CreateTcpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::CreateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateTcpRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) { @@ -271,6 +586,30 @@ NetworkServicesTracingConnection::UpdateTcpRoute( return internal::EndSpan(std::move(span), child_->UpdateTcpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateTcpRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) { @@ -280,6 +619,30 @@ NetworkServicesTracingConnection::DeleteTcpRoute( return internal::EndSpan(std::move(span), child_->DeleteTcpRoute(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteTcpRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteTcpRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListTlsRoutes( google::cloud::networkservices::v1::ListTlsRoutesRequest request) { @@ -310,6 +673,30 @@ NetworkServicesTracingConnection::CreateTlsRoute( return internal::EndSpan(std::move(span), child_->CreateTlsRoute(request)); } +StatusOr +NetworkServicesTracingConnection::CreateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateTlsRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) { @@ -319,6 +706,30 @@ NetworkServicesTracingConnection::UpdateTlsRoute( return internal::EndSpan(std::move(span), child_->UpdateTlsRoute(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateTlsRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) { @@ -328,6 +739,30 @@ NetworkServicesTracingConnection::DeleteTlsRoute( return internal::EndSpan(std::move(span), child_->DeleteTlsRoute(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteTlsRoute( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteTlsRoute( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListServiceBindings( google::cloud::networkservices::v1::ListServiceBindingsRequest request) { @@ -361,6 +796,31 @@ NetworkServicesTracingConnection::CreateServiceBinding( child_->CreateServiceBinding(request)); } +StatusOr +NetworkServicesTracingConnection::CreateServiceBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateServiceBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& @@ -372,6 +832,31 @@ NetworkServicesTracingConnection::DeleteServiceBinding( child_->DeleteServiceBinding(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteServiceBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteServiceBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NetworkServicesTracingConnection::ListMeshes( google::cloud::networkservices::v1::ListMeshesRequest request) { @@ -401,6 +886,30 @@ NetworkServicesTracingConnection::CreateMesh( return internal::EndSpan(std::move(span), child_->CreateMesh(request)); } +StatusOr +NetworkServicesTracingConnection::CreateMesh( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::CreateMesh( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request) { @@ -410,6 +919,30 @@ NetworkServicesTracingConnection::UpdateMesh( return internal::EndSpan(std::move(span), child_->UpdateMesh(request)); } +StatusOr +NetworkServicesTracingConnection::UpdateMesh( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::UpdateMesh( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NetworkServicesTracingConnection::DeleteMesh( google::cloud::networkservices::v1::DeleteMeshRequest const& request) { @@ -419,6 +952,30 @@ NetworkServicesTracingConnection::DeleteMesh( return internal::EndSpan(std::move(span), child_->DeleteMesh(request)); } +StatusOr +NetworkServicesTracingConnection::DeleteMesh( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NetworkServicesTracingConnection::DeleteMesh( + google::cloud::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(google::cloud::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..d443948794a12 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request) override; + + future> + CreateEndpointPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& request) override; + StatusOr UpdateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request) override; + + future> + UpdateEndpointPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& request) override; + StatusOr DeleteEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request) override; + + future> + DeleteEndpointPolicy( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request) + override; + + future> CreateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request) override; + StatusOr UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request) + override; + + future> UpdateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGateway(google::cloud::networkservices::v1::DeleteGatewayRequest const& request) override; + StatusOr DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request) + override; + + future> + DeleteGateway(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request) + override; + + future> + CreateGrpcRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGrpcRoute( google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) override; + StatusOr UpdateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request) + override; + + future> + UpdateGrpcRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) override; + StatusOr DeleteGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request) + override; + + future> + DeleteGrpcRoute(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& request) + override; + + future> + CreateHttpRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) override; + StatusOr UpdateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request) + override; + + future> + UpdateHttpRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) override; + StatusOr DeleteHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request) + override; + + future> + DeleteHttpRoute(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request) + override; + + future> CreateTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) override; + StatusOr UpdateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request) + override; + + future> UpdateTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) override; + StatusOr DeleteTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request) + override; + + future> + DeleteTcpRoute(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request) + override; + + future> CreateTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) override; + StatusOr UpdateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request) + override; + + future> UpdateTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) override; + StatusOr DeleteTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request) + override; + + future> + DeleteTlsRoute(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request) override; + + future> + CreateServiceBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& request) override; + StatusOr DeleteServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request) override; + + future> + DeleteServiceBinding( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request) + override; + + future> CreateMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request) override; + StatusOr UpdateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request) + override; + + future> UpdateMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMesh(google::cloud::networkservices::v1::DeleteMeshRequest const& request) override; + StatusOr DeleteMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request) + override; + + future> + DeleteMesh(google::cloud::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..3db9a09ffd03e 100644 --- a/google/cloud/networkservices/v1/mocks/mock_dep_connection.h +++ b/google/cloud/networkservices/v1/mocks/mock_dep_connection.h @@ -68,6 +68,20 @@ class MockDepServiceConnection CreateLbTrafficExtensionRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateLbTrafficExtension, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1:: + CreateLbTrafficExtensionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateLbTrafficExtension, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateLbTrafficExtension, @@ -75,6 +89,20 @@ class MockDepServiceConnection UpdateLbTrafficExtensionRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateLbTrafficExtension, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1:: + UpdateLbTrafficExtensionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateLbTrafficExtension, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteLbTrafficExtension, @@ -82,6 +110,20 @@ class MockDepServiceConnection DeleteLbTrafficExtensionRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteLbTrafficExtension, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1:: + DeleteLbTrafficExtensionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteLbTrafficExtension, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListLbRouteExtensions, @@ -103,6 +145,20 @@ class MockDepServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateLbRouteExtension, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateLbRouteExtensionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateLbRouteExtension, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateLbRouteExtension, @@ -110,12 +166,40 @@ class MockDepServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateLbRouteExtension, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateLbRouteExtensionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateLbRouteExtension, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteLbRouteExtension, (google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteLbRouteExtension, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteLbRouteExtensionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteLbRouteExtension, + (google::cloud::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..2c7cf0fccd7fe 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,20 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateEndpointPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateEndpointPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateEndpointPolicy, @@ -74,6 +88,20 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateEndpointPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateEndpointPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEndpointPolicy, @@ -81,6 +109,20 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteEndpointPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteEndpointPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListGateways, (google::cloud::networkservices::v1::ListGatewaysRequest request), @@ -97,18 +139,55 @@ class MockNetworkServicesConnection (google::cloud::networkservices::v1::CreateGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGateway, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGateway, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateGateway, (google::cloud::networkservices::v1::UpdateGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateGateway, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateGateway, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGateway, (google::cloud::networkservices::v1::DeleteGatewayRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGateway, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGateway, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListGrpcRoutes, @@ -126,12 +205,36 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, CreateGrpcRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateGrpcRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateGrpcRoute, (google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateGrpcRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateGrpcRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGrpcRoute, @@ -139,6 +242,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteGrpcRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteGrpcRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListHttpRoutes, @@ -156,12 +272,36 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, CreateHttpRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateHttpRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateHttpRoute, (google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateHttpRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateHttpRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteHttpRoute, @@ -169,6 +309,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteHttpRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteHttpRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTcpRoutes, @@ -186,12 +339,36 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, CreateTcpRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTcpRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTcpRoute, (google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTcpRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTcpRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTcpRoute, @@ -199,6 +376,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteTcpRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTcpRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTlsRoutes, @@ -216,12 +406,36 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, CreateTlsRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTlsRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTlsRoute, (google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTlsRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTlsRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTlsRoute, @@ -229,6 +443,19 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteTlsRoute, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTlsRoute, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListServiceBindings, @@ -249,6 +476,20 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateServiceBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateServiceBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteServiceBinding, @@ -256,6 +497,20 @@ class MockNetworkServicesConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteServiceBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteServiceBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListMeshes, (google::cloud::networkservices::v1::ListMeshesRequest request), @@ -271,16 +526,53 @@ class MockNetworkServicesConnection (google::cloud::networkservices::v1::CreateMeshRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateMesh, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMesh, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateMesh, (google::cloud::networkservices::v1::UpdateMeshRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateMesh, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateMesh, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMesh, (google::cloud::networkservices::v1::DeleteMeshRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DeleteMesh, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteMesh, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/networkservices/v1/network_services_client.cc b/google/cloud/networkservices/v1/network_services_client.cc index c620bcab5ca58..c0cbc9c70ba1f 100644 --- a/google/cloud/networkservices/v1/network_services_client.cc +++ b/google/cloud/networkservices/v1/network_services_client.cc @@ -79,6 +79,21 @@ NetworkServicesClient::CreateEndpointPolicy( return connection_->CreateEndpointPolicy(request); } +StatusOr +NetworkServicesClient::CreateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::EndpointPolicy const& endpoint_policy, + std::string const& endpoint_policy_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateEndpointPolicyRequest request; + request.set_parent(parent); + *request.mutable_endpoint_policy() = endpoint_policy; + request.set_endpoint_policy_id(endpoint_policy_id); + return connection_->CreateEndpointPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::CreateEndpointPolicy( google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& @@ -88,6 +103,26 @@ NetworkServicesClient::CreateEndpointPolicy( return connection_->CreateEndpointPolicy(request); } +StatusOr +NetworkServicesClient::CreateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEndpointPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::CreateEndpointPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEndpointPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::UpdateEndpointPolicy( google::cloud::networkservices::v1::EndpointPolicy const& endpoint_policy, @@ -99,6 +134,19 @@ NetworkServicesClient::UpdateEndpointPolicy( return connection_->UpdateEndpointPolicy(request); } +StatusOr +NetworkServicesClient::UpdateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::EndpointPolicy const& endpoint_policy, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest request; + *request.mutable_endpoint_policy() = endpoint_policy; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateEndpointPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::UpdateEndpointPolicy( google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& @@ -108,6 +156,26 @@ NetworkServicesClient::UpdateEndpointPolicy( return connection_->UpdateEndpointPolicy(request); } +StatusOr +NetworkServicesClient::UpdateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEndpointPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::UpdateEndpointPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateEndpointPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::DeleteEndpointPolicy(std::string const& name, Options opts) { @@ -117,6 +185,18 @@ NetworkServicesClient::DeleteEndpointPolicy(std::string const& name, return connection_->DeleteEndpointPolicy(request); } +StatusOr +NetworkServicesClient::DeleteEndpointPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest request; + request.set_name(name); + return connection_->DeleteEndpointPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::DeleteEndpointPolicy( google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& @@ -126,6 +206,26 @@ NetworkServicesClient::DeleteEndpointPolicy( return connection_->DeleteEndpointPolicy(request); } +StatusOr +NetworkServicesClient::DeleteEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEndpointPolicy( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::DeleteEndpointPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEndpointPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkServicesClient::ListGateways(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -171,6 +271,20 @@ NetworkServicesClient::CreateGateway( return connection_->CreateGateway(request); } +StatusOr NetworkServicesClient::CreateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::Gateway const& gateway, + std::string const& gateway_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateGatewayRequest request; + request.set_parent(parent); + *request.mutable_gateway() = gateway; + request.set_gateway_id(gateway_id); + return connection_->CreateGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::CreateGateway( google::cloud::networkservices::v1::CreateGatewayRequest const& request, @@ -179,6 +293,24 @@ NetworkServicesClient::CreateGateway( return connection_->CreateGateway(request); } +StatusOr NetworkServicesClient::CreateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::CreateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGateway(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::UpdateGateway( google::cloud::networkservices::v1::Gateway const& gateway, @@ -190,6 +322,18 @@ NetworkServicesClient::UpdateGateway( return connection_->UpdateGateway(request); } +StatusOr NetworkServicesClient::UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::Gateway const& gateway, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateGatewayRequest request; + *request.mutable_gateway() = gateway; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::UpdateGateway( google::cloud::networkservices::v1::UpdateGatewayRequest const& request, @@ -198,6 +342,24 @@ NetworkServicesClient::UpdateGateway( return connection_->UpdateGateway(request); } +StatusOr NetworkServicesClient::UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::UpdateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGateway(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::DeleteGateway(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -206,6 +368,16 @@ NetworkServicesClient::DeleteGateway(std::string const& name, Options opts) { return connection_->DeleteGateway(request); } +StatusOr NetworkServicesClient::DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteGatewayRequest request; + request.set_name(name); + return connection_->DeleteGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::DeleteGateway( google::cloud::networkservices::v1::DeleteGatewayRequest const& request, @@ -214,6 +386,24 @@ NetworkServicesClient::DeleteGateway( return connection_->DeleteGateway(request); } +StatusOr NetworkServicesClient::DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGateway(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::DeleteGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGateway(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkServicesClient::ListGrpcRoutes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -259,6 +449,20 @@ NetworkServicesClient::CreateGrpcRoute( return connection_->CreateGrpcRoute(request); } +StatusOr NetworkServicesClient::CreateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::GrpcRoute const& grpc_route, + std::string const& grpc_route_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateGrpcRouteRequest request; + request.set_parent(parent); + *request.mutable_grpc_route() = grpc_route; + request.set_grpc_route_id(grpc_route_id); + return connection_->CreateGrpcRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::CreateGrpcRoute( google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request, @@ -267,6 +471,24 @@ NetworkServicesClient::CreateGrpcRoute( return connection_->CreateGrpcRoute(request); } +StatusOr NetworkServicesClient::CreateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGrpcRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::CreateGrpcRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGrpcRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::UpdateGrpcRoute( google::cloud::networkservices::v1::GrpcRoute const& grpc_route, @@ -278,6 +500,18 @@ NetworkServicesClient::UpdateGrpcRoute( return connection_->UpdateGrpcRoute(request); } +StatusOr NetworkServicesClient::UpdateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::GrpcRoute const& grpc_route, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateGrpcRouteRequest request; + *request.mutable_grpc_route() = grpc_route; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateGrpcRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::UpdateGrpcRoute( google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request, @@ -286,6 +520,24 @@ NetworkServicesClient::UpdateGrpcRoute( return connection_->UpdateGrpcRoute(request); } +StatusOr NetworkServicesClient::UpdateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGrpcRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::UpdateGrpcRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGrpcRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::DeleteGrpcRoute(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -294,6 +546,16 @@ NetworkServicesClient::DeleteGrpcRoute(std::string const& name, Options opts) { return connection_->DeleteGrpcRoute(request); } +StatusOr NetworkServicesClient::DeleteGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteGrpcRouteRequest request; + request.set_name(name); + return connection_->DeleteGrpcRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::DeleteGrpcRoute( google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request, @@ -302,6 +564,24 @@ NetworkServicesClient::DeleteGrpcRoute( return connection_->DeleteGrpcRoute(request); } +StatusOr NetworkServicesClient::DeleteGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGrpcRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::DeleteGrpcRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGrpcRoute(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkServicesClient::ListHttpRoutes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -347,6 +627,20 @@ NetworkServicesClient::CreateHttpRoute( return connection_->CreateHttpRoute(request); } +StatusOr NetworkServicesClient::CreateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::HttpRoute const& http_route, + std::string const& http_route_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateHttpRouteRequest request; + request.set_parent(parent); + *request.mutable_http_route() = http_route; + request.set_http_route_id(http_route_id); + return connection_->CreateHttpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::CreateHttpRoute( google::cloud::networkservices::v1::CreateHttpRouteRequest const& request, @@ -355,6 +649,24 @@ NetworkServicesClient::CreateHttpRoute( return connection_->CreateHttpRoute(request); } +StatusOr NetworkServicesClient::CreateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateHttpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::CreateHttpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateHttpRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::UpdateHttpRoute( google::cloud::networkservices::v1::HttpRoute const& http_route, @@ -366,6 +678,18 @@ NetworkServicesClient::UpdateHttpRoute( return connection_->UpdateHttpRoute(request); } +StatusOr NetworkServicesClient::UpdateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::HttpRoute const& http_route, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateHttpRouteRequest request; + *request.mutable_http_route() = http_route; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateHttpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::UpdateHttpRoute( google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request, @@ -374,6 +698,24 @@ NetworkServicesClient::UpdateHttpRoute( return connection_->UpdateHttpRoute(request); } +StatusOr NetworkServicesClient::UpdateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHttpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::UpdateHttpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateHttpRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::DeleteHttpRoute(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -382,6 +724,16 @@ NetworkServicesClient::DeleteHttpRoute(std::string const& name, Options opts) { return connection_->DeleteHttpRoute(request); } +StatusOr NetworkServicesClient::DeleteHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteHttpRouteRequest request; + request.set_name(name); + return connection_->DeleteHttpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::DeleteHttpRoute( google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request, @@ -390,6 +742,24 @@ NetworkServicesClient::DeleteHttpRoute( return connection_->DeleteHttpRoute(request); } +StatusOr NetworkServicesClient::DeleteHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHttpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::DeleteHttpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteHttpRoute(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkServicesClient::ListTcpRoutes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -435,6 +805,20 @@ NetworkServicesClient::CreateTcpRoute( return connection_->CreateTcpRoute(request); } +StatusOr NetworkServicesClient::CreateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::TcpRoute const& tcp_route, + std::string const& tcp_route_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateTcpRouteRequest request; + request.set_parent(parent); + *request.mutable_tcp_route() = tcp_route; + request.set_tcp_route_id(tcp_route_id); + return connection_->CreateTcpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::CreateTcpRoute( google::cloud::networkservices::v1::CreateTcpRouteRequest const& request, @@ -443,6 +827,24 @@ NetworkServicesClient::CreateTcpRoute( return connection_->CreateTcpRoute(request); } +StatusOr NetworkServicesClient::CreateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTcpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::CreateTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTcpRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::UpdateTcpRoute( google::cloud::networkservices::v1::TcpRoute const& tcp_route, @@ -454,6 +856,18 @@ NetworkServicesClient::UpdateTcpRoute( return connection_->UpdateTcpRoute(request); } +StatusOr NetworkServicesClient::UpdateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::TcpRoute const& tcp_route, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateTcpRouteRequest request; + *request.mutable_tcp_route() = tcp_route; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTcpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::UpdateTcpRoute( google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request, @@ -462,6 +876,24 @@ NetworkServicesClient::UpdateTcpRoute( return connection_->UpdateTcpRoute(request); } +StatusOr NetworkServicesClient::UpdateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTcpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::UpdateTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTcpRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::DeleteTcpRoute(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -470,6 +902,16 @@ NetworkServicesClient::DeleteTcpRoute(std::string const& name, Options opts) { return connection_->DeleteTcpRoute(request); } +StatusOr NetworkServicesClient::DeleteTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteTcpRouteRequest request; + request.set_name(name); + return connection_->DeleteTcpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::DeleteTcpRoute( google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request, @@ -478,6 +920,24 @@ NetworkServicesClient::DeleteTcpRoute( return connection_->DeleteTcpRoute(request); } +StatusOr NetworkServicesClient::DeleteTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTcpRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::DeleteTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTcpRoute(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkServicesClient::ListTlsRoutes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -523,6 +983,20 @@ NetworkServicesClient::CreateTlsRoute( return connection_->CreateTlsRoute(request); } +StatusOr NetworkServicesClient::CreateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::TlsRoute const& tls_route, + std::string const& tls_route_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateTlsRouteRequest request; + request.set_parent(parent); + *request.mutable_tls_route() = tls_route; + request.set_tls_route_id(tls_route_id); + return connection_->CreateTlsRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::CreateTlsRoute( google::cloud::networkservices::v1::CreateTlsRouteRequest const& request, @@ -531,6 +1005,24 @@ NetworkServicesClient::CreateTlsRoute( return connection_->CreateTlsRoute(request); } +StatusOr NetworkServicesClient::CreateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTlsRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::CreateTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTlsRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::UpdateTlsRoute( google::cloud::networkservices::v1::TlsRoute const& tls_route, @@ -542,6 +1034,18 @@ NetworkServicesClient::UpdateTlsRoute( return connection_->UpdateTlsRoute(request); } +StatusOr NetworkServicesClient::UpdateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::TlsRoute const& tls_route, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateTlsRouteRequest request; + *request.mutable_tls_route() = tls_route; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTlsRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::UpdateTlsRoute( google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request, @@ -550,6 +1054,24 @@ NetworkServicesClient::UpdateTlsRoute( return connection_->UpdateTlsRoute(request); } +StatusOr NetworkServicesClient::UpdateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTlsRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::UpdateTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTlsRoute(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::DeleteTlsRoute(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -558,6 +1080,16 @@ NetworkServicesClient::DeleteTlsRoute(std::string const& name, Options opts) { return connection_->DeleteTlsRoute(request); } +StatusOr NetworkServicesClient::DeleteTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteTlsRouteRequest request; + request.set_name(name); + return connection_->DeleteTlsRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::DeleteTlsRoute( google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request, @@ -566,6 +1098,24 @@ NetworkServicesClient::DeleteTlsRoute( return connection_->DeleteTlsRoute(request); } +StatusOr NetworkServicesClient::DeleteTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTlsRoute(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::DeleteTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTlsRoute(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkServicesClient::ListServiceBindings(std::string const& parent, Options opts) { @@ -613,6 +1163,21 @@ NetworkServicesClient::CreateServiceBinding( return connection_->CreateServiceBinding(request); } +StatusOr +NetworkServicesClient::CreateServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::ServiceBinding const& service_binding, + std::string const& service_binding_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateServiceBindingRequest request; + request.set_parent(parent); + *request.mutable_service_binding() = service_binding; + request.set_service_binding_id(service_binding_id); + return connection_->CreateServiceBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::CreateServiceBinding( google::cloud::networkservices::v1::CreateServiceBindingRequest const& @@ -622,6 +1187,26 @@ NetworkServicesClient::CreateServiceBinding( return connection_->CreateServiceBinding(request); } +StatusOr +NetworkServicesClient::CreateServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServiceBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::CreateServiceBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServiceBinding(google::cloud::ExperimentalTag{}, + operation); +} + future> NetworkServicesClient::DeleteServiceBinding(std::string const& name, Options opts) { @@ -631,6 +1216,18 @@ NetworkServicesClient::DeleteServiceBinding(std::string const& name, return connection_->DeleteServiceBinding(request); } +StatusOr +NetworkServicesClient::DeleteServiceBinding(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteServiceBindingRequest request; + request.set_name(name); + return connection_->DeleteServiceBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::DeleteServiceBinding( google::cloud::networkservices::v1::DeleteServiceBindingRequest const& @@ -640,6 +1237,26 @@ NetworkServicesClient::DeleteServiceBinding( return connection_->DeleteServiceBinding(request); } +StatusOr +NetworkServicesClient::DeleteServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServiceBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::DeleteServiceBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteServiceBinding(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NetworkServicesClient::ListMeshes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -685,6 +1302,20 @@ NetworkServicesClient::CreateMesh( return connection_->CreateMesh(request); } +StatusOr NetworkServicesClient::CreateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::Mesh const& mesh, + std::string const& mesh_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::CreateMeshRequest request; + request.set_parent(parent); + *request.mutable_mesh() = mesh; + request.set_mesh_id(mesh_id); + return connection_->CreateMesh(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::CreateMesh( google::cloud::networkservices::v1::CreateMeshRequest const& request, @@ -693,6 +1324,23 @@ NetworkServicesClient::CreateMesh( return connection_->CreateMesh(request); } +StatusOr NetworkServicesClient::CreateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMesh(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::CreateMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMesh(google::cloud::ExperimentalTag{}, operation); +} + future> NetworkServicesClient::UpdateMesh( google::cloud::networkservices::v1::Mesh const& mesh, @@ -704,6 +1352,18 @@ NetworkServicesClient::UpdateMesh( return connection_->UpdateMesh(request); } +StatusOr NetworkServicesClient::UpdateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::Mesh const& mesh, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::UpdateMeshRequest request; + *request.mutable_mesh() = mesh; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateMesh(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::UpdateMesh( google::cloud::networkservices::v1::UpdateMeshRequest const& request, @@ -712,6 +1372,23 @@ NetworkServicesClient::UpdateMesh( return connection_->UpdateMesh(request); } +StatusOr NetworkServicesClient::UpdateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMesh(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::UpdateMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMesh(google::cloud::ExperimentalTag{}, operation); +} + future> NetworkServicesClient::DeleteMesh(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -720,6 +1397,16 @@ NetworkServicesClient::DeleteMesh(std::string const& name, Options opts) { return connection_->DeleteMesh(request); } +StatusOr NetworkServicesClient::DeleteMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::networkservices::v1::DeleteMeshRequest request; + request.set_name(name); + return connection_->DeleteMesh(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NetworkServicesClient::DeleteMesh( google::cloud::networkservices::v1::DeleteMeshRequest const& request, @@ -728,6 +1415,23 @@ NetworkServicesClient::DeleteMesh( return connection_->DeleteMesh(request); } +StatusOr NetworkServicesClient::DeleteMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMesh(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NetworkServicesClient::DeleteMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMesh(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace networkservices_v1 } // namespace cloud diff --git a/google/cloud/networkservices/v1/network_services_client.h b/google/cloud/networkservices/v1/network_services_client.h index e8e852b85536c..d1aa50c1c3568 100644 --- a/google/cloud/networkservices/v1/network_services_client.h +++ b/google/cloud/networkservices/v1/network_services_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NETWORKSERVICES_V1_NETWORK_SERVICES_CLIENT_H #include "google/cloud/networkservices/v1/network_services_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -261,6 +263,12 @@ class NetworkServicesClient { google::cloud::networkservices::v1::EndpointPolicy const& endpoint_policy, std::string const& endpoint_policy_id, Options opts = {}); + StatusOr CreateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::EndpointPolicy const& endpoint_policy, + std::string const& endpoint_policy_id, Options opts = {}); + // clang-format off /// /// Creates a new EndpointPolicy in a given project and location. @@ -301,6 +309,17 @@ class NetworkServicesClient { request, Options opts = {}); + StatusOr CreateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateEndpointPolicyRequest const& + request, + Options opts = {}); + + future> + CreateEndpointPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single EndpointPolicy. @@ -340,6 +359,11 @@ class NetworkServicesClient { google::cloud::networkservices::v1::EndpointPolicy const& endpoint_policy, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::EndpointPolicy const& endpoint_policy, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single EndpointPolicy. @@ -380,6 +404,17 @@ class NetworkServicesClient { request, Options opts = {}); + StatusOr UpdateEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateEndpointPolicyRequest const& + request, + Options opts = {}); + + future> + UpdateEndpointPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single EndpointPolicy. @@ -413,6 +448,10 @@ class NetworkServicesClient { future> DeleteEndpointPolicy(std::string const& name, Options opts = {}); + StatusOr DeleteEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single EndpointPolicy. @@ -453,6 +492,17 @@ class NetworkServicesClient { request, Options opts = {}); + StatusOr DeleteEndpointPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteEndpointPolicyRequest const& + request, + Options opts = {}); + + future> + DeleteEndpointPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Gateways in a given project and location. @@ -622,6 +672,12 @@ class NetworkServicesClient { google::cloud::networkservices::v1::Gateway const& gateway, std::string const& gateway_id, Options opts = {}); + StatusOr CreateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::Gateway const& gateway, + std::string const& gateway_id, Options opts = {}); + // clang-format off /// /// Creates a new Gateway in a given project and location. @@ -660,6 +716,15 @@ class NetworkServicesClient { google::cloud::networkservices::v1::CreateGatewayRequest const& request, Options opts = {}); + StatusOr CreateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGatewayRequest const& request, + Options opts = {}); + + future> CreateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Gateway. @@ -698,6 +763,11 @@ class NetworkServicesClient { google::cloud::networkservices::v1::Gateway const& gateway, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::Gateway const& gateway, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Gateway. @@ -736,6 +806,15 @@ class NetworkServicesClient { google::cloud::networkservices::v1::UpdateGatewayRequest const& request, Options opts = {}); + StatusOr UpdateGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGatewayRequest const& request, + Options opts = {}); + + future> UpdateGateway( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Gateway. @@ -769,6 +848,10 @@ class NetworkServicesClient { future> DeleteGateway(std::string const& name, Options opts = {}); + StatusOr DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Gateway. @@ -808,6 +891,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::DeleteGatewayRequest const& request, Options opts = {}); + StatusOr DeleteGateway( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGatewayRequest const& request, + Options opts = {}); + + future> + DeleteGateway(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists GrpcRoutes in a given project and location. @@ -978,6 +1071,12 @@ class NetworkServicesClient { google::cloud::networkservices::v1::GrpcRoute const& grpc_route, std::string const& grpc_route_id, Options opts = {}); + StatusOr CreateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::GrpcRoute const& grpc_route, + std::string const& grpc_route_id, Options opts = {}); + // clang-format off /// /// Creates a new GrpcRoute in a given project and location. @@ -1017,6 +1116,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request, Options opts = {}); + StatusOr CreateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateGrpcRouteRequest const& request, + Options opts = {}); + + future> + CreateGrpcRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single GrpcRoute. @@ -1056,6 +1165,11 @@ class NetworkServicesClient { google::cloud::networkservices::v1::GrpcRoute const& grpc_route, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::GrpcRoute const& grpc_route, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single GrpcRoute. @@ -1095,6 +1209,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request, Options opts = {}); + StatusOr UpdateGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateGrpcRouteRequest const& request, + Options opts = {}); + + future> + UpdateGrpcRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single GrpcRoute. @@ -1128,6 +1252,10 @@ class NetworkServicesClient { future> DeleteGrpcRoute(std::string const& name, Options opts = {}); + StatusOr DeleteGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single GrpcRoute. @@ -1167,6 +1295,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request, Options opts = {}); + StatusOr DeleteGrpcRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteGrpcRouteRequest const& request, + Options opts = {}); + + future> + DeleteGrpcRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists HttpRoute in a given project and location. @@ -1337,6 +1475,12 @@ class NetworkServicesClient { google::cloud::networkservices::v1::HttpRoute const& http_route, std::string const& http_route_id, Options opts = {}); + StatusOr CreateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::HttpRoute const& http_route, + std::string const& http_route_id, Options opts = {}); + // clang-format off /// /// Creates a new HttpRoute in a given project and location. @@ -1376,6 +1520,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::CreateHttpRouteRequest const& request, Options opts = {}); + StatusOr CreateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateHttpRouteRequest const& request, + Options opts = {}); + + future> + CreateHttpRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single HttpRoute. @@ -1415,6 +1569,11 @@ class NetworkServicesClient { google::cloud::networkservices::v1::HttpRoute const& http_route, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::HttpRoute const& http_route, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single HttpRoute. @@ -1454,6 +1613,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request, Options opts = {}); + StatusOr UpdateHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateHttpRouteRequest const& request, + Options opts = {}); + + future> + UpdateHttpRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single HttpRoute. @@ -1487,6 +1656,10 @@ class NetworkServicesClient { future> DeleteHttpRoute(std::string const& name, Options opts = {}); + StatusOr DeleteHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single HttpRoute. @@ -1526,6 +1699,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request, Options opts = {}); + StatusOr DeleteHttpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteHttpRouteRequest const& request, + Options opts = {}); + + future> + DeleteHttpRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists TcpRoute in a given project and location. @@ -1695,6 +1878,12 @@ class NetworkServicesClient { google::cloud::networkservices::v1::TcpRoute const& tcp_route, std::string const& tcp_route_id, Options opts = {}); + StatusOr CreateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::TcpRoute const& tcp_route, + std::string const& tcp_route_id, Options opts = {}); + // clang-format off /// /// Creates a new TcpRoute in a given project and location. @@ -1733,6 +1922,15 @@ class NetworkServicesClient { google::cloud::networkservices::v1::CreateTcpRouteRequest const& request, Options opts = {}); + StatusOr CreateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTcpRouteRequest const& request, + Options opts = {}); + + future> CreateTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single TcpRoute. @@ -1771,6 +1969,11 @@ class NetworkServicesClient { google::cloud::networkservices::v1::TcpRoute const& tcp_route, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::TcpRoute const& tcp_route, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single TcpRoute. @@ -1809,6 +2012,15 @@ class NetworkServicesClient { google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request, Options opts = {}); + StatusOr UpdateTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTcpRouteRequest const& request, + Options opts = {}); + + future> UpdateTcpRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single TcpRoute. @@ -1842,6 +2054,10 @@ class NetworkServicesClient { future> DeleteTcpRoute(std::string const& name, Options opts = {}); + StatusOr DeleteTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single TcpRoute. @@ -1881,6 +2097,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request, Options opts = {}); + StatusOr DeleteTcpRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTcpRouteRequest const& request, + Options opts = {}); + + future> + DeleteTcpRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists TlsRoute in a given project and location. @@ -2050,6 +2276,12 @@ class NetworkServicesClient { google::cloud::networkservices::v1::TlsRoute const& tls_route, std::string const& tls_route_id, Options opts = {}); + StatusOr CreateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::TlsRoute const& tls_route, + std::string const& tls_route_id, Options opts = {}); + // clang-format off /// /// Creates a new TlsRoute in a given project and location. @@ -2088,6 +2320,15 @@ class NetworkServicesClient { google::cloud::networkservices::v1::CreateTlsRouteRequest const& request, Options opts = {}); + StatusOr CreateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateTlsRouteRequest const& request, + Options opts = {}); + + future> CreateTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single TlsRoute. @@ -2126,6 +2367,11 @@ class NetworkServicesClient { google::cloud::networkservices::v1::TlsRoute const& tls_route, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::TlsRoute const& tls_route, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single TlsRoute. @@ -2164,6 +2410,15 @@ class NetworkServicesClient { google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request, Options opts = {}); + StatusOr UpdateTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateTlsRouteRequest const& request, + Options opts = {}); + + future> UpdateTlsRoute( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single TlsRoute. @@ -2197,6 +2452,10 @@ class NetworkServicesClient { future> DeleteTlsRoute(std::string const& name, Options opts = {}); + StatusOr DeleteTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single TlsRoute. @@ -2236,6 +2495,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request, Options opts = {}); + StatusOr DeleteTlsRoute( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteTlsRouteRequest const& request, + Options opts = {}); + + future> + DeleteTlsRoute(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists ServiceBinding in a given project and location. @@ -2409,6 +2678,12 @@ class NetworkServicesClient { google::cloud::networkservices::v1::ServiceBinding const& service_binding, std::string const& service_binding_id, Options opts = {}); + StatusOr CreateServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::ServiceBinding const& service_binding, + std::string const& service_binding_id, Options opts = {}); + // clang-format off /// /// Creates a new ServiceBinding in a given project and location. @@ -2449,6 +2724,17 @@ class NetworkServicesClient { request, Options opts = {}); + StatusOr CreateServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateServiceBindingRequest const& + request, + Options opts = {}); + + future> + CreateServiceBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single ServiceBinding. @@ -2482,6 +2768,10 @@ class NetworkServicesClient { future> DeleteServiceBinding(std::string const& name, Options opts = {}); + StatusOr DeleteServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single ServiceBinding. @@ -2522,6 +2812,17 @@ class NetworkServicesClient { request, Options opts = {}); + StatusOr DeleteServiceBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteServiceBindingRequest const& + request, + Options opts = {}); + + future> + DeleteServiceBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Meshes in a given project and location. @@ -2691,6 +2992,12 @@ class NetworkServicesClient { google::cloud::networkservices::v1::Mesh const& mesh, std::string const& mesh_id, Options opts = {}); + StatusOr CreateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::networkservices::v1::Mesh const& mesh, + std::string const& mesh_id, Options opts = {}); + // clang-format off /// /// Creates a new Mesh in a given project and location. @@ -2729,6 +3036,15 @@ class NetworkServicesClient { google::cloud::networkservices::v1::CreateMeshRequest const& request, Options opts = {}); + StatusOr CreateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::CreateMeshRequest const& request, + Options opts = {}); + + future> CreateMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Mesh. @@ -2767,6 +3083,11 @@ class NetworkServicesClient { google::cloud::networkservices::v1::Mesh const& mesh, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::Mesh const& mesh, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Mesh. @@ -2805,6 +3126,15 @@ class NetworkServicesClient { google::cloud::networkservices::v1::UpdateMeshRequest const& request, Options opts = {}); + StatusOr UpdateMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::UpdateMeshRequest const& request, + Options opts = {}); + + future> UpdateMesh( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Mesh. @@ -2838,6 +3168,10 @@ class NetworkServicesClient { future> DeleteMesh(std::string const& name, Options opts = {}); + StatusOr DeleteMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Mesh. @@ -2877,6 +3211,16 @@ class NetworkServicesClient { google::cloud::networkservices::v1::DeleteMeshRequest const& request, Options opts = {}); + StatusOr DeleteMesh( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::networkservices::v1::DeleteMeshRequest const& request, + Options opts = {}); + + future> + DeleteMesh(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..0247310d414f4 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,59 @@ ManagedNotebookServiceConnectionImpl::CreateRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::CreateRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +247,59 @@ ManagedNotebookServiceConnectionImpl::UpdateRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::UpdateRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +339,60 @@ ManagedNotebookServiceConnectionImpl::DeleteRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::DeleteRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +432,58 @@ ManagedNotebookServiceConnectionImpl::StartRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::StartRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +523,58 @@ ManagedNotebookServiceConnectionImpl::StopRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::StopRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +614,59 @@ ManagedNotebookServiceConnectionImpl::SwitchRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::SwitchRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +706,58 @@ ManagedNotebookServiceConnectionImpl::ResetRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::ResetRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +797,59 @@ ManagedNotebookServiceConnectionImpl::UpgradeRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::UpgradeRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +890,59 @@ ManagedNotebookServiceConnectionImpl::ReportRuntimeEvent( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::ReportRuntimeEvent( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +998,59 @@ ManagedNotebookServiceConnectionImpl::DiagnoseRuntime( polling_policy(*current), __func__); } +StatusOr +ManagedNotebookServiceConnectionImpl::DiagnoseRuntime( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..0458e014ceb3d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request) + override; + + future> CreateRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) override; + StatusOr UpdateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) + override; + + future> UpdateRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRuntime(google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) override; + StatusOr DeleteRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) + override; + + future> + DeleteRuntime(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request) override; + StatusOr StartRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request) + override; + + future> StartRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request) override; + StatusOr StopRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request) override; + + future> StopRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) override; + StatusOr SwitchRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) + override; + + future> SwitchRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request) override; + StatusOr ResetRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request) + override; + + future> ResetRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) override; + StatusOr UpgradeRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) + override; + + future> UpgradeRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) override; + StatusOr ReportRuntimeEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) + override; + + future> ReportRuntimeEvent( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) + override; + + future> DiagnoseRuntime( + google::cloud::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..5430170e9c236 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,30 @@ ManagedNotebookServiceTracingConnection::CreateRuntime( return internal::EndSpan(std::move(span), child_->CreateRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::CreateRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::CreateRuntime( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) { @@ -72,6 +96,30 @@ ManagedNotebookServiceTracingConnection::UpdateRuntime( return internal::EndSpan(std::move(span), child_->UpdateRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::UpdateRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::UpdateRuntime( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::DeleteRuntime( google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) { @@ -81,6 +129,30 @@ ManagedNotebookServiceTracingConnection::DeleteRuntime( return internal::EndSpan(std::move(span), child_->DeleteRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::DeleteRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::DeleteRuntime( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request) { @@ -90,6 +162,30 @@ ManagedNotebookServiceTracingConnection::StartRuntime( return internal::EndSpan(std::move(span), child_->StartRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::StartRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::StartRuntime( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request) { @@ -99,6 +195,30 @@ ManagedNotebookServiceTracingConnection::StopRuntime( return internal::EndSpan(std::move(span), child_->StopRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::StopRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::StopRuntime( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) { @@ -108,6 +228,30 @@ ManagedNotebookServiceTracingConnection::SwitchRuntime( return internal::EndSpan(std::move(span), child_->SwitchRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::SwitchRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::SwitchRuntime( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request) { @@ -117,6 +261,30 @@ ManagedNotebookServiceTracingConnection::ResetRuntime( return internal::EndSpan(std::move(span), child_->ResetRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::ResetRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::ResetRuntime( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) { @@ -126,6 +294,30 @@ ManagedNotebookServiceTracingConnection::UpgradeRuntime( return internal::EndSpan(std::move(span), child_->UpgradeRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::UpgradeRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::UpgradeRuntime( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ManagedNotebookServiceTracingConnection::ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) { @@ -136,6 +328,30 @@ ManagedNotebookServiceTracingConnection::ReportRuntimeEvent( child_->ReportRuntimeEvent(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::ReportRuntimeEvent( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::ReportRuntimeEvent( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ManagedNotebookServiceTracingConnection::RefreshRuntimeTokenInternal( google::cloud::notebooks::v1::RefreshRuntimeTokenInternalRequest const& @@ -156,6 +372,30 @@ ManagedNotebookServiceTracingConnection::DiagnoseRuntime( return internal::EndSpan(std::move(span), child_->DiagnoseRuntime(request)); } +StatusOr +ManagedNotebookServiceTracingConnection::DiagnoseRuntime( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ManagedNotebookServiceTracingConnection::DiagnoseRuntime( + google::cloud::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(google::cloud::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..a81746355bafe 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request) + override; + + future> CreateRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) override; + StatusOr UpdateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request) + override; + + future> UpdateRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRuntime(google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) override; + StatusOr DeleteRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request) + override; + + future> + DeleteRuntime(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request) override; + StatusOr StartRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request) + override; + + future> StartRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request) override; + StatusOr StopRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request) override; + + future> StopRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) override; + StatusOr SwitchRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request) + override; + + future> SwitchRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request) override; + StatusOr ResetRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request) + override; + + future> ResetRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) override; + StatusOr UpgradeRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request) + override; + + future> UpgradeRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) override; + StatusOr ReportRuntimeEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request) + override; + + future> ReportRuntimeEvent( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request) + override; + + future> DiagnoseRuntime( + google::cloud::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..42885dec9b8b4 100644 --- a/google/cloud/notebooks/v1/internal/notebook_connection_impl.cc +++ b/google/cloud/notebooks/v1/internal/notebook_connection_impl.cc @@ -153,6 +153,59 @@ NotebookServiceConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +246,59 @@ NotebookServiceConnectionImpl::RegisterInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::RegisterInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +340,60 @@ NotebookServiceConnectionImpl::SetInstanceAccelerator( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::SetInstanceAccelerator( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +435,60 @@ NotebookServiceConnectionImpl::SetInstanceMachineType( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::SetInstanceMachineType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +529,59 @@ NotebookServiceConnectionImpl::UpdateInstanceConfig( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +622,60 @@ NotebookServiceConnectionImpl::UpdateShieldedInstanceConfig( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +716,59 @@ NotebookServiceConnectionImpl::SetInstanceLabels( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::SetInstanceLabels( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +824,60 @@ NotebookServiceConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +917,222 @@ NotebookServiceConnectionImpl::StartInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::StartInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::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 +1150,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 +1167,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 +1193,39 @@ NotebookServiceConnectionImpl::ResetInstance( polling_policy(*current), __func__); } -future> +StatusOr NotebookServiceConnectionImpl::ReportInstanceInfo( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1243,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 +1315,59 @@ NotebookServiceConnectionImpl::UpgradeInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1408,59 @@ NotebookServiceConnectionImpl::RollbackInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1501,59 @@ NotebookServiceConnectionImpl::DiagnoseInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1595,60 @@ NotebookServiceConnectionImpl::UpgradeInstanceInternal( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpgradeInstanceInternal( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1683,95 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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) { + google::cloud::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 +1789,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 +1832,60 @@ NotebookServiceConnectionImpl::DeleteEnvironment( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1973,60 @@ NotebookServiceConnectionImpl::DeleteSchedule( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2066,59 @@ NotebookServiceConnectionImpl::CreateSchedule( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateSchedule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2158,59 @@ NotebookServiceConnectionImpl::TriggerSchedule( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::TriggerSchedule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2298,60 @@ NotebookServiceConnectionImpl::DeleteExecution( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2391,59 @@ NotebookServiceConnectionImpl::CreateExecution( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateExecution( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..224326c776500 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request) override; + StatusOr RegisterInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request) + override; + + future> RegisterInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& request) override; + StatusOr SetInstanceAccelerator( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request) override; + + future> + SetInstanceAccelerator( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& request) override; + StatusOr SetInstanceMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request) override; + + future> + SetInstanceMachineType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) + override; + + future> UpdateInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& request) override; + StatusOr UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request) override; + + future> + UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) override; + StatusOr SetInstanceLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) + override; + + future> SetInstanceLabels( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request) override; + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request) + override; + + future> StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const& request) override; + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request) + override; + + future> StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetInstance( google::cloud::notebooks::v1::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request) + override; + + future> ResetInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportInstanceInfo( google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) override; + StatusOr ReportInstanceInfo( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) + override; + + future> ReportInstanceInfo( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) + override; + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request) override; + StatusOr RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request) + override; + + future> RollbackInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) override; + StatusOr DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) + override; + + future> DiagnoseInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& request) override; + StatusOr UpgradeInstanceInternal( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request) override; + + future> + UpgradeInstanceInternal( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) + override; + + future> CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) + override; + + future> + DeleteEnvironment(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request) + override; + + future> + DeleteSchedule(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request) override; + StatusOr CreateSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request) + override; + + future> CreateSchedule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request) override; + StatusOr TriggerSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request) + override; + + future> TriggerSchedule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request) + override; + + future> + DeleteExecution(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request) override; + StatusOr CreateExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request) + override; + + future> CreateExecution( + google::cloud::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..5705c1ce2b36e 100644 --- a/google/cloud/notebooks/v1/internal/notebook_tracing_connection.cc +++ b/google/cloud/notebooks/v1/internal/notebook_tracing_connection.cc @@ -62,6 +62,30 @@ NotebookServiceTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +NotebookServiceTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request) { @@ -71,6 +95,30 @@ NotebookServiceTracingConnection::RegisterInstance( return internal::EndSpan(std::move(span), child_->RegisterInstance(request)); } +StatusOr +NotebookServiceTracingConnection::RegisterInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::RegisterInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& @@ -82,6 +130,31 @@ NotebookServiceTracingConnection::SetInstanceAccelerator( child_->SetInstanceAccelerator(request)); } +StatusOr +NotebookServiceTracingConnection::SetInstanceAccelerator( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::SetInstanceAccelerator( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& @@ -93,6 +166,31 @@ NotebookServiceTracingConnection::SetInstanceMachineType( child_->SetInstanceMachineType(request)); } +StatusOr +NotebookServiceTracingConnection::SetInstanceMachineType( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::SetInstanceMachineType( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) { @@ -103,6 +201,30 @@ NotebookServiceTracingConnection::UpdateInstanceConfig( child_->UpdateInstanceConfig(request)); } +StatusOr +NotebookServiceTracingConnection::UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpdateInstanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& @@ -114,6 +236,31 @@ NotebookServiceTracingConnection::UpdateShieldedInstanceConfig( child_->UpdateShieldedInstanceConfig(request)); } +StatusOr +NotebookServiceTracingConnection::UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpdateShieldedInstanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) { @@ -123,6 +270,30 @@ NotebookServiceTracingConnection::SetInstanceLabels( return internal::EndSpan(std::move(span), child_->SetInstanceLabels(request)); } +StatusOr +NotebookServiceTracingConnection::SetInstanceLabels( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::SetInstanceLabels( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::UpdateInstanceMetadataItems( google::cloud::notebooks::v1::UpdateInstanceMetadataItemsRequest const& @@ -142,6 +313,30 @@ NotebookServiceTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request) { @@ -151,6 +346,30 @@ NotebookServiceTracingConnection::StartInstance( return internal::EndSpan(std::move(span), child_->StartInstance(request)); } +StatusOr +NotebookServiceTracingConnection::StartInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StartInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const& request) { @@ -160,6 +379,30 @@ NotebookServiceTracingConnection::StopInstance( return internal::EndSpan(std::move(span), child_->StopInstance(request)); } +StatusOr +NotebookServiceTracingConnection::StopInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StopInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::ResetInstance( google::cloud::notebooks::v1::ResetInstanceRequest const& request) { @@ -169,6 +412,30 @@ NotebookServiceTracingConnection::ResetInstance( return internal::EndSpan(std::move(span), child_->ResetInstance(request)); } +StatusOr +NotebookServiceTracingConnection::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::ResetInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::ReportInstanceInfo( google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) { @@ -179,6 +446,30 @@ NotebookServiceTracingConnection::ReportInstanceInfo( child_->ReportInstanceInfo(request)); } +StatusOr +NotebookServiceTracingConnection::ReportInstanceInfo( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::ReportInstanceInfo( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::IsInstanceUpgradeable( google::cloud::notebooks::v1::IsInstanceUpgradeableRequest const& request) { @@ -206,6 +497,30 @@ NotebookServiceTracingConnection::UpgradeInstance( return internal::EndSpan(std::move(span), child_->UpgradeInstance(request)); } +StatusOr +NotebookServiceTracingConnection::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpgradeInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request) { @@ -215,6 +530,30 @@ NotebookServiceTracingConnection::RollbackInstance( return internal::EndSpan(std::move(span), child_->RollbackInstance(request)); } +StatusOr +NotebookServiceTracingConnection::RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::RollbackInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) { @@ -224,6 +563,30 @@ NotebookServiceTracingConnection::DiagnoseInstance( return internal::EndSpan(std::move(span), child_->DiagnoseInstance(request)); } +StatusOr +NotebookServiceTracingConnection::DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DiagnoseInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& @@ -235,6 +598,31 @@ NotebookServiceTracingConnection::UpgradeInstanceInternal( child_->UpgradeInstanceInternal(request)); } +StatusOr +NotebookServiceTracingConnection::UpgradeInstanceInternal( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpgradeInstanceInternal( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NotebookServiceTracingConnection::ListEnvironments( google::cloud::notebooks::v1::ListEnvironmentsRequest request) { @@ -265,6 +653,30 @@ NotebookServiceTracingConnection::CreateEnvironment( return internal::EndSpan(std::move(span), child_->CreateEnvironment(request)); } +StatusOr +NotebookServiceTracingConnection::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) { @@ -274,6 +686,30 @@ NotebookServiceTracingConnection::DeleteEnvironment( return internal::EndSpan(std::move(span), child_->DeleteEnvironment(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NotebookServiceTracingConnection::ListSchedules( google::cloud::notebooks::v1::ListSchedulesRequest request) { @@ -303,6 +739,30 @@ NotebookServiceTracingConnection::DeleteSchedule( return internal::EndSpan(std::move(span), child_->DeleteSchedule(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteSchedule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request) { @@ -312,6 +772,30 @@ NotebookServiceTracingConnection::CreateSchedule( return internal::EndSpan(std::move(span), child_->CreateSchedule(request)); } +StatusOr +NotebookServiceTracingConnection::CreateSchedule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateSchedule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request) { @@ -321,6 +805,30 @@ NotebookServiceTracingConnection::TriggerSchedule( return internal::EndSpan(std::move(span), child_->TriggerSchedule(request)); } +StatusOr +NotebookServiceTracingConnection::TriggerSchedule( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::TriggerSchedule( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange NotebookServiceTracingConnection::ListExecutions( google::cloud::notebooks::v1::ListExecutionsRequest request) { @@ -350,6 +858,30 @@ NotebookServiceTracingConnection::DeleteExecution( return internal::EndSpan(std::move(span), child_->DeleteExecution(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteExecution( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request) { @@ -359,6 +891,30 @@ NotebookServiceTracingConnection::CreateExecution( return internal::EndSpan(std::move(span), child_->CreateExecution(request)); } +StatusOr +NotebookServiceTracingConnection::CreateExecution( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateExecution( + google::cloud::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(google::cloud::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..231d39450393e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request) override; + StatusOr RegisterInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request) + override; + + future> RegisterInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& request) override; + StatusOr SetInstanceAccelerator( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request) override; + + future> + SetInstanceAccelerator( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& request) override; + StatusOr SetInstanceMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request) override; + + future> + SetInstanceMachineType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request) + override; + + future> UpdateInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& request) override; + StatusOr UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request) override; + + future> + UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) override; + StatusOr SetInstanceLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request) + override; + + future> SetInstanceLabels( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request) override; + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request) + override; + + future> StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const& request) override; + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request) + override; + + future> StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetInstance( google::cloud::notebooks::v1::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request) + override; + + future> ResetInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReportInstanceInfo( google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) override; + StatusOr ReportInstanceInfo( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request) + override; + + future> ReportInstanceInfo( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request) + override; + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request) override; + StatusOr RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request) + override; + + future> RollbackInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) override; + StatusOr DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request) + override; + + future> DiagnoseInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& request) override; + StatusOr UpgradeInstanceInternal( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request) override; + + future> + UpgradeInstanceInternal( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request) + override; + + future> CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) override; + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request) + override; + + future> + DeleteEnvironment(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request) + override; + + future> + DeleteSchedule(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request) override; + StatusOr CreateSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request) + override; + + future> CreateSchedule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request) override; + StatusOr TriggerSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request) + override; + + future> TriggerSchedule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request) + override; + + future> + DeleteExecution(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request) override; + StatusOr CreateExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request) + override; + + future> CreateExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/notebooks/v1/managed_notebook_client.cc b/google/cloud/notebooks/v1/managed_notebook_client.cc index b514699da1e29..604ef6e728372 100644 --- a/google/cloud/notebooks/v1/managed_notebook_client.cc +++ b/google/cloud/notebooks/v1/managed_notebook_client.cc @@ -77,6 +77,20 @@ ManagedNotebookServiceClient::CreateRuntime( return connection_->CreateRuntime(request); } +StatusOr +ManagedNotebookServiceClient::CreateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& runtime_id, + google::cloud::notebooks::v1::Runtime const& runtime, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::CreateRuntimeRequest request; + request.set_parent(parent); + request.set_runtime_id(runtime_id); + *request.mutable_runtime() = runtime; + return connection_->CreateRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::CreateRuntime( google::cloud::notebooks::v1::CreateRuntimeRequest const& request, @@ -85,6 +99,25 @@ ManagedNotebookServiceClient::CreateRuntime( return connection_->CreateRuntime(request); } +StatusOr +ManagedNotebookServiceClient::CreateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::CreateRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRuntime(google::cloud::ExperimentalTag{}, + operation); +} + future> ManagedNotebookServiceClient::UpdateRuntime( google::cloud::notebooks::v1::Runtime const& runtime, @@ -96,6 +129,19 @@ ManagedNotebookServiceClient::UpdateRuntime( return connection_->UpdateRuntime(request); } +StatusOr +ManagedNotebookServiceClient::UpdateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::Runtime const& runtime, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::UpdateRuntimeRequest request; + *request.mutable_runtime() = runtime; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::UpdateRuntime( google::cloud::notebooks::v1::UpdateRuntimeRequest const& request, @@ -104,6 +150,25 @@ ManagedNotebookServiceClient::UpdateRuntime( return connection_->UpdateRuntime(request); } +StatusOr +ManagedNotebookServiceClient::UpdateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::UpdateRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRuntime(google::cloud::ExperimentalTag{}, + operation); +} + future> ManagedNotebookServiceClient::DeleteRuntime(std::string const& name, Options opts) { @@ -113,6 +178,18 @@ ManagedNotebookServiceClient::DeleteRuntime(std::string const& name, return connection_->DeleteRuntime(request); } +StatusOr +ManagedNotebookServiceClient::DeleteRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::DeleteRuntimeRequest request; + request.set_name(name); + return connection_->DeleteRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::DeleteRuntime( google::cloud::notebooks::v1::DeleteRuntimeRequest const& request, @@ -121,6 +198,25 @@ ManagedNotebookServiceClient::DeleteRuntime( return connection_->DeleteRuntime(request); } +StatusOr +ManagedNotebookServiceClient::DeleteRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::DeleteRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRuntime(google::cloud::ExperimentalTag{}, + operation); +} + future> ManagedNotebookServiceClient::StartRuntime(std::string const& name, Options opts) { @@ -130,6 +226,18 @@ ManagedNotebookServiceClient::StartRuntime(std::string const& name, return connection_->StartRuntime(request); } +StatusOr +ManagedNotebookServiceClient::StartRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::StartRuntimeRequest request; + request.set_name(name); + return connection_->StartRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::StartRuntime( google::cloud::notebooks::v1::StartRuntimeRequest const& request, @@ -138,6 +246,24 @@ ManagedNotebookServiceClient::StartRuntime( return connection_->StartRuntime(request); } +StatusOr +ManagedNotebookServiceClient::StartRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::StartRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartRuntime(google::cloud::ExperimentalTag{}, operation); +} + future> ManagedNotebookServiceClient::StopRuntime(std::string const& name, Options opts) { @@ -147,6 +273,18 @@ ManagedNotebookServiceClient::StopRuntime(std::string const& name, return connection_->StopRuntime(request); } +StatusOr +ManagedNotebookServiceClient::StopRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::StopRuntimeRequest request; + request.set_name(name); + return connection_->StopRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::StopRuntime( google::cloud::notebooks::v1::StopRuntimeRequest const& request, @@ -155,6 +293,24 @@ ManagedNotebookServiceClient::StopRuntime( return connection_->StopRuntime(request); } +StatusOr +ManagedNotebookServiceClient::StopRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::StopRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopRuntime(google::cloud::ExperimentalTag{}, operation); +} + future> ManagedNotebookServiceClient::SwitchRuntime(std::string const& name, Options opts) { @@ -164,6 +320,18 @@ ManagedNotebookServiceClient::SwitchRuntime(std::string const& name, return connection_->SwitchRuntime(request); } +StatusOr +ManagedNotebookServiceClient::SwitchRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::SwitchRuntimeRequest request; + request.set_name(name); + return connection_->SwitchRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::SwitchRuntime( google::cloud::notebooks::v1::SwitchRuntimeRequest const& request, @@ -172,6 +340,25 @@ ManagedNotebookServiceClient::SwitchRuntime( return connection_->SwitchRuntime(request); } +StatusOr +ManagedNotebookServiceClient::SwitchRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SwitchRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::SwitchRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SwitchRuntime(google::cloud::ExperimentalTag{}, + operation); +} + future> ManagedNotebookServiceClient::ResetRuntime(std::string const& name, Options opts) { @@ -181,6 +368,18 @@ ManagedNotebookServiceClient::ResetRuntime(std::string const& name, return connection_->ResetRuntime(request); } +StatusOr +ManagedNotebookServiceClient::ResetRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::ResetRuntimeRequest request; + request.set_name(name); + return connection_->ResetRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::ResetRuntime( google::cloud::notebooks::v1::ResetRuntimeRequest const& request, @@ -189,6 +388,24 @@ ManagedNotebookServiceClient::ResetRuntime( return connection_->ResetRuntime(request); } +StatusOr +ManagedNotebookServiceClient::ResetRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::ResetRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetRuntime(google::cloud::ExperimentalTag{}, operation); +} + future> ManagedNotebookServiceClient::UpgradeRuntime(std::string const& name, Options opts) { @@ -198,6 +415,18 @@ ManagedNotebookServiceClient::UpgradeRuntime(std::string const& name, return connection_->UpgradeRuntime(request); } +StatusOr +ManagedNotebookServiceClient::UpgradeRuntime(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::UpgradeRuntimeRequest request; + request.set_name(name); + return connection_->UpgradeRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::UpgradeRuntime( google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request, @@ -206,6 +435,25 @@ ManagedNotebookServiceClient::UpgradeRuntime( return connection_->UpgradeRuntime(request); } +StatusOr +ManagedNotebookServiceClient::UpgradeRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::UpgradeRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeRuntime(google::cloud::ExperimentalTag{}, + operation); +} + future> ManagedNotebookServiceClient::ReportRuntimeEvent(std::string const& name, Options opts) { @@ -215,6 +463,18 @@ ManagedNotebookServiceClient::ReportRuntimeEvent(std::string const& name, return connection_->ReportRuntimeEvent(request); } +StatusOr +ManagedNotebookServiceClient::ReportRuntimeEvent(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::ReportRuntimeEventRequest request; + request.set_name(name); + return connection_->ReportRuntimeEvent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::ReportRuntimeEvent( google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request, @@ -223,6 +483,25 @@ ManagedNotebookServiceClient::ReportRuntimeEvent( return connection_->ReportRuntimeEvent(request); } +StatusOr +ManagedNotebookServiceClient::ReportRuntimeEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReportRuntimeEvent(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::ReportRuntimeEvent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReportRuntimeEvent(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ManagedNotebookServiceClient::RefreshRuntimeTokenInternal( std::string const& name, std::string const& vm_id, Options opts) { @@ -254,6 +533,20 @@ ManagedNotebookServiceClient::DiagnoseRuntime( return connection_->DiagnoseRuntime(request); } +StatusOr +ManagedNotebookServiceClient::DiagnoseRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::notebooks::v1::DiagnosticConfig const& diagnostic_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::DiagnoseRuntimeRequest request; + request.set_name(name); + *request.mutable_diagnostic_config() = diagnostic_config; + return connection_->DiagnoseRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ManagedNotebookServiceClient::DiagnoseRuntime( google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request, @@ -262,6 +555,25 @@ ManagedNotebookServiceClient::DiagnoseRuntime( return connection_->DiagnoseRuntime(request); } +StatusOr +ManagedNotebookServiceClient::DiagnoseRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DiagnoseRuntime(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ManagedNotebookServiceClient::DiagnoseRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DiagnoseRuntime(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace notebooks_v1 } // namespace cloud diff --git a/google/cloud/notebooks/v1/managed_notebook_client.h b/google/cloud/notebooks/v1/managed_notebook_client.h index d9392d0e89da8..2ea2cbbcb6a0c 100644 --- a/google/cloud/notebooks/v1/managed_notebook_client.h +++ b/google/cloud/notebooks/v1/managed_notebook_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NOTEBOOKS_V1_MANAGED_NOTEBOOK_CLIENT_H #include "google/cloud/notebooks/v1/managed_notebook_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -259,6 +261,11 @@ class ManagedNotebookServiceClient { std::string const& parent, std::string const& runtime_id, google::cloud::notebooks::v1::Runtime const& runtime, Options opts = {}); + StatusOr CreateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& runtime_id, + google::cloud::notebooks::v1::Runtime const& runtime, Options opts = {}); + // clang-format off /// /// Creates a new Runtime in a given project and location. @@ -297,6 +304,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::CreateRuntimeRequest const& request, Options opts = {}); + StatusOr CreateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request, + Options opts = {}); + + future> CreateRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Update Notebook Runtime configuration. @@ -337,6 +353,11 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::Runtime const& runtime, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::Runtime const& runtime, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update Notebook Runtime configuration. @@ -375,6 +396,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::UpdateRuntimeRequest const& request, Options opts = {}); + StatusOr UpdateRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request, + Options opts = {}); + + future> UpdateRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Runtime. @@ -408,6 +438,10 @@ class ManagedNotebookServiceClient { future> DeleteRuntime(std::string const& name, Options opts = {}); + StatusOr DeleteRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Runtime. @@ -447,6 +481,16 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::DeleteRuntimeRequest const& request, Options opts = {}); + StatusOr DeleteRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request, + Options opts = {}); + + future> + DeleteRuntime(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts a Managed Notebook Runtime. @@ -484,6 +528,10 @@ class ManagedNotebookServiceClient { future> StartRuntime( std::string const& name, Options opts = {}); + StatusOr StartRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Starts a Managed Notebook Runtime. @@ -526,6 +574,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::StartRuntimeRequest const& request, Options opts = {}); + StatusOr StartRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request, + Options opts = {}); + + future> StartRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Stops a Managed Notebook Runtime. @@ -563,6 +620,10 @@ class ManagedNotebookServiceClient { future> StopRuntime( std::string const& name, Options opts = {}); + StatusOr StopRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Stops a Managed Notebook Runtime. @@ -605,6 +666,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::StopRuntimeRequest const& request, Options opts = {}); + StatusOr StopRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request, + Options opts = {}); + + future> StopRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Switch a Managed Notebook Runtime. @@ -638,6 +708,10 @@ class ManagedNotebookServiceClient { future> SwitchRuntime( std::string const& name, Options opts = {}); + StatusOr SwitchRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Switch a Managed Notebook Runtime. @@ -676,6 +750,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::SwitchRuntimeRequest const& request, Options opts = {}); + StatusOr SwitchRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request, + Options opts = {}); + + future> SwitchRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Resets a Managed Notebook Runtime. @@ -709,6 +792,10 @@ class ManagedNotebookServiceClient { future> ResetRuntime( std::string const& name, Options opts = {}); + StatusOr ResetRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Resets a Managed Notebook Runtime. @@ -747,6 +834,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::ResetRuntimeRequest const& request, Options opts = {}); + StatusOr ResetRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request, + Options opts = {}); + + future> ResetRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Upgrades a Managed Notebook Runtime to the latest version. @@ -780,6 +876,10 @@ class ManagedNotebookServiceClient { future> UpgradeRuntime( std::string const& name, Options opts = {}); + StatusOr UpgradeRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Upgrades a Managed Notebook Runtime to the latest version. @@ -818,6 +918,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request, Options opts = {}); + StatusOr UpgradeRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request, + Options opts = {}); + + future> UpgradeRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Report and process a runtime event. @@ -851,6 +960,10 @@ class ManagedNotebookServiceClient { future> ReportRuntimeEvent( std::string const& name, Options opts = {}); + StatusOr ReportRuntimeEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Report and process a runtime event. @@ -889,6 +1002,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request, Options opts = {}); + StatusOr ReportRuntimeEvent( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request, + Options opts = {}); + + future> ReportRuntimeEvent( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets an access token for the consumer service account that the customer @@ -989,6 +1111,12 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::DiagnosticConfig const& diagnostic_config, Options opts = {}); + StatusOr DiagnoseRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::notebooks::v1::DiagnosticConfig const& diagnostic_config, + Options opts = {}); + // clang-format off /// /// Creates a Diagnostic File and runs Diagnostic Tool given a Runtime. @@ -1027,6 +1155,15 @@ class ManagedNotebookServiceClient { google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request, Options opts = {}); + StatusOr DiagnoseRuntime( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request, + Options opts = {}); + + future> DiagnoseRuntime( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..dad9c84645bb3 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateRuntime, (google::cloud::notebooks::v1::UpdateRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRuntime, (google::cloud::notebooks::v1::DeleteRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartRuntime, (google::cloud::notebooks::v1::StartRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopRuntime, (google::cloud::notebooks::v1::StopRuntimeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StopRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SwitchRuntime, (google::cloud::notebooks::v1::SwitchRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SwitchRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SwitchRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + SwitchRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResetRuntime, (google::cloud::notebooks::v1::ResetRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResetRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResetRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpgradeRuntime, (google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpgradeRuntime, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeRuntime, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReportRuntimeEvent, (google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReportRuntimeEvent, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportRuntimeEventRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReportRuntimeEvent, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseRuntimeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DiagnoseRuntime, + (google::cloud::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..8d7f790622d81 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RegisterInstance, (google::cloud::notebooks::v1::RegisterInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RegisterInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RegisterInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetInstanceAccelerator, @@ -74,6 +98,19 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, SetInstanceAccelerator, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetInstanceAccelerator, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetInstanceMachineType, @@ -81,12 +118,37 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, SetInstanceMachineType, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request), + (override)); + + MOCK_METHOD(future>, + SetInstanceMachineType, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateInstanceConfig, (google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateInstanceConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateInstanceConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateShieldedInstanceConfig, @@ -94,12 +156,37 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateShieldedInstanceConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateShieldedInstanceConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, SetInstanceLabels, (google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SetInstanceLabels, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetInstanceLabels, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartInstance, (google::cloud::notebooks::v1::StartInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopInstance, (google::cloud::notebooks::v1::StopInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResetInstance, (google::cloud::notebooks::v1::ResetInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResetInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResetInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ReportInstanceInfo, (google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ReportInstanceInfo, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request), + (override)); + + MOCK_METHOD(future>, + ReportInstanceInfo, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RollbackInstance, (google::cloud::notebooks::v1::RollbackInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RollbackInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RollbackInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DiagnoseInstance, (google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DiagnoseInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DiagnoseInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpgradeInstanceInternal, @@ -172,6 +355,19 @@ class MockNotebookServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpgradeInstanceInternal, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpgradeInstanceInternal, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEnvironment, (google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteEnvironment, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteSchedule, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateSchedule, (google::cloud::notebooks::v1::CreateScheduleRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSchedule, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSchedule, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, TriggerSchedule, (google::cloud::notebooks::v1::TriggerScheduleRequest const& request), (override)); + MOCK_METHOD( + StatusOr, TriggerSchedule, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request), + (override)); + + MOCK_METHOD(future>, + TriggerSchedule, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteExecution, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateExecution, (google::cloud::notebooks::v1::CreateExecutionRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, CreateExecution, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateExecution, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/notebooks/v1/notebook_client.cc b/google/cloud/notebooks/v1/notebook_client.cc index 9f7215463f712..adb519204976e 100644 --- a/google/cloud/notebooks/v1/notebook_client.cc +++ b/google/cloud/notebooks/v1/notebook_client.cc @@ -76,6 +76,20 @@ NotebookServiceClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr NotebookServiceClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v1::Instance const& instance, + std::string const& instance_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::CreateInstanceRequest request; + request.set_parent(parent); + *request.mutable_instance() = instance; + request.set_instance_id(instance_id); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::CreateInstance( google::cloud::notebooks::v1::CreateInstanceRequest const& request, @@ -84,6 +98,24 @@ NotebookServiceClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr NotebookServiceClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::RegisterInstance( google::cloud::notebooks::v1::RegisterInstanceRequest const& request, @@ -92,6 +124,25 @@ NotebookServiceClient::RegisterInstance( return connection_->RegisterInstance(request); } +StatusOr +NotebookServiceClient::RegisterInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RegisterInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::RegisterInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RegisterInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::SetInstanceAccelerator( google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& request, @@ -100,6 +151,25 @@ NotebookServiceClient::SetInstanceAccelerator( return connection_->SetInstanceAccelerator(request); } +StatusOr +NotebookServiceClient::SetInstanceAccelerator( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceAccelerator( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::SetInstanceAccelerator( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceAccelerator(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::SetInstanceMachineType( google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& request, @@ -108,6 +178,25 @@ NotebookServiceClient::SetInstanceMachineType( return connection_->SetInstanceMachineType(request); } +StatusOr +NotebookServiceClient::SetInstanceMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceMachineType( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::SetInstanceMachineType( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceMachineType(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::UpdateInstanceConfig( google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request, @@ -116,6 +205,25 @@ NotebookServiceClient::UpdateInstanceConfig( return connection_->UpdateInstanceConfig(request); } +StatusOr +NotebookServiceClient::UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::UpdateInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstanceConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::UpdateShieldedInstanceConfig( google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& @@ -125,6 +233,26 @@ NotebookServiceClient::UpdateShieldedInstanceConfig( return connection_->UpdateShieldedInstanceConfig(request); } +StatusOr +NotebookServiceClient::UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag{}, operation); +} + future> NotebookServiceClient::SetInstanceLabels( google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request, @@ -133,6 +261,25 @@ NotebookServiceClient::SetInstanceLabels( return connection_->SetInstanceLabels(request); } +StatusOr +NotebookServiceClient::SetInstanceLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceLabels(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::SetInstanceLabels( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInstanceLabels(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NotebookServiceClient::UpdateInstanceMetadataItems( google::cloud::notebooks::v1::UpdateInstanceMetadataItemsRequest const& @@ -150,6 +297,16 @@ NotebookServiceClient::DeleteInstance(std::string const& name, Options opts) { return connection_->DeleteInstance(request); } +StatusOr NotebookServiceClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::DeleteInstanceRequest request; + request.set_name(name); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DeleteInstance( google::cloud::notebooks::v1::DeleteInstanceRequest const& request, @@ -158,6 +315,24 @@ NotebookServiceClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr NotebookServiceClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::StartInstance( google::cloud::notebooks::v1::StartInstanceRequest const& request, @@ -166,6 +341,24 @@ NotebookServiceClient::StartInstance( return connection_->StartInstance(request); } +StatusOr NotebookServiceClient::StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::StopInstance( google::cloud::notebooks::v1::StopInstanceRequest const& request, @@ -174,6 +367,23 @@ NotebookServiceClient::StopInstance( return connection_->StopInstance(request); } +StatusOr NotebookServiceClient::StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopInstance(google::cloud::ExperimentalTag{}, operation); +} + future> NotebookServiceClient::ResetInstance( google::cloud::notebooks::v1::ResetInstanceRequest const& request, @@ -182,6 +392,24 @@ NotebookServiceClient::ResetInstance( return connection_->ResetInstance(request); } +StatusOr NotebookServiceClient::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::ResetInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::ReportInstanceInfo( google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request, @@ -190,6 +418,25 @@ NotebookServiceClient::ReportInstanceInfo( return connection_->ReportInstanceInfo(request); } +StatusOr +NotebookServiceClient::ReportInstanceInfo( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReportInstanceInfo(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::ReportInstanceInfo( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReportInstanceInfo(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NotebookServiceClient::IsInstanceUpgradeable( google::cloud::notebooks::v1::IsInstanceUpgradeableRequest const& request, @@ -223,6 +470,24 @@ NotebookServiceClient::UpgradeInstance( return connection_->UpgradeInstance(request); } +StatusOr NotebookServiceClient::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::RollbackInstance( google::cloud::notebooks::v1::RollbackInstanceRequest const& request, @@ -231,6 +496,25 @@ NotebookServiceClient::RollbackInstance( return connection_->RollbackInstance(request); } +StatusOr +NotebookServiceClient::RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RollbackInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::RollbackInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RollbackInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::DiagnoseInstance( std::string const& name, @@ -243,6 +527,20 @@ NotebookServiceClient::DiagnoseInstance( return connection_->DiagnoseInstance(request); } +StatusOr +NotebookServiceClient::DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::notebooks::v1::DiagnosticConfig const& diagnostic_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::DiagnoseInstanceRequest request; + request.set_name(name); + *request.mutable_diagnostic_config() = diagnostic_config; + return connection_->DiagnoseInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DiagnoseInstance( google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request, @@ -251,6 +549,25 @@ NotebookServiceClient::DiagnoseInstance( return connection_->DiagnoseInstance(request); } +StatusOr +NotebookServiceClient::DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DiagnoseInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DiagnoseInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DiagnoseInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::UpgradeInstanceInternal( google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& request, @@ -259,6 +576,25 @@ NotebookServiceClient::UpgradeInstanceInternal( return connection_->UpgradeInstanceInternal(request); } +StatusOr +NotebookServiceClient::UpgradeInstanceInternal( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeInstanceInternal( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::UpgradeInstanceInternal( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeInstanceInternal(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NotebookServiceClient::ListEnvironments(std::string const& parent, Options opts) { @@ -305,6 +641,21 @@ NotebookServiceClient::CreateEnvironment( return connection_->CreateEnvironment(request); } +StatusOr +NotebookServiceClient::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v1::Environment const& environment, + std::string const& environment_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::CreateEnvironmentRequest request; + request.set_parent(parent); + *request.mutable_environment() = environment; + request.set_environment_id(environment_id); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::CreateEnvironment( google::cloud::notebooks::v1::CreateEnvironmentRequest const& request, @@ -313,6 +664,25 @@ NotebookServiceClient::CreateEnvironment( return connection_->CreateEnvironment(request); } +StatusOr +NotebookServiceClient::CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::DeleteEnvironment(std::string const& name, Options opts) { @@ -322,6 +692,18 @@ NotebookServiceClient::DeleteEnvironment(std::string const& name, return connection_->DeleteEnvironment(request); } +StatusOr +NotebookServiceClient::DeleteEnvironment(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::DeleteEnvironmentRequest request; + request.set_name(name); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DeleteEnvironment( google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request, @@ -330,6 +712,25 @@ NotebookServiceClient::DeleteEnvironment( return connection_->DeleteEnvironment(request); } +StatusOr +NotebookServiceClient::DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DeleteEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NotebookServiceClient::ListSchedules(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -369,6 +770,16 @@ NotebookServiceClient::DeleteSchedule(std::string const& name, Options opts) { return connection_->DeleteSchedule(request); } +StatusOr NotebookServiceClient::DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::DeleteScheduleRequest request; + request.set_name(name); + return connection_->DeleteSchedule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DeleteSchedule( google::cloud::notebooks::v1::DeleteScheduleRequest const& request, @@ -377,6 +788,24 @@ NotebookServiceClient::DeleteSchedule( return connection_->DeleteSchedule(request); } +StatusOr NotebookServiceClient::DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSchedule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DeleteSchedule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSchedule(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::CreateSchedule( std::string const& parent, @@ -390,6 +819,20 @@ NotebookServiceClient::CreateSchedule( return connection_->CreateSchedule(request); } +StatusOr NotebookServiceClient::CreateSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v1::Schedule const& schedule, + std::string const& schedule_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::CreateScheduleRequest request; + request.set_parent(parent); + *request.mutable_schedule() = schedule; + request.set_schedule_id(schedule_id); + return connection_->CreateSchedule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::CreateSchedule( google::cloud::notebooks::v1::CreateScheduleRequest const& request, @@ -398,6 +841,24 @@ NotebookServiceClient::CreateSchedule( return connection_->CreateSchedule(request); } +StatusOr NotebookServiceClient::CreateSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSchedule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::CreateSchedule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSchedule(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::TriggerSchedule( google::cloud::notebooks::v1::TriggerScheduleRequest const& request, @@ -406,6 +867,24 @@ NotebookServiceClient::TriggerSchedule( return connection_->TriggerSchedule(request); } +StatusOr NotebookServiceClient::TriggerSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TriggerSchedule(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::TriggerSchedule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TriggerSchedule(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange NotebookServiceClient::ListExecutions(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -445,6 +924,16 @@ NotebookServiceClient::DeleteExecution(std::string const& name, Options opts) { return connection_->DeleteExecution(request); } +StatusOr NotebookServiceClient::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::DeleteExecutionRequest request; + request.set_name(name); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DeleteExecution( google::cloud::notebooks::v1::DeleteExecutionRequest const& request, @@ -453,6 +942,24 @@ NotebookServiceClient::DeleteExecution( return connection_->DeleteExecution(request); } +StatusOr NotebookServiceClient::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DeleteExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::CreateExecution( std::string const& parent, @@ -466,6 +973,20 @@ NotebookServiceClient::CreateExecution( return connection_->CreateExecution(request); } +StatusOr NotebookServiceClient::CreateExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v1::Execution const& execution, + std::string const& execution_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v1::CreateExecutionRequest request; + request.set_parent(parent); + *request.mutable_execution() = execution; + request.set_execution_id(execution_id); + return connection_->CreateExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::CreateExecution( google::cloud::notebooks::v1::CreateExecutionRequest const& request, @@ -474,6 +995,24 @@ NotebookServiceClient::CreateExecution( return connection_->CreateExecution(request); } +StatusOr NotebookServiceClient::CreateExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::CreateExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateExecution(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace notebooks_v1 } // namespace cloud diff --git a/google/cloud/notebooks/v1/notebook_client.h b/google/cloud/notebooks/v1/notebook_client.h index 3b78322325c24..e2601579c9ad6 100644 --- a/google/cloud/notebooks/v1/notebook_client.h +++ b/google/cloud/notebooks/v1/notebook_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NOTEBOOKS_V1_NOTEBOOK_CLIENT_H #include "google/cloud/notebooks/v1/notebook_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -256,6 +258,12 @@ class NotebookServiceClient { google::cloud::notebooks::v1::Instance const& instance, std::string const& instance_id, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v1::Instance const& instance, + std::string const& instance_id, Options opts = {}); + // clang-format off /// /// Creates a new Instance in a given project and location. @@ -294,6 +302,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::CreateInstanceRequest const& request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateInstanceRequest const& request, + Options opts = {}); + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Registers an existing legacy notebook instance to the Notebooks API server. @@ -335,6 +352,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::RegisterInstanceRequest const& request, Options opts = {}); + StatusOr RegisterInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RegisterInstanceRequest const& request, + Options opts = {}); + + future> RegisterInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the guest accelerators of a single Instance. @@ -375,6 +401,17 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr SetInstanceAccelerator( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceAcceleratorRequest const& + request, + Options opts = {}); + + future> + SetInstanceAccelerator(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the machine type of a single Instance. @@ -415,6 +452,17 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr SetInstanceMachineType( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceMachineTypeRequest const& + request, + Options opts = {}); + + future> + SetInstanceMachineType(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Update Notebook Instance configurations. @@ -453,6 +501,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request, Options opts = {}); + StatusOr UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateInstanceConfigRequest const& request, + Options opts = {}); + + future> UpdateInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the Shielded instance configuration of a single Instance. @@ -493,6 +550,17 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr UpdateShieldedInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpdateShieldedInstanceConfigRequest const& + request, + Options opts = {}); + + future> + UpdateShieldedInstanceConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Replaces all the labels of an Instance. @@ -531,6 +599,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request, Options opts = {}); + StatusOr SetInstanceLabels( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::SetInstanceLabelsRequest const& request, + Options opts = {}); + + future> SetInstanceLabels( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Add/update metadata items for an instance. @@ -597,6 +674,10 @@ class NotebookServiceClient { future> DeleteInstance(std::string const& name, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Instance. @@ -636,6 +717,16 @@ class NotebookServiceClient { google::cloud::notebooks::v1::DeleteInstanceRequest const& request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteInstanceRequest const& request, + Options opts = {}); + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts a notebook instance. @@ -674,6 +765,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::StartInstanceRequest const& request, Options opts = {}); + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StartInstanceRequest const& request, + Options opts = {}); + + future> StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Stops a notebook instance. @@ -712,6 +812,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::StopInstanceRequest const& request, Options opts = {}); + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::StopInstanceRequest const& request, + Options opts = {}); + + future> StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Resets a notebook instance. @@ -750,6 +859,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::ResetInstanceRequest const& request, Options opts = {}); + StatusOr ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ResetInstanceRequest const& request, + Options opts = {}); + + future> ResetInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Allows notebook instances to @@ -791,6 +909,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request, Options opts = {}); + StatusOr ReportInstanceInfo( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::ReportInstanceInfoRequest const& request, + Options opts = {}); + + future> ReportInstanceInfo( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Check if a notebook instance is upgradable. @@ -919,6 +1046,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::UpgradeInstanceRequest const& request, Options opts = {}); + StatusOr UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceRequest const& request, + Options opts = {}); + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Rollbacks a notebook instance to the previous version. @@ -957,6 +1093,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::RollbackInstanceRequest const& request, Options opts = {}); + StatusOr RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::RollbackInstanceRequest const& request, + Options opts = {}); + + future> RollbackInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a Diagnostic File and runs Diagnostic Tool given an Instance. @@ -993,6 +1138,12 @@ class NotebookServiceClient { google::cloud::notebooks::v1::DiagnosticConfig const& diagnostic_config, Options opts = {}); + StatusOr DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::notebooks::v1::DiagnosticConfig const& diagnostic_config, + Options opts = {}); + // clang-format off /// /// Creates a Diagnostic File and runs Diagnostic Tool given an Instance. @@ -1031,6 +1182,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request, Options opts = {}); + StatusOr DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DiagnoseInstanceRequest const& request, + Options opts = {}); + + future> DiagnoseInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Allows notebook instances to @@ -1072,6 +1232,17 @@ class NotebookServiceClient { request, Options opts = {}); + StatusOr UpgradeInstanceInternal( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::UpgradeInstanceInternalRequest const& + request, + Options opts = {}); + + future> + UpgradeInstanceInternal(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists environments in a project. @@ -1242,6 +1413,12 @@ class NotebookServiceClient { google::cloud::notebooks::v1::Environment const& environment, std::string const& environment_id, Options opts = {}); + StatusOr CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v1::Environment const& environment, + std::string const& environment_id, Options opts = {}); + // clang-format off /// /// Creates a new Environment. @@ -1280,6 +1457,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::CreateEnvironmentRequest const& request, Options opts = {}); + StatusOr CreateEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateEnvironmentRequest const& request, + Options opts = {}); + + future> CreateEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Environment. @@ -1313,6 +1499,10 @@ class NotebookServiceClient { future> DeleteEnvironment(std::string const& name, Options opts = {}); + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Environment. @@ -1352,6 +1542,16 @@ class NotebookServiceClient { google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request, Options opts = {}); + StatusOr DeleteEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteEnvironmentRequest const& request, + Options opts = {}); + + future> + DeleteEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists schedules in a given project and location. @@ -1517,6 +1717,10 @@ class NotebookServiceClient { future> DeleteSchedule(std::string const& name, Options opts = {}); + StatusOr DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes schedule and all underlying jobs @@ -1556,6 +1760,16 @@ class NotebookServiceClient { google::cloud::notebooks::v1::DeleteScheduleRequest const& request, Options opts = {}); + StatusOr DeleteSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteScheduleRequest const& request, + Options opts = {}); + + future> + DeleteSchedule(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new Scheduled Notebook in a given project and location. @@ -1593,6 +1807,12 @@ class NotebookServiceClient { google::cloud::notebooks::v1::Schedule const& schedule, std::string const& schedule_id, Options opts = {}); + StatusOr CreateSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v1::Schedule const& schedule, + std::string const& schedule_id, Options opts = {}); + // clang-format off /// /// Creates a new Scheduled Notebook in a given project and location. @@ -1631,6 +1851,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::CreateScheduleRequest const& request, Options opts = {}); + StatusOr CreateSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateScheduleRequest const& request, + Options opts = {}); + + future> CreateSchedule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Triggers execution of an existing schedule. @@ -1669,6 +1898,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::TriggerScheduleRequest const& request, Options opts = {}); + StatusOr TriggerSchedule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::TriggerScheduleRequest const& request, + Options opts = {}); + + future> TriggerSchedule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists executions in a given project and location @@ -1834,6 +2072,10 @@ class NotebookServiceClient { future> DeleteExecution(std::string const& name, Options opts = {}); + StatusOr DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes execution @@ -1873,6 +2115,16 @@ class NotebookServiceClient { google::cloud::notebooks::v1::DeleteExecutionRequest const& request, Options opts = {}); + StatusOr DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::DeleteExecutionRequest const& request, + Options opts = {}); + + future> + DeleteExecution(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new Execution in a given project and location. @@ -1910,6 +2162,12 @@ class NotebookServiceClient { google::cloud::notebooks::v1::Execution const& execution, std::string const& execution_id, Options opts = {}); + StatusOr CreateExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v1::Execution const& execution, + std::string const& execution_id, Options opts = {}); + // clang-format off /// /// Creates a new Execution in a given project and location. @@ -1948,6 +2206,15 @@ class NotebookServiceClient { google::cloud::notebooks::v1::CreateExecutionRequest const& request, Options opts = {}); + StatusOr CreateExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v1::CreateExecutionRequest const& request, + Options opts = {}); + + future> CreateExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..01365da4d79e8 100644 --- a/google/cloud/notebooks/v2/internal/notebook_connection_impl.cc +++ b/google/cloud/notebooks/v2/internal/notebook_connection_impl.cc @@ -153,6 +153,59 @@ NotebookServiceConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +245,59 @@ NotebookServiceConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +337,60 @@ NotebookServiceConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +430,59 @@ NotebookServiceConnectionImpl::StartInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::StartInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +522,58 @@ NotebookServiceConnectionImpl::StopInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::StopInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +613,59 @@ NotebookServiceConnectionImpl::ResetInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +722,59 @@ NotebookServiceConnectionImpl::UpgradeInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +815,59 @@ NotebookServiceConnectionImpl::RollbackInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +908,59 @@ NotebookServiceConnectionImpl::DiagnoseInstance( polling_policy(*current), __func__); } +StatusOr +NotebookServiceConnectionImpl::DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..6e9f00d4e1272 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::notebooks::v2::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request) override; + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request) + override; + + future> StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request) override; + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request) + override; + + future> StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request) + override; + + future> ResetInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) + override; + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request) override; + StatusOr RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request) + override; + + future> RollbackInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) override; + StatusOr DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) + override; + + future> DiagnoseInstance( + google::cloud::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..d15fe797a28f4 100644 --- a/google/cloud/notebooks/v2/internal/notebook_tracing_connection.cc +++ b/google/cloud/notebooks/v2/internal/notebook_tracing_connection.cc @@ -62,6 +62,30 @@ NotebookServiceTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +NotebookServiceTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request) { @@ -71,6 +95,30 @@ NotebookServiceTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +NotebookServiceTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::DeleteInstance( google::cloud::notebooks::v2::DeleteInstanceRequest const& request) { @@ -80,6 +128,30 @@ NotebookServiceTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +NotebookServiceTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request) { @@ -89,6 +161,30 @@ NotebookServiceTracingConnection::StartInstance( return internal::EndSpan(std::move(span), child_->StartInstance(request)); } +StatusOr +NotebookServiceTracingConnection::StartInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StartInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request) { @@ -98,6 +194,30 @@ NotebookServiceTracingConnection::StopInstance( return internal::EndSpan(std::move(span), child_->StopInstance(request)); } +StatusOr +NotebookServiceTracingConnection::StopInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::StopInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request) { @@ -107,6 +227,30 @@ NotebookServiceTracingConnection::ResetInstance( return internal::EndSpan(std::move(span), child_->ResetInstance(request)); } +StatusOr +NotebookServiceTracingConnection::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::ResetInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr NotebookServiceTracingConnection::CheckInstanceUpgradability( google::cloud::notebooks::v2::CheckInstanceUpgradabilityRequest const& @@ -126,6 +270,30 @@ NotebookServiceTracingConnection::UpgradeInstance( return internal::EndSpan(std::move(span), child_->UpgradeInstance(request)); } +StatusOr +NotebookServiceTracingConnection::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::UpgradeInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request) { @@ -135,6 +303,30 @@ NotebookServiceTracingConnection::RollbackInstance( return internal::EndSpan(std::move(span), child_->RollbackInstance(request)); } +StatusOr +NotebookServiceTracingConnection::RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::RollbackInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> NotebookServiceTracingConnection::DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) { @@ -144,6 +336,30 @@ NotebookServiceTracingConnection::DiagnoseInstance( return internal::EndSpan(std::move(span), child_->DiagnoseInstance(request)); } +StatusOr +NotebookServiceTracingConnection::DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +NotebookServiceTracingConnection::DiagnoseInstance( + google::cloud::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(google::cloud::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..33ce4259f16f0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request) + override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request) + override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance(google::cloud::notebooks::v2::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request) + override; + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request) override; + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request) + override; + + future> StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request) override; + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request) + override; + + future> StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request) override; + StatusOr ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request) + override; + + future> ResetInstance( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request) + override; + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request) override; + StatusOr RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request) + override; + + future> RollbackInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) override; + StatusOr DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request) + override; + + future> DiagnoseInstance( + google::cloud::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..8af01e14850bb 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, (google::cloud::notebooks::v2::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteInstance, (google::cloud::notebooks::v2::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartInstance, (google::cloud::notebooks::v2::StartInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopInstance, (google::cloud::notebooks::v2::StopInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResetInstance, (google::cloud::notebooks::v2::ResetInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResetInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + ResetInstance, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RollbackInstance, (google::cloud::notebooks::v2::RollbackInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, RollbackInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RollbackInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DiagnoseInstance, (google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, DiagnoseInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DiagnoseInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/notebooks/v2/notebook_client.cc b/google/cloud/notebooks/v2/notebook_client.cc index 92a5d503441fc..321b62dad0646 100644 --- a/google/cloud/notebooks/v2/notebook_client.cc +++ b/google/cloud/notebooks/v2/notebook_client.cc @@ -76,6 +76,20 @@ NotebookServiceClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr NotebookServiceClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v2::Instance const& instance, + std::string const& instance_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v2::CreateInstanceRequest request; + request.set_parent(parent); + *request.mutable_instance() = instance; + request.set_instance_id(instance_id); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::CreateInstance( google::cloud::notebooks::v2::CreateInstanceRequest const& request, @@ -84,6 +98,24 @@ NotebookServiceClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr NotebookServiceClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::UpdateInstance( google::cloud::notebooks::v2::Instance const& instance, @@ -95,6 +127,18 @@ NotebookServiceClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr NotebookServiceClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v2::UpdateInstanceRequest request; + *request.mutable_instance() = instance; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::UpdateInstance( google::cloud::notebooks::v2::UpdateInstanceRequest const& request, @@ -103,6 +147,24 @@ NotebookServiceClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr NotebookServiceClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::DeleteInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -111,6 +173,16 @@ NotebookServiceClient::DeleteInstance(std::string const& name, Options opts) { return connection_->DeleteInstance(request); } +StatusOr NotebookServiceClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v2::DeleteInstanceRequest request; + request.set_name(name); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DeleteInstance( google::cloud::notebooks::v2::DeleteInstanceRequest const& request, @@ -119,6 +191,24 @@ NotebookServiceClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr NotebookServiceClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::StartInstance( google::cloud::notebooks::v2::StartInstanceRequest const& request, @@ -127,6 +217,24 @@ NotebookServiceClient::StartInstance( return connection_->StartInstance(request); } +StatusOr NotebookServiceClient::StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::StopInstance( google::cloud::notebooks::v2::StopInstanceRequest const& request, @@ -135,6 +243,23 @@ NotebookServiceClient::StopInstance( return connection_->StopInstance(request); } +StatusOr NotebookServiceClient::StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopInstance(google::cloud::ExperimentalTag{}, operation); +} + future> NotebookServiceClient::ResetInstance( google::cloud::notebooks::v2::ResetInstanceRequest const& request, @@ -143,6 +268,24 @@ NotebookServiceClient::ResetInstance( return connection_->ResetInstance(request); } +StatusOr NotebookServiceClient::ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::ResetInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetInstance(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr NotebookServiceClient::CheckInstanceUpgradability( google::cloud::notebooks::v2::CheckInstanceUpgradabilityRequest const& @@ -160,6 +303,24 @@ NotebookServiceClient::UpgradeInstance( return connection_->UpgradeInstance(request); } +StatusOr NotebookServiceClient::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::RollbackInstance( google::cloud::notebooks::v2::RollbackInstanceRequest const& request, @@ -168,6 +329,25 @@ NotebookServiceClient::RollbackInstance( return connection_->RollbackInstance(request); } +StatusOr +NotebookServiceClient::RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RollbackInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::RollbackInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RollbackInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> NotebookServiceClient::DiagnoseInstance( std::string const& name, @@ -180,6 +360,20 @@ NotebookServiceClient::DiagnoseInstance( return connection_->DiagnoseInstance(request); } +StatusOr +NotebookServiceClient::DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::notebooks::v2::DiagnosticConfig const& diagnostic_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::notebooks::v2::DiagnoseInstanceRequest request; + request.set_name(name); + *request.mutable_diagnostic_config() = diagnostic_config; + return connection_->DiagnoseInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> NotebookServiceClient::DiagnoseInstance( google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request, @@ -188,6 +382,25 @@ NotebookServiceClient::DiagnoseInstance( return connection_->DiagnoseInstance(request); } +StatusOr +NotebookServiceClient::DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DiagnoseInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +NotebookServiceClient::DiagnoseInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DiagnoseInstance(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace notebooks_v2 } // namespace cloud diff --git a/google/cloud/notebooks/v2/notebook_client.h b/google/cloud/notebooks/v2/notebook_client.h index 0fbc65f796b05..0438ed06eafc8 100644 --- a/google/cloud/notebooks/v2/notebook_client.h +++ b/google/cloud/notebooks/v2/notebook_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_NOTEBOOKS_V2_NOTEBOOK_CLIENT_H #include "google/cloud/notebooks/v2/notebook_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -256,6 +258,12 @@ class NotebookServiceClient { google::cloud::notebooks::v2::Instance const& instance, std::string const& instance_id, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::notebooks::v2::Instance const& instance, + std::string const& instance_id, Options opts = {}); + // clang-format off /// /// Creates a new Instance in a given project and location. @@ -294,6 +302,15 @@ class NotebookServiceClient { google::cloud::notebooks::v2::CreateInstanceRequest const& request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::CreateInstanceRequest const& request, + Options opts = {}); + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// UpdateInstance updates an Instance. @@ -328,6 +345,11 @@ class NotebookServiceClient { google::cloud::notebooks::v2::Instance const& instance, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::Instance const& instance, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// UpdateInstance updates an Instance. @@ -366,6 +388,15 @@ class NotebookServiceClient { google::cloud::notebooks::v2::UpdateInstanceRequest const& request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpdateInstanceRequest const& request, + Options opts = {}); + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Instance. @@ -399,6 +430,10 @@ class NotebookServiceClient { future> DeleteInstance(std::string const& name, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Instance. @@ -438,6 +473,16 @@ class NotebookServiceClient { google::cloud::notebooks::v2::DeleteInstanceRequest const& request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DeleteInstanceRequest const& request, + Options opts = {}); + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts a notebook instance. @@ -476,6 +521,15 @@ class NotebookServiceClient { google::cloud::notebooks::v2::StartInstanceRequest const& request, Options opts = {}); + StatusOr StartInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StartInstanceRequest const& request, + Options opts = {}); + + future> StartInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Stops a notebook instance. @@ -514,6 +568,15 @@ class NotebookServiceClient { google::cloud::notebooks::v2::StopInstanceRequest const& request, Options opts = {}); + StatusOr StopInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::StopInstanceRequest const& request, + Options opts = {}); + + future> StopInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Resets a notebook instance. @@ -552,6 +615,15 @@ class NotebookServiceClient { google::cloud::notebooks::v2::ResetInstanceRequest const& request, Options opts = {}); + StatusOr ResetInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::ResetInstanceRequest const& request, + Options opts = {}); + + future> ResetInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Checks whether a notebook instance is upgradable. @@ -623,6 +695,15 @@ class NotebookServiceClient { google::cloud::notebooks::v2::UpgradeInstanceRequest const& request, Options opts = {}); + StatusOr UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::UpgradeInstanceRequest const& request, + Options opts = {}); + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Rollbacks a notebook instance to the previous version. @@ -661,6 +742,15 @@ class NotebookServiceClient { google::cloud::notebooks::v2::RollbackInstanceRequest const& request, Options opts = {}); + StatusOr RollbackInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::RollbackInstanceRequest const& request, + Options opts = {}); + + future> RollbackInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a Diagnostic File and runs Diagnostic Tool given an Instance. @@ -697,6 +787,12 @@ class NotebookServiceClient { google::cloud::notebooks::v2::DiagnosticConfig const& diagnostic_config, Options opts = {}); + StatusOr DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::notebooks::v2::DiagnosticConfig const& diagnostic_config, + Options opts = {}); + // clang-format off /// /// Creates a Diagnostic File and runs Diagnostic Tool given an Instance. @@ -735,6 +831,15 @@ class NotebookServiceClient { google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request, Options opts = {}); + StatusOr DiagnoseInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::notebooks::v2::DiagnoseInstanceRequest const& request, + Options opts = {}); + + future> DiagnoseInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/optimization/v1/fleet_routing_client.cc index 0808c5eede1a3..6093c1f6967e7 100644 --- a/google/cloud/optimization/v1/fleet_routing_client.cc +++ b/google/cloud/optimization/v1/fleet_routing_client.cc @@ -48,6 +48,24 @@ FleetRoutingClient::BatchOptimizeTours( return connection_->BatchOptimizeTours(request); } +StatusOr FleetRoutingClient::BatchOptimizeTours( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchOptimizeTours(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FleetRoutingClient::BatchOptimizeTours( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchOptimizeTours(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace optimization_v1 } // namespace cloud diff --git a/google/cloud/optimization/v1/fleet_routing_client.h b/google/cloud/optimization/v1/fleet_routing_client.h index 4b982e039397b..5cb6cac6298cc 100644 --- a/google/cloud/optimization/v1/fleet_routing_client.h +++ b/google/cloud/optimization/v1/fleet_routing_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_OPTIMIZATION_V1_FLEET_ROUTING_CLIENT_H #include "google/cloud/optimization/v1/fleet_routing_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,16 @@ class FleetRoutingClient { google::cloud::optimization::v1::BatchOptimizeToursRequest const& request, Options opts = {}); + StatusOr BatchOptimizeTours( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& request, + Options opts = {}); + + future> + BatchOptimizeTours(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..b3a7097580242 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,61 @@ FleetRoutingConnectionImpl::BatchOptimizeTours( polling_policy(*current), __func__); } +StatusOr +FleetRoutingConnectionImpl::BatchOptimizeTours( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..a28f25b212979 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& request) + override; + + future> + BatchOptimizeTours(google::cloud::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..a2832316f0d08 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,30 @@ FleetRoutingTracingConnection::BatchOptimizeTours( child_->BatchOptimizeTours(request)); } +StatusOr +FleetRoutingTracingConnection::BatchOptimizeTours( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FleetRoutingTracingConnection::BatchOptimizeTours( + google::cloud::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(google::cloud::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..662036cba07e8 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& request) + override; + + future> + BatchOptimizeTours(google::cloud::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..3863405500d10 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::optimization::v1::BatchOptimizeToursRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BatchOptimizeTours, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/orgpolicy/v2/org_policy_client.h b/google/cloud/orgpolicy/v2/org_policy_client.h index d680c958c82ae..1da621279d558 100644 --- a/google/cloud/orgpolicy/v2/org_policy_client.h +++ b/google/cloud/orgpolicy/v2/org_policy_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_ORGPOLICY_V2_ORG_POLICY_CLIENT_H #include "google/cloud/orgpolicy/v2/org_policy_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/osconfig/agentendpoint/v1/agent_endpoint_client.h index 8504ed9bccdc0..33409aae2d853 100644 --- a/google/cloud/osconfig/agentendpoint/v1/agent_endpoint_client.h +++ b/google/cloud/osconfig/agentendpoint/v1/agent_endpoint_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_OSCONFIG_AGENTENDPOINT_V1_AGENT_ENDPOINT_CLIENT_H #include "google/cloud/osconfig/agentendpoint/v1/agent_endpoint_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..e2a23b909947c 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,62 @@ OsConfigZonalServiceConnectionImpl::CreateOSPolicyAssignment( polling_policy(*current), __func__); } +StatusOr +OsConfigZonalServiceConnectionImpl::CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +205,62 @@ OsConfigZonalServiceConnectionImpl::UpdateOSPolicyAssignment( polling_policy(*current), __func__); } +StatusOr +OsConfigZonalServiceConnectionImpl::UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +393,63 @@ OsConfigZonalServiceConnectionImpl::DeleteOSPolicyAssignment( polling_policy(*current), __func__); } +StatusOr +OsConfigZonalServiceConnectionImpl::DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..dcb423f5a4cc0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request) override; + + future> + CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& request) override; + StatusOr UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request) override; + + future> + UpdateOSPolicyAssignment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request) override; + + future> + DeleteOSPolicyAssignment( + google::cloud::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..6d96e936c2f9d 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,31 @@ OsConfigZonalServiceTracingConnection::CreateOSPolicyAssignment( child_->CreateOSPolicyAssignment(request)); } +StatusOr +OsConfigZonalServiceTracingConnection::CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +OsConfigZonalServiceTracingConnection::CreateOSPolicyAssignment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> OsConfigZonalServiceTracingConnection::UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& @@ -55,6 +80,31 @@ OsConfigZonalServiceTracingConnection::UpdateOSPolicyAssignment( child_->UpdateOSPolicyAssignment(request)); } +StatusOr +OsConfigZonalServiceTracingConnection::UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +OsConfigZonalServiceTracingConnection::UpdateOSPolicyAssignment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr OsConfigZonalServiceTracingConnection::GetOSPolicyAssignment( google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const& request) { @@ -102,6 +152,32 @@ OsConfigZonalServiceTracingConnection::DeleteOSPolicyAssignment( child_->DeleteOSPolicyAssignment(request)); } +StatusOr +OsConfigZonalServiceTracingConnection::DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +OsConfigZonalServiceTracingConnection::DeleteOSPolicyAssignment( + google::cloud::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( + google::cloud::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..7c95206f41513 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request) override; + + future> + CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& request) override; + StatusOr UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request) override; + + future> + UpdateOSPolicyAssignment( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request) override; + + future> + DeleteOSPolicyAssignment( + google::cloud::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..3fbacc8bd2b52 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateOSPolicyAssignment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateOSPolicyAssignment, @@ -61,6 +74,19 @@ class MockOsConfigZonalServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateOSPolicyAssignment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateOSPolicyAssignment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetOSPolicyAssignment, (google::cloud::osconfig::v1::GetOSPolicyAssignmentRequest const& @@ -88,6 +114,21 @@ class MockOsConfigZonalServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteOSPolicyAssignment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteOSPolicyAssignment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetOSPolicyAssignmentReport, diff --git a/google/cloud/osconfig/v1/os_config_client.h b/google/cloud/osconfig/v1/os_config_client.h index 40b1d7b6eeb1f..84bd541b33522 100644 --- a/google/cloud/osconfig/v1/os_config_client.h +++ b/google/cloud/osconfig/v1/os_config_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_OSCONFIG_V1_OS_CONFIG_CLIENT_H #include "google/cloud/osconfig/v1/os_config_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/osconfig/v1/os_config_zonal_client.cc index df94e0ca60954..0cd17c291051b 100644 --- a/google/cloud/osconfig/v1/os_config_zonal_client.cc +++ b/google/cloud/osconfig/v1/os_config_zonal_client.cc @@ -45,6 +45,21 @@ OsConfigZonalServiceClient::CreateOSPolicyAssignment( return connection_->CreateOSPolicyAssignment(request); } +StatusOr +OsConfigZonalServiceClient::CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::osconfig::v1::OSPolicyAssignment const& os_policy_assignment, + std::string const& os_policy_assignment_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest request; + request.set_parent(parent); + *request.mutable_os_policy_assignment() = os_policy_assignment; + request.set_os_policy_assignment_id(os_policy_assignment_id); + return connection_->CreateOSPolicyAssignment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> OsConfigZonalServiceClient::CreateOSPolicyAssignment( google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& request, @@ -53,6 +68,25 @@ OsConfigZonalServiceClient::CreateOSPolicyAssignment( return connection_->CreateOSPolicyAssignment(request); } +StatusOr +OsConfigZonalServiceClient::CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateOSPolicyAssignment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +OsConfigZonalServiceClient::CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateOSPolicyAssignment(google::cloud::ExperimentalTag{}, + operation); +} + future> OsConfigZonalServiceClient::UpdateOSPolicyAssignment( google::cloud::osconfig::v1::OSPolicyAssignment const& os_policy_assignment, @@ -64,6 +98,19 @@ OsConfigZonalServiceClient::UpdateOSPolicyAssignment( return connection_->UpdateOSPolicyAssignment(request); } +StatusOr +OsConfigZonalServiceClient::UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::OSPolicyAssignment const& os_policy_assignment, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest request; + *request.mutable_os_policy_assignment() = os_policy_assignment; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> OsConfigZonalServiceClient::UpdateOSPolicyAssignment( google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& request, @@ -72,6 +119,25 @@ OsConfigZonalServiceClient::UpdateOSPolicyAssignment( return connection_->UpdateOSPolicyAssignment(request); } +StatusOr +OsConfigZonalServiceClient::UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +OsConfigZonalServiceClient::UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateOSPolicyAssignment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr OsConfigZonalServiceClient::GetOSPolicyAssignment(std::string const& name, Options opts) { @@ -133,6 +199,17 @@ OsConfigZonalServiceClient::DeleteOSPolicyAssignment(std::string const& name, return connection_->DeleteOSPolicyAssignment(request); } +StatusOr +OsConfigZonalServiceClient::DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest request; + request.set_name(name); + return connection_->DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> OsConfigZonalServiceClient::DeleteOSPolicyAssignment( @@ -142,6 +219,26 @@ OsConfigZonalServiceClient::DeleteOSPolicyAssignment( return connection_->DeleteOSPolicyAssignment(request); } +StatusOr +OsConfigZonalServiceClient::DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +OsConfigZonalServiceClient::DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteOSPolicyAssignment(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr OsConfigZonalServiceClient::GetOSPolicyAssignmentReport(std::string const& name, Options opts) { diff --git a/google/cloud/osconfig/v1/os_config_zonal_client.h b/google/cloud/osconfig/v1/os_config_zonal_client.h index 9814e9485266f..7e283b4cc6771 100644 --- a/google/cloud/osconfig/v1/os_config_zonal_client.h +++ b/google/cloud/osconfig/v1/os_config_zonal_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_OSCONFIG_V1_OS_CONFIG_ZONAL_CLIENT_H #include "google/cloud/osconfig/v1/os_config_zonal_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -146,6 +148,13 @@ class OsConfigZonalServiceClient { os_policy_assignment, std::string const& os_policy_assignment_id, Options opts = {}); + StatusOr CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::osconfig::v1::OSPolicyAssignment const& + os_policy_assignment, + std::string const& os_policy_assignment_id, Options opts = {}); + // clang-format off /// /// Create an OS policy assignment. @@ -194,6 +203,17 @@ class OsConfigZonalServiceClient { request, Options opts = {}); + StatusOr CreateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::CreateOSPolicyAssignmentRequest const& + request, + Options opts = {}); + + future> + CreateOSPolicyAssignment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Update an existing OS policy assignment. @@ -239,6 +259,12 @@ class OsConfigZonalServiceClient { os_policy_assignment, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::OSPolicyAssignment const& + os_policy_assignment, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update an existing OS policy assignment. @@ -287,6 +313,17 @@ class OsConfigZonalServiceClient { request, Options opts = {}); + StatusOr UpdateOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::UpdateOSPolicyAssignmentRequest const& + request, + Options opts = {}); + + future> + UpdateOSPolicyAssignment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieve an existing OS policy assignment. @@ -554,6 +591,10 @@ class OsConfigZonalServiceClient { google::cloud::osconfig::v1::OSPolicyAssignmentOperationMetadata>> DeleteOSPolicyAssignment(std::string const& name, Options opts = {}); + StatusOr DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete the OS policy assignment. @@ -606,6 +647,18 @@ class OsConfigZonalServiceClient { request, Options opts = {}); + StatusOr DeleteOSPolicyAssignment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::osconfig::v1::DeleteOSPolicyAssignmentRequest const& + request, + Options opts = {}); + + future> + DeleteOSPolicyAssignment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Get the OS policy asssignment report for the specified Compute Engine VM 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_client.h b/google/cloud/oslogin/v1/os_login_client.h index 064f292000b4e..707cbfdbc0286 100644 --- a/google/cloud/oslogin/v1/os_login_client.h +++ b/google/cloud/oslogin/v1/os_login_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_OSLOGIN_V1_OS_LOGIN_CLIENT_H #include "google/cloud/oslogin/v1/os_login_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..7eb9ad7af5585 100644 --- a/google/cloud/policysimulator/v1/internal/simulator_connection_impl.cc +++ b/google/cloud/policysimulator/v1/internal/simulator_connection_impl.cc @@ -121,6 +121,60 @@ SimulatorConnectionImpl::CreateReplay( polling_policy(*current), __func__); } +StatusOr SimulatorConnectionImpl::CreateReplay( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..8fc54b4079ecb 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request) + override; + + future> CreateReplay( + google::cloud::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..e36c88502d32d 100644 --- a/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.cc +++ b/google/cloud/policysimulator/v1/internal/simulator_tracing_connection.cc @@ -51,6 +51,30 @@ SimulatorTracingConnection::CreateReplay( return internal::EndSpan(std::move(span), child_->CreateReplay(request)); } +StatusOr +SimulatorTracingConnection::CreateReplay( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SimulatorTracingConnection::CreateReplay( + google::cloud::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(google::cloud::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..a94b2959eb139 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request) + override; + + future> CreateReplay( + google::cloud::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..966f8310c74f2 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateReplay, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListReplayResults, diff --git a/google/cloud/policysimulator/v1/simulator_client.cc b/google/cloud/policysimulator/v1/simulator_client.cc index f90234a5b3b28..1e66af81f9745 100644 --- a/google/cloud/policysimulator/v1/simulator_client.cc +++ b/google/cloud/policysimulator/v1/simulator_client.cc @@ -58,6 +58,18 @@ SimulatorClient::CreateReplay( return connection_->CreateReplay(request); } +StatusOr SimulatorClient::CreateReplay( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::policysimulator::v1::Replay const& replay, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::policysimulator::v1::CreateReplayRequest request; + request.set_parent(parent); + *request.mutable_replay() = replay; + return connection_->CreateReplay(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SimulatorClient::CreateReplay( google::cloud::policysimulator::v1::CreateReplayRequest const& request, @@ -66,6 +78,23 @@ SimulatorClient::CreateReplay( return connection_->CreateReplay(request); } +StatusOr SimulatorClient::CreateReplay( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateReplay(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SimulatorClient::CreateReplay(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateReplay(google::cloud::ExperimentalTag{}, operation); +} + StreamRange SimulatorClient::ListReplayResults(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/policysimulator/v1/simulator_client.h b/google/cloud/policysimulator/v1/simulator_client.h index 95d5b2127309a..bad9aa4084aef 100644 --- a/google/cloud/policysimulator/v1/simulator_client.h +++ b/google/cloud/policysimulator/v1/simulator_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_POLICYSIMULATOR_V1_SIMULATOR_CLIENT_H #include "google/cloud/policysimulator/v1/simulator_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,12 @@ class SimulatorClient { google::cloud::policysimulator::v1::Replay const& replay, Options opts = {}); + StatusOr CreateReplay( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::policysimulator::v1::Replay const& replay, + Options opts = {}); + // clang-format off /// /// Creates and starts a [Replay][google.cloud.policysimulator.v1.Replay] using @@ -246,6 +254,15 @@ class SimulatorClient { google::cloud::policysimulator::v1::CreateReplayRequest const& request, Options opts = {}); + StatusOr CreateReplay( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::policysimulator::v1::CreateReplayRequest const& request, + Options opts = {}); + + future> CreateReplay( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists the results of running a 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_client.h b/google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_client.h index 1bc6bb8824b9d..955c16d51e577 100644 --- a/google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_client.h +++ b/google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_POLICYTROUBLESHOOTER_IAM_V3_POLICY_TROUBLESHOOTER_CLIENT_H #include "google/cloud/policytroubleshooter/iam/v3/policy_troubleshooter_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/policytroubleshooter/v1/iam_checker_client.h index e70acc83692bc..6551e9991fee9 100644 --- a/google/cloud/policytroubleshooter/v1/iam_checker_client.h +++ b/google/cloud/policytroubleshooter/v1/iam_checker_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_POLICYTROUBLESHOOTER_V1_IAM_CHECKER_CLIENT_H #include "google/cloud/policytroubleshooter/v1/iam_checker_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/privateca/v1/certificate_authority_client.cc index 0928bcc240905..2437d541f7810 100644 --- a/google/cloud/privateca/v1/certificate_authority_client.cc +++ b/google/cloud/privateca/v1/certificate_authority_client.cc @@ -139,6 +139,18 @@ CertificateAuthorityServiceClient::ActivateCertificateAuthority( return connection_->ActivateCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::ActivateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::ActivateCertificateAuthorityRequest + request; + request.set_name(name); + return connection_->ActivateCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::ActivateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -148,6 +160,26 @@ CertificateAuthorityServiceClient::ActivateCertificateAuthority( return connection_->ActivateCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::ActivateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ActivateCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::ActivateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ActivateCertificateAuthority( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::CreateCertificateAuthority( std::string const& parent, @@ -163,6 +195,23 @@ CertificateAuthorityServiceClient::CreateCertificateAuthority( return connection_->CreateCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::CreateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::security::privateca::v1::CertificateAuthority const& + certificate_authority, + std::string const& certificate_authority_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::CreateCertificateAuthorityRequest + request; + request.set_parent(parent); + *request.mutable_certificate_authority() = certificate_authority; + request.set_certificate_authority_id(certificate_authority_id); + return connection_->CreateCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::CreateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -172,6 +221,26 @@ CertificateAuthorityServiceClient::CreateCertificateAuthority( return connection_->CreateCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::CreateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::CreateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateAuthority( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::DisableCertificateAuthority( std::string const& name, Options opts) { @@ -182,6 +251,18 @@ CertificateAuthorityServiceClient::DisableCertificateAuthority( return connection_->DisableCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::DisableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::DisableCertificateAuthorityRequest + request; + request.set_name(name); + return connection_->DisableCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::DisableCertificateAuthority( google::cloud::security::privateca::v1:: @@ -191,6 +272,26 @@ CertificateAuthorityServiceClient::DisableCertificateAuthority( return connection_->DisableCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::DisableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::DisableCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableCertificateAuthority( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::EnableCertificateAuthority( std::string const& name, Options opts) { @@ -201,6 +302,18 @@ CertificateAuthorityServiceClient::EnableCertificateAuthority( return connection_->EnableCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::EnableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::EnableCertificateAuthorityRequest + request; + request.set_name(name); + return connection_->EnableCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::EnableCertificateAuthority( google::cloud::security::privateca::v1:: @@ -210,6 +323,26 @@ CertificateAuthorityServiceClient::EnableCertificateAuthority( return connection_->EnableCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::EnableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::EnableCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableCertificateAuthority( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr CertificateAuthorityServiceClient::FetchCertificateAuthorityCsr( @@ -279,6 +412,18 @@ CertificateAuthorityServiceClient::UndeleteCertificateAuthority( return connection_->UndeleteCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::UndeleteCertificateAuthorityRequest + request; + request.set_name(name); + return connection_->UndeleteCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::UndeleteCertificateAuthority( google::cloud::security::privateca::v1:: @@ -288,6 +433,26 @@ CertificateAuthorityServiceClient::UndeleteCertificateAuthority( return connection_->UndeleteCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteCertificateAuthority( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::DeleteCertificateAuthority( std::string const& name, Options opts) { @@ -298,6 +463,18 @@ CertificateAuthorityServiceClient::DeleteCertificateAuthority( return connection_->DeleteCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::DeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::DeleteCertificateAuthorityRequest + request; + request.set_name(name); + return connection_->DeleteCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::DeleteCertificateAuthority( google::cloud::security::privateca::v1:: @@ -307,6 +484,26 @@ CertificateAuthorityServiceClient::DeleteCertificateAuthority( return connection_->DeleteCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::DeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::DeleteCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateAuthority( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::UpdateCertificateAuthority( google::cloud::security::privateca::v1::CertificateAuthority const& @@ -320,6 +517,21 @@ CertificateAuthorityServiceClient::UpdateCertificateAuthority( return connection_->UpdateCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::UpdateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CertificateAuthority const& + certificate_authority, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::UpdateCertificateAuthorityRequest + request; + *request.mutable_certificate_authority() = certificate_authority; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::UpdateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -329,6 +541,26 @@ CertificateAuthorityServiceClient::UpdateCertificateAuthority( return connection_->UpdateCertificateAuthority(request); } +StatusOr +CertificateAuthorityServiceClient::UpdateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateAuthority( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::UpdateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateAuthority( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::CreateCaPool( std::string const& parent, @@ -342,6 +574,21 @@ CertificateAuthorityServiceClient::CreateCaPool( return connection_->CreateCaPool(request); } +StatusOr +CertificateAuthorityServiceClient::CreateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::security::privateca::v1::CaPool const& ca_pool, + std::string const& ca_pool_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::CreateCaPoolRequest request; + request.set_parent(parent); + *request.mutable_ca_pool() = ca_pool; + request.set_ca_pool_id(ca_pool_id); + return connection_->CreateCaPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::CreateCaPool( google::cloud::security::privateca::v1::CreateCaPoolRequest const& request, @@ -350,6 +597,24 @@ CertificateAuthorityServiceClient::CreateCaPool( return connection_->CreateCaPool(request); } +StatusOr +CertificateAuthorityServiceClient::CreateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCaPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::CreateCaPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCaPool(google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::UpdateCaPool( google::cloud::security::privateca::v1::CaPool const& ca_pool, @@ -361,6 +626,19 @@ CertificateAuthorityServiceClient::UpdateCaPool( return connection_->UpdateCaPool(request); } +StatusOr +CertificateAuthorityServiceClient::UpdateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CaPool const& ca_pool, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::UpdateCaPoolRequest request; + *request.mutable_ca_pool() = ca_pool; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCaPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const& request, @@ -369,6 +647,24 @@ CertificateAuthorityServiceClient::UpdateCaPool( return connection_->UpdateCaPool(request); } +StatusOr +CertificateAuthorityServiceClient::UpdateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCaPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::UpdateCaPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCaPool(google::cloud::ExperimentalTag{}, operation); +} + StatusOr CertificateAuthorityServiceClient::GetCaPool(std::string const& name, Options opts) { @@ -412,6 +708,18 @@ CertificateAuthorityServiceClient::DeleteCaPool(std::string const& name, return connection_->DeleteCaPool(request); } +StatusOr +CertificateAuthorityServiceClient::DeleteCaPool(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::DeleteCaPoolRequest request; + request.set_name(name); + return connection_->DeleteCaPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::DeleteCaPool( google::cloud::security::privateca::v1::DeleteCaPoolRequest const& request, @@ -420,6 +728,24 @@ CertificateAuthorityServiceClient::DeleteCaPool( return connection_->DeleteCaPool(request); } +StatusOr +CertificateAuthorityServiceClient::DeleteCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCaPool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::DeleteCaPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCaPool(google::cloud::ExperimentalTag{}, operation); +} + StatusOr CertificateAuthorityServiceClient::FetchCaCerts(std::string const& ca_pool, Options opts) { @@ -489,6 +815,21 @@ CertificateAuthorityServiceClient::UpdateCertificateRevocationList( return connection_->UpdateCertificateRevocationList(request); } +StatusOr +CertificateAuthorityServiceClient::UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CertificateRevocationList const& + certificate_revocation_list, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::UpdateCertificateRevocationListRequest + request; + *request.mutable_certificate_revocation_list() = certificate_revocation_list; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCertificateRevocationList( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> CertificateAuthorityServiceClient::UpdateCertificateRevocationList( @@ -499,6 +840,27 @@ CertificateAuthorityServiceClient::UpdateCertificateRevocationList( return connection_->UpdateCertificateRevocationList(request); } +StatusOr +CertificateAuthorityServiceClient::UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateRevocationList( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +CertificateAuthorityServiceClient::UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateRevocationList( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::CreateCertificateTemplate( std::string const& parent, @@ -514,6 +876,23 @@ CertificateAuthorityServiceClient::CreateCertificateTemplate( return connection_->CreateCertificateTemplate(request); } +StatusOr +CertificateAuthorityServiceClient::CreateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::security::privateca::v1::CertificateTemplate const& + certificate_template, + std::string const& certificate_template_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::CreateCertificateTemplateRequest + request; + request.set_parent(parent); + *request.mutable_certificate_template() = certificate_template; + request.set_certificate_template_id(certificate_template_id); + return connection_->CreateCertificateTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::CreateCertificateTemplate( google::cloud::security::privateca::v1:: @@ -523,6 +902,26 @@ CertificateAuthorityServiceClient::CreateCertificateTemplate( return connection_->CreateCertificateTemplate(request); } +StatusOr +CertificateAuthorityServiceClient::CreateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::CreateCertificateTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCertificateTemplate( + google::cloud::ExperimentalTag{}, operation); +} + future> CertificateAuthorityServiceClient::DeleteCertificateTemplate( std::string const& name, Options opts) { @@ -533,6 +932,18 @@ CertificateAuthorityServiceClient::DeleteCertificateTemplate( return connection_->DeleteCertificateTemplate(request); } +StatusOr +CertificateAuthorityServiceClient::DeleteCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::DeleteCertificateTemplateRequest + request; + request.set_name(name); + return connection_->DeleteCertificateTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::DeleteCertificateTemplate( google::cloud::security::privateca::v1:: @@ -542,6 +953,26 @@ CertificateAuthorityServiceClient::DeleteCertificateTemplate( return connection_->DeleteCertificateTemplate(request); } +StatusOr +CertificateAuthorityServiceClient::DeleteCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::DeleteCertificateTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCertificateTemplate( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr CertificateAuthorityServiceClient::GetCertificateTemplate( std::string const& name, Options opts) { @@ -592,6 +1023,21 @@ CertificateAuthorityServiceClient::UpdateCertificateTemplate( return connection_->UpdateCertificateTemplate(request); } +StatusOr +CertificateAuthorityServiceClient::UpdateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CertificateTemplate const& + certificate_template, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::security::privateca::v1::UpdateCertificateTemplateRequest + request; + *request.mutable_certificate_template() = certificate_template; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCertificateTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CertificateAuthorityServiceClient::UpdateCertificateTemplate( google::cloud::security::privateca::v1:: @@ -601,6 +1047,26 @@ CertificateAuthorityServiceClient::UpdateCertificateTemplate( return connection_->UpdateCertificateTemplate(request); } +StatusOr +CertificateAuthorityServiceClient::UpdateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateTemplate( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CertificateAuthorityServiceClient::UpdateCertificateTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCertificateTemplate( + google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace privateca_v1 } // namespace cloud diff --git a/google/cloud/privateca/v1/certificate_authority_client.h b/google/cloud/privateca/v1/certificate_authority_client.h index b1aa48c53747d..ce678967de95e 100644 --- a/google/cloud/privateca/v1/certificate_authority_client.h +++ b/google/cloud/privateca/v1/certificate_authority_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PRIVATECA_V1_CERTIFICATE_AUTHORITY_CLIENT_H #include "google/cloud/privateca/v1/certificate_authority_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -486,6 +488,10 @@ class CertificateAuthorityServiceClient { future> ActivateCertificateAuthority(std::string const& name, Options opts = {}); + StatusOr ActivateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Activate a @@ -538,6 +544,17 @@ class CertificateAuthorityServiceClient { ActivateCertificateAuthorityRequest const& request, Options opts = {}); + StatusOr ActivateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request, + Options opts = {}); + + future> + ActivateCertificateAuthority(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Create a new @@ -585,6 +602,13 @@ class CertificateAuthorityServiceClient { certificate_authority, std::string const& certificate_authority_id, Options opts = {}); + StatusOr CreateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::security::privateca::v1::CertificateAuthority const& + certificate_authority, + std::string const& certificate_authority_id, Options opts = {}); + // clang-format off /// /// Create a new @@ -627,6 +651,17 @@ class CertificateAuthorityServiceClient { CreateCertificateAuthorityRequest const& request, Options opts = {}); + StatusOr CreateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request, + Options opts = {}); + + future> + CreateCertificateAuthority(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Disable a @@ -662,6 +697,10 @@ class CertificateAuthorityServiceClient { future> DisableCertificateAuthority(std::string const& name, Options opts = {}); + StatusOr DisableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Disable a @@ -703,6 +742,17 @@ class CertificateAuthorityServiceClient { DisableCertificateAuthorityRequest const& request, Options opts = {}); + StatusOr DisableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request, + Options opts = {}); + + future> + DisableCertificateAuthority(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Enable a @@ -738,6 +788,10 @@ class CertificateAuthorityServiceClient { future> EnableCertificateAuthority(std::string const& name, Options opts = {}); + StatusOr EnableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Enable a @@ -779,6 +833,17 @@ class CertificateAuthorityServiceClient { EnableCertificateAuthorityRequest const& request, Options opts = {}); + StatusOr EnableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request, + Options opts = {}); + + future> + EnableCertificateAuthority(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Fetch a certificate signing request (CSR) from a @@ -1050,6 +1115,10 @@ class CertificateAuthorityServiceClient { future> UndeleteCertificateAuthority(std::string const& name, Options opts = {}); + StatusOr UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Undelete a @@ -1092,6 +1161,17 @@ class CertificateAuthorityServiceClient { UndeleteCertificateAuthorityRequest const& request, Options opts = {}); + StatusOr UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request, + Options opts = {}); + + future> + UndeleteCertificateAuthority(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Delete a @@ -1127,6 +1207,10 @@ class CertificateAuthorityServiceClient { future> DeleteCertificateAuthority(std::string const& name, Options opts = {}); + StatusOr DeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete a @@ -1168,6 +1252,17 @@ class CertificateAuthorityServiceClient { DeleteCertificateAuthorityRequest const& request, Options opts = {}); + StatusOr DeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request, + Options opts = {}); + + future> + DeleteCertificateAuthority(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Update a @@ -1207,6 +1302,12 @@ class CertificateAuthorityServiceClient { certificate_authority, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CertificateAuthority const& + certificate_authority, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a @@ -1248,6 +1349,17 @@ class CertificateAuthorityServiceClient { UpdateCertificateAuthorityRequest const& request, Options opts = {}); + StatusOr UpdateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request, + Options opts = {}); + + future> + UpdateCertificateAuthority(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Create a [CaPool][google.cloud.security.privateca.v1.CaPool]. @@ -1288,6 +1400,12 @@ class CertificateAuthorityServiceClient { google::cloud::security::privateca::v1::CaPool const& ca_pool, std::string const& ca_pool_id, Options opts = {}); + StatusOr CreateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::security::privateca::v1::CaPool const& ca_pool, + std::string const& ca_pool_id, Options opts = {}); + // clang-format off /// /// Create a [CaPool][google.cloud.security.privateca.v1.CaPool]. @@ -1327,6 +1445,16 @@ class CertificateAuthorityServiceClient { request, Options opts = {}); + StatusOr CreateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request, + Options opts = {}); + + future> CreateCaPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Update a [CaPool][google.cloud.security.privateca.v1.CaPool]. @@ -1362,6 +1490,11 @@ class CertificateAuthorityServiceClient { google::cloud::security::privateca::v1::CaPool const& ca_pool, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CaPool const& ca_pool, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a [CaPool][google.cloud.security.privateca.v1.CaPool]. @@ -1401,6 +1534,16 @@ class CertificateAuthorityServiceClient { request, Options opts = {}); + StatusOr UpdateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request, + Options opts = {}); + + future> UpdateCaPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns a [CaPool][google.cloud.security.privateca.v1.CaPool]. @@ -1570,6 +1713,10 @@ class CertificateAuthorityServiceClient { future> DeleteCaPool(std::string const& name, Options opts = {}); + StatusOr DeleteCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Delete a [CaPool][google.cloud.security.privateca.v1.CaPool]. @@ -1611,6 +1758,17 @@ class CertificateAuthorityServiceClient { request, Options opts = {}); + StatusOr DeleteCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request, + Options opts = {}); + + future> + DeleteCaPool(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// FetchCaCerts returns the current trust anchor for the @@ -1864,6 +2022,12 @@ class CertificateAuthorityServiceClient { certificate_revocation_list, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CertificateRevocationList const& + certificate_revocation_list, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a @@ -1906,6 +2070,18 @@ class CertificateAuthorityServiceClient { UpdateCertificateRevocationListRequest const& request, Options opts = {}); + StatusOr UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request, + Options opts = {}); + + future> + UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Create a new @@ -1951,6 +2127,13 @@ class CertificateAuthorityServiceClient { certificate_template, std::string const& certificate_template_id, Options opts = {}); + StatusOr CreateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::security::privateca::v1::CertificateTemplate const& + certificate_template, + std::string const& certificate_template_id, Options opts = {}); + // clang-format off /// /// Create a new @@ -1992,6 +2175,17 @@ class CertificateAuthorityServiceClient { CreateCertificateTemplateRequest const& request, Options opts = {}); + StatusOr CreateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request, + Options opts = {}); + + future> + CreateCertificateTemplate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// DeleteCertificateTemplate deletes a @@ -2028,6 +2222,10 @@ class CertificateAuthorityServiceClient { future> DeleteCertificateTemplate(std::string const& name, Options opts = {}); + StatusOr DeleteCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// DeleteCertificateTemplate deletes a @@ -2069,6 +2267,17 @@ class CertificateAuthorityServiceClient { DeleteCertificateTemplateRequest const& request, Options opts = {}); + StatusOr DeleteCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request, + Options opts = {}); + + future> + DeleteCertificateTemplate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns a @@ -2251,6 +2460,12 @@ class CertificateAuthorityServiceClient { certificate_template, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CertificateTemplate const& + certificate_template, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Update a @@ -2291,6 +2506,17 @@ class CertificateAuthorityServiceClient { UpdateCertificateTemplateRequest const& request, Options opts = {}); + StatusOr UpdateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request, + Options opts = {}); + + future> + UpdateCertificateTemplate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..ae376d885790d 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,62 @@ CertificateAuthorityServiceConnectionImpl::ActivateCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::ActivateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +312,62 @@ CertificateAuthorityServiceConnectionImpl::CreateCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::CreateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +408,62 @@ CertificateAuthorityServiceConnectionImpl::DisableCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::DisableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +504,62 @@ CertificateAuthorityServiceConnectionImpl::EnableCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::EnableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +674,62 @@ CertificateAuthorityServiceConnectionImpl::UndeleteCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +770,62 @@ CertificateAuthorityServiceConnectionImpl::DeleteCertificateAuthority( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::DeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +861,144 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1016,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 +1060,62 @@ CertificateAuthorityServiceConnectionImpl::UpdateCaPool( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::UpdateCaPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1207,62 @@ CertificateAuthorityServiceConnectionImpl::DeleteCaPool( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::DeleteCaPool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1379,64 @@ CertificateAuthorityServiceConnectionImpl::UpdateCertificateRevocationList( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1477,62 @@ CertificateAuthorityServiceConnectionImpl::CreateCertificateTemplate( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::CreateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1573,62 @@ CertificateAuthorityServiceConnectionImpl::DeleteCertificateTemplate( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::DeleteCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1724,62 @@ CertificateAuthorityServiceConnectionImpl::UpdateCertificateTemplate( polling_policy(*current), __func__); } +StatusOr +CertificateAuthorityServiceConnectionImpl::UpdateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..8241d3ad6c033 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request) override; + + future> + ActivateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCertificateAuthority( google::cloud::security::privateca::v1:: CreateCertificateAuthorityRequest const& request) override; + StatusOr CreateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request) override; + + future> + CreateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableCertificateAuthority( google::cloud::security::privateca::v1:: DisableCertificateAuthorityRequest const& request) override; + StatusOr DisableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request) override; + + future> + DisableCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableCertificateAuthority( google::cloud::security::privateca::v1:: EnableCertificateAuthorityRequest const& request) override; + StatusOr EnableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request) override; + + future> + EnableCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request) override; + + future> + UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateAuthority( google::cloud::security::privateca::v1:: DeleteCertificateAuthorityRequest const& request) override; + StatusOr DeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request) override; + + future> + DeleteCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateAuthority( google::cloud::security::privateca::v1:: UpdateCertificateAuthorityRequest const& request) override; + StatusOr UpdateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request) override; + + future> + UpdateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCaPool( google::cloud::security::privateca::v1::CreateCaPoolRequest const& request) override; + StatusOr CreateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request) override; + + future> CreateCaPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const& request) override; + StatusOr UpdateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request) override; + + future> UpdateCaPool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request) override; + + future> + DeleteCaPool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request) override; + + future> + UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCertificateTemplate( google::cloud::security::privateca::v1:: CreateCertificateTemplateRequest const& request) override; + StatusOr CreateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request) override; + + future> + CreateCertificateTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateTemplate( google::cloud::security::privateca::v1:: DeleteCertificateTemplateRequest const& request) override; + StatusOr DeleteCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request) override; + + future> + DeleteCertificateTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request) override; + + future> + UpdateCertificateTemplate( + google::cloud::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..975483c512ac0 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,33 @@ CertificateAuthorityServiceTracingConnection::ActivateCertificateAuthority( child_->ActivateCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::ActivateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::ActivateCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::CreateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -111,6 +138,33 @@ CertificateAuthorityServiceTracingConnection::CreateCertificateAuthority( child_->CreateCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::CreateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::CreateCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::DisableCertificateAuthority( google::cloud::security::privateca::v1:: @@ -123,6 +177,33 @@ CertificateAuthorityServiceTracingConnection::DisableCertificateAuthority( child_->DisableCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::DisableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::DisableCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::EnableCertificateAuthority( google::cloud::security::privateca::v1:: @@ -135,6 +216,33 @@ CertificateAuthorityServiceTracingConnection::EnableCertificateAuthority( child_->EnableCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::EnableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::EnableCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CertificateAuthorityServiceTracingConnection::FetchCertificateAuthorityCsr( @@ -185,6 +293,33 @@ CertificateAuthorityServiceTracingConnection::UndeleteCertificateAuthority( child_->UndeleteCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::UndeleteCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::DeleteCertificateAuthority( google::cloud::security::privateca::v1:: @@ -197,6 +332,33 @@ CertificateAuthorityServiceTracingConnection::DeleteCertificateAuthority( child_->DeleteCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::DeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::DeleteCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::UpdateCertificateAuthority( google::cloud::security::privateca::v1:: @@ -209,6 +371,33 @@ CertificateAuthorityServiceTracingConnection::UpdateCertificateAuthority( child_->UpdateCertificateAuthority(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UpdateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::UpdateCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::CreateCaPool( google::cloud::security::privateca::v1::CreateCaPoolRequest const& @@ -219,6 +408,31 @@ CertificateAuthorityServiceTracingConnection::CreateCaPool( return internal::EndSpan(std::move(span), child_->CreateCaPool(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::CreateCaPool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::CreateCaPool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const& @@ -229,6 +443,31 @@ CertificateAuthorityServiceTracingConnection::UpdateCaPool( return internal::EndSpan(std::move(span), child_->UpdateCaPool(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UpdateCaPool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::UpdateCaPool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CertificateAuthorityServiceTracingConnection::GetCaPool( google::cloud::security::privateca::v1::GetCaPoolRequest const& request) { @@ -260,6 +499,31 @@ CertificateAuthorityServiceTracingConnection::DeleteCaPool( return internal::EndSpan(std::move(span), child_->DeleteCaPool(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::DeleteCaPool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::DeleteCaPool( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CertificateAuthorityServiceTracingConnection::FetchCaCerts( google::cloud::security::privateca::v1::FetchCaCertsRequest const& @@ -309,6 +573,34 @@ CertificateAuthorityServiceTracingConnection::UpdateCertificateRevocationList( child_->UpdateCertificateRevocationList(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +CertificateAuthorityServiceTracingConnection::UpdateCertificateRevocationList( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::CreateCertificateTemplate( google::cloud::security::privateca::v1:: @@ -321,6 +613,33 @@ CertificateAuthorityServiceTracingConnection::CreateCertificateTemplate( child_->CreateCertificateTemplate(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::CreateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::CreateCertificateTemplate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CertificateAuthorityServiceTracingConnection::DeleteCertificateTemplate( google::cloud::security::privateca::v1:: @@ -333,6 +652,33 @@ CertificateAuthorityServiceTracingConnection::DeleteCertificateTemplate( child_->DeleteCertificateTemplate(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::DeleteCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::DeleteCertificateTemplate( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr CertificateAuthorityServiceTracingConnection::GetCertificateTemplate( google::cloud::security::privateca::v1::GetCertificateTemplateRequest const& @@ -370,6 +716,33 @@ CertificateAuthorityServiceTracingConnection::UpdateCertificateTemplate( child_->UpdateCertificateTemplate(request)); } +StatusOr +CertificateAuthorityServiceTracingConnection::UpdateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CertificateAuthorityServiceTracingConnection::UpdateCertificateTemplate( + google::cloud::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( + google::cloud::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..1e5fe7e3b2093 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request) override; + + future> + ActivateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCertificateAuthority( google::cloud::security::privateca::v1:: CreateCertificateAuthorityRequest const& request) override; + StatusOr CreateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request) override; + + future> + CreateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableCertificateAuthority( google::cloud::security::privateca::v1:: DisableCertificateAuthorityRequest const& request) override; + StatusOr DisableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request) override; + + future> + DisableCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> EnableCertificateAuthority( google::cloud::security::privateca::v1:: EnableCertificateAuthorityRequest const& request) override; + StatusOr EnableCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request) override; + + future> + EnableCertificateAuthority( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request) override; + + future> + UndeleteCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateAuthority( google::cloud::security::privateca::v1:: DeleteCertificateAuthorityRequest const& request) override; + StatusOr DeleteCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request) override; + + future> + DeleteCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCertificateAuthority( google::cloud::security::privateca::v1:: UpdateCertificateAuthorityRequest const& request) override; + StatusOr UpdateCertificateAuthority( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request) override; + + future> + UpdateCertificateAuthority( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCaPool( google::cloud::security::privateca::v1::CreateCaPoolRequest const& request) override; + StatusOr CreateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request) override; + + future> CreateCaPool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCaPool( google::cloud::security::privateca::v1::UpdateCaPoolRequest const& request) override; + StatusOr UpdateCaPool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request) override; + + future> UpdateCaPool( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request) override; + + future> + DeleteCaPool(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request) override; + + future> + UpdateCertificateRevocationList( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCertificateTemplate( google::cloud::security::privateca::v1:: CreateCertificateTemplateRequest const& request) override; + StatusOr CreateCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request) override; + + future> + CreateCertificateTemplate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCertificateTemplate( google::cloud::security::privateca::v1:: DeleteCertificateTemplateRequest const& request) override; + StatusOr DeleteCertificateTemplate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request) override; + + future> + DeleteCertificateTemplate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request) override; + + future> + UpdateCertificateTemplate( + google::cloud::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..3110a7330ef2d 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,21 @@ class MockCertificateAuthorityServiceConnection ActivateCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + ActivateCertificateAuthority, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + ActivateCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ActivateCertificateAuthority, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -97,6 +112,21 @@ class MockCertificateAuthorityServiceConnection CreateCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateCertificateAuthority, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateCertificateAuthority, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -105,6 +135,21 @@ class MockCertificateAuthorityServiceConnection DisableCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DisableCertificateAuthority, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DisableCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DisableCertificateAuthority, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -113,6 +158,21 @@ class MockCertificateAuthorityServiceConnection EnableCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + EnableCertificateAuthority, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + EnableCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EnableCertificateAuthority, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, FetchCertificateAuthorityCsr, @@ -143,6 +203,21 @@ class MockCertificateAuthorityServiceConnection UndeleteCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UndeleteCertificateAuthority, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UndeleteCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UndeleteCertificateAuthority, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -151,6 +226,21 @@ class MockCertificateAuthorityServiceConnection DeleteCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteCertificateAuthority, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCertificateAuthority, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -159,6 +249,21 @@ class MockCertificateAuthorityServiceConnection UpdateCertificateAuthorityRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateCertificateAuthority, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateAuthorityRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateCertificateAuthority, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateCaPool, @@ -166,6 +271,19 @@ class MockCertificateAuthorityServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateCaPool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::CreateCaPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateCaPool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCaPool, @@ -173,6 +291,19 @@ class MockCertificateAuthorityServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateCaPool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::UpdateCaPoolRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateCaPool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetCaPool, (google::cloud::security::privateca::v1::GetCaPoolRequest const& request), @@ -192,6 +323,21 @@ class MockCertificateAuthorityServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteCaPool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1::DeleteCaPoolRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCaPool, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, FetchCaCerts, @@ -223,6 +369,21 @@ class MockCertificateAuthorityServiceConnection UpdateCertificateRevocationListRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateCertificateRevocationList, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateRevocationListRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateCertificateRevocationList, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateCertificateTemplate, @@ -230,6 +391,20 @@ class MockCertificateAuthorityServiceConnection CreateCertificateTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateCertificateTemplate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + CreateCertificateTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCertificateTemplate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -238,6 +413,21 @@ class MockCertificateAuthorityServiceConnection DeleteCertificateTemplateRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteCertificateTemplate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + DeleteCertificateTemplateRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteCertificateTemplate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetCertificateTemplate, @@ -259,6 +449,20 @@ class MockCertificateAuthorityServiceConnection (google::cloud::security::privateca::v1:: UpdateCertificateTemplateRequest const& request), (override)); + + MOCK_METHOD(StatusOr, + UpdateCertificateTemplate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::security::privateca::v1:: + UpdateCertificateTemplateRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCertificateTemplate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/profiler/v2/export_client.h b/google/cloud/profiler/v2/export_client.h index 12a7600ce70f3..637b624eb6ada 100644 --- a/google/cloud/profiler/v2/export_client.h +++ b/google/cloud/profiler/v2/export_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PROFILER_V2_EXPORT_CLIENT_H #include "google/cloud/profiler/v2/export_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/profiler/v2/profiler_client.h index f2865f955ba98..bc2ee49863fc2 100644 --- a/google/cloud/profiler/v2/profiler_client.h +++ b/google/cloud/profiler/v2/profiler_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PROFILER_V2_PROFILER_CLIENT_H #include "google/cloud/profiler/v2/profiler_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/publicca/v1/public_certificate_authority_client.h index 02f0ef25748af..4ffa208689d24 100644 --- a/google/cloud/publicca/v1/public_certificate_authority_client.h +++ b/google/cloud/publicca/v1/public_certificate_authority_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PUBLICCA_V1_PUBLIC_CERTIFICATE_AUTHORITY_CLIENT_H #include "google/cloud/publicca/v1/public_certificate_authority_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/pubsub/admin/subscription_admin_client.h index 0d34226d9a770..72ecf5d0a8326 100644 --- a/google/cloud/pubsub/admin/subscription_admin_client.h +++ b/google/cloud/pubsub/admin/subscription_admin_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PUBSUB_ADMIN_SUBSCRIPTION_ADMIN_CLIENT_H #include "google/cloud/pubsub/admin/subscription_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/pubsub/admin/topic_admin_client.h index 6bc8b2220833a..3e405b3814d4d 100644 --- a/google/cloud/pubsub/admin/topic_admin_client.h +++ b/google/cloud/pubsub/admin/topic_admin_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PUBSUB_ADMIN_TOPIC_ADMIN_CLIENT_H #include "google/cloud/pubsub/admin/topic_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/pubsub/schema_client.h index 63be6ed9b304d..7b6d66dd66031 100644 --- a/google/cloud/pubsub/schema_client.h +++ b/google/cloud/pubsub/schema_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PUBSUB_SCHEMA_CLIENT_H #include "google/cloud/pubsub/schema_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/pubsublite/admin_client.cc index f81048bff76c4..941844d133ab1 100644 --- a/google/cloud/pubsublite/admin_client.cc +++ b/google/cloud/pubsublite/admin_client.cc @@ -238,6 +238,24 @@ AdminServiceClient::SeekSubscription( return connection_->SeekSubscription(request); } +StatusOr AdminServiceClient::SeekSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SeekSubscription(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +AdminServiceClient::SeekSubscription( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SeekSubscription(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr AdminServiceClient::CreateReservation( std::string const& parent, diff --git a/google/cloud/pubsublite/admin_client.h b/google/cloud/pubsublite/admin_client.h index a17c8ff6d69b4..a0824a9f21a29 100644 --- a/google/cloud/pubsublite/admin_client.h +++ b/google/cloud/pubsublite/admin_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PUBSUBLITE_ADMIN_CLIENT_H #include "google/cloud/pubsublite/admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -878,6 +880,16 @@ class AdminServiceClient { google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request, Options opts = {}); + StatusOr SeekSubscription( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request, + Options opts = {}); + + future> + SeekSubscription(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new reservation. 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..b3f199d2e1262 100644 --- a/google/cloud/pubsublite/internal/admin_connection_impl.cc +++ b/google/cloud/pubsublite/internal/admin_connection_impl.cc @@ -336,6 +336,60 @@ AdminServiceConnectionImpl::SeekSubscription( polling_policy(*current), __func__); } +StatusOr +AdminServiceConnectionImpl::SeekSubscription( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..3fd6e01aa2f30 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request) + override; + + future> + SeekSubscription(google::cloud::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..ff276746c2729 100644 --- a/google/cloud/pubsublite/internal/admin_tracing_connection.cc +++ b/google/cloud/pubsublite/internal/admin_tracing_connection.cc @@ -154,6 +154,30 @@ AdminServiceTracingConnection::SeekSubscription( return internal::EndSpan(std::move(span), child_->SeekSubscription(request)); } +StatusOr +AdminServiceTracingConnection::SeekSubscription( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AdminServiceTracingConnection::SeekSubscription( + google::cloud::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(google::cloud::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..e9d547522601b 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request) + override; + + future> + SeekSubscription(google::cloud::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..500004e67f7e7 100644 --- a/google/cloud/pubsublite/mocks/mock_admin_connection.h +++ b/google/cloud/pubsublite/mocks/mock_admin_connection.h @@ -111,6 +111,19 @@ class MockAdminServiceConnection : public pubsublite::AdminServiceConnection { (google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request), (override)); + MOCK_METHOD( + StatusOr, SeekSubscription, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::pubsublite::v1::SeekSubscriptionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + SeekSubscription, + (google::cloud::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_client.h b/google/cloud/pubsublite/topic_stats_client.h index 1bac47c45ef8c..f36e9c9ef2c0b 100644 --- a/google/cloud/pubsublite/topic_stats_client.h +++ b/google/cloud/pubsublite/topic_stats_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_PUBSUBLITE_TOPIC_STATS_CLIENT_H #include "google/cloud/pubsublite/topic_stats_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..92fcb22b5279b 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,62 @@ RapidMigrationAssessmentConnectionImpl::CreateCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::CreateCollector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +215,62 @@ RapidMigrationAssessmentConnectionImpl::CreateAnnotation( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::CreateAnnotation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +380,62 @@ RapidMigrationAssessmentConnectionImpl::UpdateCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::UpdateCollector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +476,62 @@ RapidMigrationAssessmentConnectionImpl::DeleteCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::DeleteCollector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +572,62 @@ RapidMigrationAssessmentConnectionImpl::ResumeCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::ResumeCollector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +668,62 @@ RapidMigrationAssessmentConnectionImpl::RegisterCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::RegisterCollector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +764,62 @@ RapidMigrationAssessmentConnectionImpl::PauseCollector( polling_policy(*current), __func__); } +StatusOr +RapidMigrationAssessmentConnectionImpl::PauseCollector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..d916b34c2c396 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request) override; + + future> + CreateCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAnnotation(google::cloud::rapidmigrationassessment::v1:: CreateAnnotationRequest const& request) override; + StatusOr CreateAnnotation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request) override; + + future> + CreateAnnotation(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request) override; + + future> + UpdateCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& request) override; + StatusOr DeleteCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request) override; + + future> + DeleteCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& request) override; + StatusOr ResumeCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request) override; + + future> + ResumeCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RegisterCollector(google::cloud::rapidmigrationassessment::v1:: RegisterCollectorRequest const& request) override; + StatusOr RegisterCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request) override; + + future> + RegisterCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& request) override; + StatusOr PauseCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request) override; + + future> + PauseCollector(google::cloud::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..0c495e8da4bf1 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,33 @@ RapidMigrationAssessmentTracingConnection::CreateCollector( return internal::EndSpan(std::move(span), child_->CreateCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::CreateCollector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::CreateCollector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::CreateAnnotation( google::cloud::rapidmigrationassessment::v1::CreateAnnotationRequest const& @@ -59,6 +86,33 @@ RapidMigrationAssessmentTracingConnection::CreateAnnotation( return internal::EndSpan(std::move(span), child_->CreateAnnotation(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::CreateAnnotation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::CreateAnnotation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr RapidMigrationAssessmentTracingConnection::GetAnnotation( google::cloud::rapidmigrationassessment::v1::GetAnnotationRequest const& @@ -106,6 +160,33 @@ RapidMigrationAssessmentTracingConnection::UpdateCollector( return internal::EndSpan(std::move(span), child_->UpdateCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::UpdateCollector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::UpdateCollector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& @@ -117,6 +198,33 @@ RapidMigrationAssessmentTracingConnection::DeleteCollector( return internal::EndSpan(std::move(span), child_->DeleteCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::DeleteCollector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::DeleteCollector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& @@ -128,6 +236,33 @@ RapidMigrationAssessmentTracingConnection::ResumeCollector( return internal::EndSpan(std::move(span), child_->ResumeCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::ResumeCollector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::ResumeCollector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::RegisterCollector( google::cloud::rapidmigrationassessment::v1::RegisterCollectorRequest const& @@ -139,6 +274,33 @@ RapidMigrationAssessmentTracingConnection::RegisterCollector( return internal::EndSpan(std::move(span), child_->RegisterCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::RegisterCollector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::RegisterCollector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> RapidMigrationAssessmentTracingConnection::PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& @@ -150,6 +312,33 @@ RapidMigrationAssessmentTracingConnection::PauseCollector( return internal::EndSpan(std::move(span), child_->PauseCollector(request)); } +StatusOr +RapidMigrationAssessmentTracingConnection::PauseCollector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RapidMigrationAssessmentTracingConnection::PauseCollector( + google::cloud::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(google::cloud::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..23ffcceb81de3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request) override; + + future> + CreateCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateAnnotation(google::cloud::rapidmigrationassessment::v1:: CreateAnnotationRequest const& request) override; + StatusOr CreateAnnotation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request) override; + + future> + CreateAnnotation(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request) override; + + future> + UpdateCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& request) override; + StatusOr DeleteCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request) override; + + future> + DeleteCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& request) override; + StatusOr ResumeCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request) override; + + future> + ResumeCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RegisterCollector(google::cloud::rapidmigrationassessment::v1:: RegisterCollectorRequest const& request) override; + StatusOr RegisterCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request) override; + + future> + RegisterCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& request) override; + StatusOr PauseCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request) override; + + future> + PauseCollector(google::cloud::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..d80a5ca5bd3c0 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,19 @@ class MockRapidMigrationAssessmentConnection CreateCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateCollector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateCollector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateAnnotation, @@ -62,6 +75,19 @@ class MockRapidMigrationAssessmentConnection CreateAnnotationRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateAnnotation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateAnnotation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAnnotation, @@ -90,6 +116,19 @@ class MockRapidMigrationAssessmentConnection UpdateCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateCollector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + UpdateCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateCollector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCollector, @@ -97,6 +136,19 @@ class MockRapidMigrationAssessmentConnection DeleteCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteCollector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + DeleteCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCollector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResumeCollector, @@ -104,6 +156,19 @@ class MockRapidMigrationAssessmentConnection ResumeCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, ResumeCollector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + ResumeCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ResumeCollector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RegisterCollector, @@ -111,12 +176,39 @@ class MockRapidMigrationAssessmentConnection RegisterCollectorRequest const& request), (override)); + MOCK_METHOD(StatusOr, RegisterCollector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RegisterCollector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PauseCollector, (google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, PauseCollector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + PauseCollector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_client.cc b/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_client.cc index 55185c7763b90..21f71fcb2ece8 100644 --- a/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_client.cc +++ b/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_client.cc @@ -47,6 +47,21 @@ RapidMigrationAssessmentClient::CreateCollector( return connection_->CreateCollector(request); } +StatusOr +RapidMigrationAssessmentClient::CreateCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::rapidmigrationassessment::v1::Collector const& collector, + std::string const& collector_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest request; + request.set_parent(parent); + *request.mutable_collector() = collector; + request.set_collector_id(collector_id); + return connection_->CreateCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RapidMigrationAssessmentClient::CreateCollector( google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& @@ -56,6 +71,26 @@ RapidMigrationAssessmentClient::CreateCollector( return connection_->CreateCollector(request); } +StatusOr +RapidMigrationAssessmentClient::CreateCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RapidMigrationAssessmentClient::CreateCollector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCollector(google::cloud::ExperimentalTag{}, + operation); +} + future> RapidMigrationAssessmentClient::CreateAnnotation( std::string const& parent, @@ -68,6 +103,20 @@ RapidMigrationAssessmentClient::CreateAnnotation( return connection_->CreateAnnotation(request); } +StatusOr +RapidMigrationAssessmentClient::CreateAnnotation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::rapidmigrationassessment::v1::Annotation const& annotation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::rapidmigrationassessment::v1::CreateAnnotationRequest request; + request.set_parent(parent); + *request.mutable_annotation() = annotation; + return connection_->CreateAnnotation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RapidMigrationAssessmentClient::CreateAnnotation( google::cloud::rapidmigrationassessment::v1::CreateAnnotationRequest const& @@ -77,6 +126,26 @@ RapidMigrationAssessmentClient::CreateAnnotation( return connection_->CreateAnnotation(request); } +StatusOr +RapidMigrationAssessmentClient::CreateAnnotation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateAnnotationRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAnnotation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RapidMigrationAssessmentClient::CreateAnnotation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAnnotation(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr RapidMigrationAssessmentClient::GetAnnotation(std::string const& name, Options opts) { @@ -141,6 +210,19 @@ RapidMigrationAssessmentClient::UpdateCollector( return connection_->UpdateCollector(request); } +StatusOr +RapidMigrationAssessmentClient::UpdateCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::Collector const& collector, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest request; + *request.mutable_collector() = collector; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RapidMigrationAssessmentClient::UpdateCollector( google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& @@ -150,6 +232,26 @@ RapidMigrationAssessmentClient::UpdateCollector( return connection_->UpdateCollector(request); } +StatusOr +RapidMigrationAssessmentClient::UpdateCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RapidMigrationAssessmentClient::UpdateCollector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCollector(google::cloud::ExperimentalTag{}, + operation); +} + future> RapidMigrationAssessmentClient::DeleteCollector(std::string const& name, Options opts) { @@ -159,6 +261,18 @@ RapidMigrationAssessmentClient::DeleteCollector(std::string const& name, return connection_->DeleteCollector(request); } +StatusOr +RapidMigrationAssessmentClient::DeleteCollector(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest request; + request.set_name(name); + return connection_->DeleteCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RapidMigrationAssessmentClient::DeleteCollector( google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& @@ -168,6 +282,26 @@ RapidMigrationAssessmentClient::DeleteCollector( return connection_->DeleteCollector(request); } +StatusOr +RapidMigrationAssessmentClient::DeleteCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RapidMigrationAssessmentClient::DeleteCollector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCollector(google::cloud::ExperimentalTag{}, + operation); +} + future> RapidMigrationAssessmentClient::ResumeCollector(std::string const& name, Options opts) { @@ -177,6 +311,18 @@ RapidMigrationAssessmentClient::ResumeCollector(std::string const& name, return connection_->ResumeCollector(request); } +StatusOr +RapidMigrationAssessmentClient::ResumeCollector(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest request; + request.set_name(name); + return connection_->ResumeCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RapidMigrationAssessmentClient::ResumeCollector( google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& @@ -186,6 +332,26 @@ RapidMigrationAssessmentClient::ResumeCollector( return connection_->ResumeCollector(request); } +StatusOr +RapidMigrationAssessmentClient::ResumeCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResumeCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RapidMigrationAssessmentClient::ResumeCollector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResumeCollector(google::cloud::ExperimentalTag{}, + operation); +} + future> RapidMigrationAssessmentClient::RegisterCollector(std::string const& name, Options opts) { @@ -195,6 +361,17 @@ RapidMigrationAssessmentClient::RegisterCollector(std::string const& name, return connection_->RegisterCollector(request); } +StatusOr +RapidMigrationAssessmentClient::RegisterCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::rapidmigrationassessment::v1::RegisterCollectorRequest request; + request.set_name(name); + return connection_->RegisterCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RapidMigrationAssessmentClient::RegisterCollector( google::cloud::rapidmigrationassessment::v1::RegisterCollectorRequest const& @@ -204,6 +381,26 @@ RapidMigrationAssessmentClient::RegisterCollector( return connection_->RegisterCollector(request); } +StatusOr +RapidMigrationAssessmentClient::RegisterCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::RegisterCollectorRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RegisterCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RapidMigrationAssessmentClient::RegisterCollector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RegisterCollector(google::cloud::ExperimentalTag{}, + operation); +} + future> RapidMigrationAssessmentClient::PauseCollector(std::string const& name, Options opts) { @@ -213,6 +410,18 @@ RapidMigrationAssessmentClient::PauseCollector(std::string const& name, return connection_->PauseCollector(request); } +StatusOr +RapidMigrationAssessmentClient::PauseCollector(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest request; + request.set_name(name); + return connection_->PauseCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RapidMigrationAssessmentClient::PauseCollector( google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& @@ -222,6 +431,26 @@ RapidMigrationAssessmentClient::PauseCollector( return connection_->PauseCollector(request); } +StatusOr +RapidMigrationAssessmentClient::PauseCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PauseCollector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RapidMigrationAssessmentClient::PauseCollector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PauseCollector(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace rapidmigrationassessment_v1 } // namespace cloud diff --git a/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_client.h b/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_client.h index 846288e4273de..54ba0e51e1bc0 100644 --- a/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_client.h +++ b/google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_client.h @@ -21,7 +21,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RAPIDMIGRATIONASSESSMENT_V1_RAPID_MIGRATION_ASSESSMENT_CLIENT_H #include "google/cloud/rapidmigrationassessment/v1/rapid_migration_assessment_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -130,6 +132,12 @@ class RapidMigrationAssessmentClient { google::cloud::rapidmigrationassessment::v1::Collector const& collector, std::string const& collector_id, Options opts = {}); + StatusOr CreateCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::rapidmigrationassessment::v1::Collector const& collector, + std::string const& collector_id, Options opts = {}); + // clang-format off /// /// Create a Collector to manage the on-prem appliance which collects @@ -171,6 +179,17 @@ class RapidMigrationAssessmentClient { request, Options opts = {}); + StatusOr CreateCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::CreateCollectorRequest const& + request, + Options opts = {}); + + future> + CreateCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates an Annotation @@ -207,6 +226,12 @@ class RapidMigrationAssessmentClient { google::cloud::rapidmigrationassessment::v1::Annotation const& annotation, Options opts = {}); + StatusOr CreateAnnotation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::rapidmigrationassessment::v1::Annotation const& annotation, + Options opts = {}); + // clang-format off /// /// Creates an Annotation @@ -246,6 +271,17 @@ class RapidMigrationAssessmentClient { CreateAnnotationRequest const& request, Options opts = {}); + StatusOr CreateAnnotation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + CreateAnnotationRequest const& request, + Options opts = {}); + + future> + CreateAnnotation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of a single Annotation. @@ -476,6 +512,11 @@ class RapidMigrationAssessmentClient { google::cloud::rapidmigrationassessment::v1::Collector const& collector, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::Collector const& collector, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Collector. @@ -516,6 +557,17 @@ class RapidMigrationAssessmentClient { request, Options opts = {}); + StatusOr UpdateCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::UpdateCollectorRequest const& + request, + Options opts = {}); + + future> + UpdateCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single Collector - changes state of collector to "Deleting". @@ -549,6 +601,10 @@ class RapidMigrationAssessmentClient { future> DeleteCollector(std::string const& name, Options opts = {}); + StatusOr DeleteCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Collector - changes state of collector to "Deleting". @@ -590,6 +646,17 @@ class RapidMigrationAssessmentClient { request, Options opts = {}); + StatusOr DeleteCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::DeleteCollectorRequest const& + request, + Options opts = {}); + + future> + DeleteCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resumes the given collector. @@ -622,6 +689,10 @@ class RapidMigrationAssessmentClient { future> ResumeCollector(std::string const& name, Options opts = {}); + StatusOr ResumeCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Resumes the given collector. @@ -662,6 +733,17 @@ class RapidMigrationAssessmentClient { request, Options opts = {}); + StatusOr ResumeCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::ResumeCollectorRequest const& + request, + Options opts = {}); + + future> + ResumeCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Registers the given collector. @@ -694,6 +776,10 @@ class RapidMigrationAssessmentClient { future> RegisterCollector(std::string const& name, Options opts = {}); + StatusOr RegisterCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Registers the given collector. @@ -733,6 +819,17 @@ class RapidMigrationAssessmentClient { RegisterCollectorRequest const& request, Options opts = {}); + StatusOr RegisterCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1:: + RegisterCollectorRequest const& request, + Options opts = {}); + + future> + RegisterCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Pauses the given collector. @@ -765,6 +862,10 @@ class RapidMigrationAssessmentClient { future> PauseCollector(std::string const& name, Options opts = {}); + StatusOr PauseCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Pauses the given collector. @@ -805,6 +906,17 @@ class RapidMigrationAssessmentClient { request, Options opts = {}); + StatusOr PauseCollector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::rapidmigrationassessment::v1::PauseCollectorRequest const& + request, + Options opts = {}); + + future> + PauseCollector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_client.h index dfaccb80c57e0..3a11d3ac847f2 100644 --- a/google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_client.h +++ b/google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RECAPTCHAENTERPRISE_V1_RECAPTCHA_ENTERPRISE_CLIENT_H #include "google/cloud/recaptchaenterprise/v1/recaptcha_enterprise_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/recommender/v1/recommender_client.h index 5ab513f99a4f0..772b6b717c078 100644 --- a/google/cloud/recommender/v1/recommender_client.h +++ b/google/cloud/recommender/v1/recommender_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RECOMMENDER_V1_RECOMMENDER_CLIENT_H #include "google/cloud/recommender/v1/recommender_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/redis/cluster/v1/cloud_redis_cluster_client.cc index 8243523565956..ced5267fdffc2 100644 --- a/google/cloud/redis/cluster/v1/cloud_redis_cluster_client.cc +++ b/google/cloud/redis/cluster/v1/cloud_redis_cluster_client.cc @@ -75,6 +75,18 @@ CloudRedisClusterClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr CloudRedisClusterClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::cluster::v1::UpdateClusterRequest request; + *request.mutable_cluster() = cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClusterClient::UpdateCluster( google::cloud::redis::cluster::v1::UpdateClusterRequest const& request, @@ -83,6 +95,24 @@ CloudRedisClusterClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr CloudRedisClusterClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClusterClient::UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClusterClient::DeleteCluster( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -91,6 +121,16 @@ future> CloudRedisClusterClient::DeleteCluster( return connection_->DeleteCluster(request); } +StatusOr CloudRedisClusterClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::cluster::v1::DeleteClusterRequest request; + request.set_name(name); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClusterClient::DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request, Options opts) { @@ -98,6 +138,23 @@ future> CloudRedisClusterClient::DeleteCluster( return connection_->DeleteCluster(request); } +StatusOr CloudRedisClusterClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> CloudRedisClusterClient::DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClusterClient::CreateCluster( std::string const& parent, @@ -111,6 +168,20 @@ CloudRedisClusterClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr CloudRedisClusterClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::redis::cluster::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::cluster::v1::CreateClusterRequest request; + request.set_parent(parent); + *request.mutable_cluster() = cluster; + request.set_cluster_id(cluster_id); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClusterClient::CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request, @@ -119,6 +190,24 @@ CloudRedisClusterClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr CloudRedisClusterClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClusterClient::CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr CloudRedisClusterClient::GetClusterCertificateAuthority(std::string const& name, Options opts) { diff --git a/google/cloud/redis/cluster/v1/cloud_redis_cluster_client.h b/google/cloud/redis/cluster/v1/cloud_redis_cluster_client.h index 2827364ba16cc..9048960a084ad 100644 --- a/google/cloud/redis/cluster/v1/cloud_redis_cluster_client.h +++ b/google/cloud/redis/cluster/v1/cloud_redis_cluster_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_REDIS_CLUSTER_V1_CLOUD_REDIS_CLUSTER_CLIENT_H #include "google/cloud/redis/cluster/v1/cloud_redis_cluster_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -304,6 +306,11 @@ class CloudRedisClusterClient { google::cloud::redis::cluster::v1::Cluster const& cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the metadata and configuration of a specific Redis cluster. @@ -346,6 +353,15 @@ class CloudRedisClusterClient { google::cloud::redis::cluster::v1::UpdateClusterRequest const& request, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request, + Options opts = {}); + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a specific Redis cluster. Cluster stops serving and data is @@ -381,6 +397,10 @@ class CloudRedisClusterClient { future> DeleteCluster(std::string const& name, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific Redis cluster. Cluster stops serving and data is @@ -420,6 +440,15 @@ class CloudRedisClusterClient { google::cloud::redis::cluster::v1::DeleteClusterRequest const& request, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request, + Options opts = {}); + + future> DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a Redis cluster based on the specified properties. @@ -472,6 +501,12 @@ class CloudRedisClusterClient { google::cloud::redis::cluster::v1::Cluster const& cluster, std::string const& cluster_id, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::redis::cluster::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts = {}); + // clang-format off /// /// Creates a Redis cluster based on the specified properties. @@ -517,6 +552,15 @@ class CloudRedisClusterClient { google::cloud::redis::cluster::v1::CreateClusterRequest const& request, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request, + Options opts = {}); + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the details of certificate authority information for Redis cluster. 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..94712b63dc9b7 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,59 @@ CloudRedisClusterConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +CloudRedisClusterConnectionImpl::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +250,58 @@ CloudRedisClusterConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +CloudRedisClusterConnectionImpl::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +342,59 @@ CloudRedisClusterConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +CloudRedisClusterConnectionImpl::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..7326203c3eeb6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) + override; + + future> DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::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..f87273aae1d12 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,30 @@ CloudRedisClusterTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +CloudRedisClusterTracingConnection::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisClusterTracingConnection::UpdateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisClusterTracingConnection::DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) { @@ -72,6 +96,30 @@ CloudRedisClusterTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +CloudRedisClusterTracingConnection::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisClusterTracingConnection::DeleteCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisClusterTracingConnection::CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request) { @@ -81,6 +129,30 @@ CloudRedisClusterTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +CloudRedisClusterTracingConnection::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisClusterTracingConnection::CreateCluster( + google::cloud::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(google::cloud::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..90875e5c06067 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster( google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request) + override; + + future> DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCluster( google::cloud::redis::cluster::v1::CreateClusterRequest const& request) override; + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::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..ddef397384e54 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::redis::cluster::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateCluster, (google::cloud::redis::cluster::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::cluster::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (google::cloud::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_client.cc b/google/cloud/redis/v1/cloud_redis_client.cc index f60699c630f10..4b0e2bace0be1 100644 --- a/google/cloud/redis/v1/cloud_redis_client.cc +++ b/google/cloud/redis/v1/cloud_redis_client.cc @@ -88,6 +88,19 @@ CloudRedisClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr CloudRedisClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& instance_id, + google::cloud::redis::v1::Instance const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::v1::CreateInstanceRequest request; + request.set_parent(parent); + request.set_instance_id(instance_id); + *request.mutable_instance() = instance; + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClient::CreateInstance( google::cloud::redis::v1::CreateInstanceRequest const& request, @@ -96,6 +109,24 @@ CloudRedisClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr CloudRedisClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClient::UpdateInstance( google::protobuf::FieldMask const& update_mask, @@ -107,6 +138,18 @@ CloudRedisClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr CloudRedisClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::protobuf::FieldMask const& update_mask, + google::cloud::redis::v1::Instance const& instance, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::v1::UpdateInstanceRequest request; + *request.mutable_update_mask() = update_mask; + *request.mutable_instance() = instance; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClient::UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request, @@ -115,6 +158,24 @@ CloudRedisClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr CloudRedisClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClient::UpgradeInstance(std::string const& name, std::string const& redis_version, @@ -126,6 +187,17 @@ CloudRedisClient::UpgradeInstance(std::string const& name, return connection_->UpgradeInstance(request); } +StatusOr CloudRedisClient::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& redis_version, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::v1::UpgradeInstanceRequest request; + request.set_name(name); + request.set_redis_version(redis_version); + return connection_->UpgradeInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClient::UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request, @@ -134,6 +206,24 @@ CloudRedisClient::UpgradeInstance( return connection_->UpgradeInstance(request); } +StatusOr CloudRedisClient::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClient::UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClient::ImportInstance( std::string const& name, @@ -145,6 +235,18 @@ CloudRedisClient::ImportInstance( return connection_->ImportInstance(request); } +StatusOr CloudRedisClient::ImportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::redis::v1::InputConfig const& input_config, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::v1::ImportInstanceRequest request; + request.set_name(name); + *request.mutable_input_config() = input_config; + return connection_->ImportInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClient::ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request, @@ -153,6 +255,24 @@ CloudRedisClient::ImportInstance( return connection_->ImportInstance(request); } +StatusOr CloudRedisClient::ImportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClient::ImportInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClient::ExportInstance( std::string const& name, @@ -164,6 +284,18 @@ CloudRedisClient::ExportInstance( return connection_->ExportInstance(request); } +StatusOr CloudRedisClient::ExportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::redis::v1::OutputConfig const& output_config, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::v1::ExportInstanceRequest request; + request.set_name(name); + *request.mutable_output_config() = output_config; + return connection_->ExportInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClient::ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request, @@ -172,6 +304,24 @@ CloudRedisClient::ExportInstance( return connection_->ExportInstance(request); } +StatusOr CloudRedisClient::ExportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClient::ExportInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClient::FailoverInstance( std::string const& name, @@ -185,6 +335,20 @@ CloudRedisClient::FailoverInstance( return connection_->FailoverInstance(request); } +StatusOr CloudRedisClient::FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::redis::v1::FailoverInstanceRequest::DataProtectionMode + data_protection_mode, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::v1::FailoverInstanceRequest request; + request.set_name(name); + request.set_data_protection_mode(data_protection_mode); + return connection_->FailoverInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClient::FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request, @@ -193,6 +357,24 @@ CloudRedisClient::FailoverInstance( return connection_->FailoverInstance(request); } +StatusOr CloudRedisClient::FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->FailoverInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClient::FailoverInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->FailoverInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClient::DeleteInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -201,6 +383,16 @@ CloudRedisClient::DeleteInstance(std::string const& name, Options opts) { return connection_->DeleteInstance(request); } +StatusOr CloudRedisClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::v1::DeleteInstanceRequest request; + request.set_name(name); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClient::DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request, @@ -209,6 +401,24 @@ CloudRedisClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr CloudRedisClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudRedisClient::RescheduleMaintenance( std::string const& name, @@ -223,6 +433,22 @@ CloudRedisClient::RescheduleMaintenance( return connection_->RescheduleMaintenance(request); } +StatusOr +CloudRedisClient::RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::redis::v1::RescheduleMaintenanceRequest::RescheduleType + reschedule_type, + google::protobuf::Timestamp const& schedule_time, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::redis::v1::RescheduleMaintenanceRequest request; + request.set_name(name); + request.set_reschedule_type(reschedule_type); + *request.mutable_schedule_time() = schedule_time; + return connection_->RescheduleMaintenance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> CloudRedisClient::RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request, @@ -231,6 +457,25 @@ CloudRedisClient::RescheduleMaintenance( return connection_->RescheduleMaintenance(request); } +StatusOr +CloudRedisClient::RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RescheduleMaintenance( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudRedisClient::RescheduleMaintenance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RescheduleMaintenance(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace redis_v1 } // namespace cloud diff --git a/google/cloud/redis/v1/cloud_redis_client.h b/google/cloud/redis/v1/cloud_redis_client.h index 22d3f7e992bc9..08a42fe3d2aaa 100644 --- a/google/cloud/redis/v1/cloud_redis_client.h +++ b/google/cloud/redis/v1/cloud_redis_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_REDIS_V1_CLOUD_REDIS_CLIENT_H #include "google/cloud/redis/v1/cloud_redis_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -368,6 +370,11 @@ class CloudRedisClient { std::string const& parent, std::string const& instance_id, google::cloud::redis::v1::Instance const& instance, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& instance_id, + google::cloud::redis::v1::Instance const& instance, Options opts = {}); + // clang-format off /// /// Creates a Redis instance based on the specified tier and memory size. @@ -417,6 +424,15 @@ class CloudRedisClient { google::cloud::redis::v1::CreateInstanceRequest const& request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request, + Options opts = {}); + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the metadata and configuration of a specific Redis instance. @@ -464,6 +480,11 @@ class CloudRedisClient { google::protobuf::FieldMask const& update_mask, google::cloud::redis::v1::Instance const& instance, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::protobuf::FieldMask const& update_mask, + google::cloud::redis::v1::Instance const& instance, Options opts = {}); + // clang-format off /// /// Updates the metadata and configuration of a specific Redis instance. @@ -506,6 +527,15 @@ class CloudRedisClient { google::cloud::redis::v1::UpdateInstanceRequest const& request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request, + Options opts = {}); + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Upgrades Redis instance to the newer Redis version specified in the @@ -543,6 +573,11 @@ class CloudRedisClient { std::string const& name, std::string const& redis_version, Options opts = {}); + StatusOr UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& redis_version, + Options opts = {}); + // clang-format off /// /// Upgrades Redis instance to the newer Redis version specified in the @@ -582,6 +617,15 @@ class CloudRedisClient { google::cloud::redis::v1::UpgradeInstanceRequest const& request, Options opts = {}); + StatusOr UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request, + Options opts = {}); + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Import a Redis RDB snapshot file from Cloud Storage into a Redis instance. @@ -626,6 +670,12 @@ class CloudRedisClient { google::cloud::redis::v1::InputConfig const& input_config, Options opts = {}); + StatusOr ImportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::redis::v1::InputConfig const& input_config, + Options opts = {}); + // clang-format off /// /// Import a Redis RDB snapshot file from Cloud Storage into a Redis instance. @@ -671,6 +721,15 @@ class CloudRedisClient { google::cloud::redis::v1::ImportInstanceRequest const& request, Options opts = {}); + StatusOr ImportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request, + Options opts = {}); + + future> ImportInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Export Redis instance data into a Redis RDB format file in Cloud Storage. @@ -713,6 +772,12 @@ class CloudRedisClient { google::cloud::redis::v1::OutputConfig const& output_config, Options opts = {}); + StatusOr ExportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::redis::v1::OutputConfig const& output_config, + Options opts = {}); + // clang-format off /// /// Export Redis instance data into a Redis RDB format file in Cloud Storage. @@ -756,6 +821,15 @@ class CloudRedisClient { google::cloud::redis::v1::ExportInstanceRequest const& request, Options opts = {}); + StatusOr ExportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request, + Options opts = {}); + + future> ExportInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Initiates a failover of the primary node to current replica node for a @@ -796,6 +870,13 @@ class CloudRedisClient { data_protection_mode, Options opts = {}); + StatusOr FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::redis::v1::FailoverInstanceRequest::DataProtectionMode + data_protection_mode, + Options opts = {}); + // clang-format off /// /// Initiates a failover of the primary node to current replica node for a @@ -835,6 +916,15 @@ class CloudRedisClient { google::cloud::redis::v1::FailoverInstanceRequest const& request, Options opts = {}); + StatusOr FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request, + Options opts = {}); + + future> FailoverInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a specific Redis instance. Instance stops serving and data is @@ -870,6 +960,10 @@ class CloudRedisClient { future> DeleteInstance( std::string const& name, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a specific Redis instance. Instance stops serving and data is @@ -909,6 +1003,15 @@ class CloudRedisClient { google::cloud::redis::v1::DeleteInstanceRequest const& request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request, + Options opts = {}); + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Reschedule maintenance for a given instance in a given project and @@ -952,6 +1055,13 @@ class CloudRedisClient { reschedule_type, google::protobuf::Timestamp const& schedule_time, Options opts = {}); + StatusOr RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::redis::v1::RescheduleMaintenanceRequest::RescheduleType + reschedule_type, + google::protobuf::Timestamp const& schedule_time, Options opts = {}); + // clang-format off /// /// Reschedule maintenance for a given instance in a given project and @@ -991,6 +1101,15 @@ class CloudRedisClient { google::cloud::redis::v1::RescheduleMaintenanceRequest const& request, Options opts = {}); + StatusOr RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request, + Options opts = {}); + + future> RescheduleMaintenance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..6d67849dc5c04 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,58 @@ CloudRedisConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +255,58 @@ CloudRedisConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +346,58 @@ CloudRedisConnectionImpl::UpgradeInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +437,58 @@ CloudRedisConnectionImpl::ImportInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::ImportInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +528,58 @@ CloudRedisConnectionImpl::ExportInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::ExportInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +619,58 @@ CloudRedisConnectionImpl::FailoverInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +710,59 @@ CloudRedisConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +803,59 @@ CloudRedisConnectionImpl::RescheduleMaintenance( polling_policy(*current), __func__); } +StatusOr +CloudRedisConnectionImpl::RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..f24e61a6fb0ff 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request) override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request) override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request) override; + StatusOr UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request) override; + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request) override; + StatusOr ImportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request) override; + + future> ImportInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request) override; + StatusOr ExportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request) override; + + future> ExportInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request) override; + StatusOr FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request) + override; + + future> FailoverInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request) override; + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) override; + StatusOr RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) + override; + + future> RescheduleMaintenance( + google::cloud::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..e400867767ca2 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,30 @@ CloudRedisTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +CloudRedisTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request) { @@ -79,6 +103,30 @@ CloudRedisTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +CloudRedisTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request) { @@ -88,6 +136,30 @@ CloudRedisTracingConnection::UpgradeInstance( return internal::EndSpan(std::move(span), child_->UpgradeInstance(request)); } +StatusOr +CloudRedisTracingConnection::UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::UpgradeInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request) { @@ -97,6 +169,30 @@ CloudRedisTracingConnection::ImportInstance( return internal::EndSpan(std::move(span), child_->ImportInstance(request)); } +StatusOr +CloudRedisTracingConnection::ImportInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::ImportInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request) { @@ -106,6 +202,30 @@ CloudRedisTracingConnection::ExportInstance( return internal::EndSpan(std::move(span), child_->ExportInstance(request)); } +StatusOr +CloudRedisTracingConnection::ExportInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::ExportInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request) { @@ -115,6 +235,30 @@ CloudRedisTracingConnection::FailoverInstance( return internal::EndSpan(std::move(span), child_->FailoverInstance(request)); } +StatusOr +CloudRedisTracingConnection::FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::FailoverInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request) { @@ -124,6 +268,30 @@ CloudRedisTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +CloudRedisTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudRedisTracingConnection::RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) { @@ -134,6 +302,30 @@ CloudRedisTracingConnection::RescheduleMaintenance( child_->RescheduleMaintenance(request)); } +StatusOr +CloudRedisTracingConnection::RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudRedisTracingConnection::RescheduleMaintenance( + google::cloud::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( + google::cloud::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..4f05bb5aab7c0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request) override; + + future> CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::cloud::redis::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request) override; + + future> UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeInstance( google::cloud::redis::v1::UpgradeInstanceRequest const& request) override; + StatusOr UpgradeInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request) override; + + future> UpgradeInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportInstance( google::cloud::redis::v1::ImportInstanceRequest const& request) override; + StatusOr ImportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request) override; + + future> ImportInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ExportInstance( google::cloud::redis::v1::ExportInstanceRequest const& request) override; + StatusOr ExportInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request) override; + + future> ExportInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FailoverInstance( google::cloud::redis::v1::FailoverInstanceRequest const& request) override; + StatusOr FailoverInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request) + override; + + future> FailoverInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::redis::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request) override; + + future> DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RescheduleMaintenance( google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) override; + StatusOr RescheduleMaintenance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request) + override; + + future> RescheduleMaintenance( + google::cloud::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..46d5d4e0db7e9 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::CreateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateInstance, (google::cloud::redis::v1::UpdateInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpdateInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpgradeInstance, (google::cloud::redis::v1::UpgradeInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpgradeInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::UpgradeInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpgradeInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ImportInstance, (google::cloud::redis::v1::ImportInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, ImportInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ImportInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + ImportInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ExportInstance, (google::cloud::redis::v1::ExportInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, ExportInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::ExportInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + ExportInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, FailoverInstance, (google::cloud::redis::v1::FailoverInstanceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, FailoverInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::FailoverInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + FailoverInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteInstance, (google::cloud::redis::v1::DeleteInstanceRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::DeleteInstanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RescheduleMaintenance, (google::cloud::redis::v1::RescheduleMaintenanceRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RescheduleMaintenance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::redis::v1::RescheduleMaintenanceRequest const& request), + (override)); + + MOCK_METHOD(future>, + RescheduleMaintenance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/resourcemanager/v3/folders_client.cc b/google/cloud/resourcemanager/v3/folders_client.cc index 88160bed40168..2d257634626a3 100644 --- a/google/cloud/resourcemanager/v3/folders_client.cc +++ b/google/cloud/resourcemanager/v3/folders_client.cc @@ -90,6 +90,16 @@ FoldersClient::CreateFolder( return connection_->CreateFolder(request); } +StatusOr FoldersClient::CreateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::Folder const& folder, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::CreateFolderRequest request; + *request.mutable_folder() = folder; + return connection_->CreateFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FoldersClient::CreateFolder( google::cloud::resourcemanager::v3::CreateFolderRequest const& request, @@ -98,6 +108,23 @@ FoldersClient::CreateFolder( return connection_->CreateFolder(request); } +StatusOr FoldersClient::CreateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FoldersClient::CreateFolder(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateFolder(google::cloud::ExperimentalTag{}, operation); +} + future> FoldersClient::UpdateFolder( google::cloud::resourcemanager::v3::Folder const& folder, @@ -109,6 +136,18 @@ FoldersClient::UpdateFolder( return connection_->UpdateFolder(request); } +StatusOr FoldersClient::UpdateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::Folder const& folder, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::UpdateFolderRequest request; + *request.mutable_folder() = folder; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FoldersClient::UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request, @@ -117,6 +156,23 @@ FoldersClient::UpdateFolder( return connection_->UpdateFolder(request); } +StatusOr FoldersClient::UpdateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FoldersClient::UpdateFolder(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateFolder(google::cloud::ExperimentalTag{}, operation); +} + future> FoldersClient::MoveFolder(std::string const& name, std::string const& destination_parent, Options opts) { @@ -127,6 +183,18 @@ FoldersClient::MoveFolder(std::string const& name, return connection_->MoveFolder(request); } +StatusOr FoldersClient::MoveFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& destination_parent, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::MoveFolderRequest request; + request.set_name(name); + request.set_destination_parent(destination_parent); + return connection_->MoveFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FoldersClient::MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request, @@ -135,6 +203,23 @@ FoldersClient::MoveFolder( return connection_->MoveFolder(request); } +StatusOr FoldersClient::MoveFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FoldersClient::MoveFolder(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveFolder(google::cloud::ExperimentalTag{}, operation); +} + future> FoldersClient::DeleteFolder(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -143,6 +228,16 @@ FoldersClient::DeleteFolder(std::string const& name, Options opts) { return connection_->DeleteFolder(request); } +StatusOr FoldersClient::DeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::DeleteFolderRequest request; + request.set_name(name); + return connection_->DeleteFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FoldersClient::DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request, @@ -151,6 +246,23 @@ FoldersClient::DeleteFolder( return connection_->DeleteFolder(request); } +StatusOr FoldersClient::DeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FoldersClient::DeleteFolder(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteFolder(google::cloud::ExperimentalTag{}, operation); +} + future> FoldersClient::UndeleteFolder(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -159,6 +271,16 @@ FoldersClient::UndeleteFolder(std::string const& name, Options opts) { return connection_->UndeleteFolder(request); } +StatusOr FoldersClient::UndeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::UndeleteFolderRequest request; + request.set_name(name); + return connection_->UndeleteFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> FoldersClient::UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request, @@ -167,6 +289,24 @@ FoldersClient::UndeleteFolder( return connection_->UndeleteFolder(request); } +StatusOr FoldersClient::UndeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +FoldersClient::UndeleteFolder(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteFolder(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr FoldersClient::GetIamPolicy( std::string const& resource, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/resourcemanager/v3/folders_client.h b/google/cloud/resourcemanager/v3/folders_client.h index 71e23d33f67ab..93ce193adb97e 100644 --- a/google/cloud/resourcemanager/v3/folders_client.h +++ b/google/cloud/resourcemanager/v3/folders_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RESOURCEMANAGER_V3_FOLDERS_CLIENT_H #include "google/cloud/resourcemanager/v3/folders_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -395,6 +397,11 @@ class FoldersClient { google::cloud::resourcemanager::v3::Folder const& folder, Options opts = {}); + StatusOr CreateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::Folder const& folder, + Options opts = {}); + // clang-format off /// /// Creates a folder in the resource hierarchy. @@ -459,6 +466,15 @@ class FoldersClient { google::cloud::resourcemanager::v3::CreateFolderRequest const& request, Options opts = {}); + StatusOr CreateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request, + Options opts = {}); + + future> CreateFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a folder, changing its `display_name`. @@ -512,6 +528,11 @@ class FoldersClient { google::cloud::resourcemanager::v3::Folder const& folder, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::Folder const& folder, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a folder, changing its `display_name`. @@ -567,6 +588,15 @@ class FoldersClient { google::cloud::resourcemanager::v3::UpdateFolderRequest const& request, Options opts = {}); + StatusOr UpdateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request, + Options opts = {}); + + future> UpdateFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Moves a folder under a new resource parent. @@ -621,6 +651,11 @@ class FoldersClient { std::string const& name, std::string const& destination_parent, Options opts = {}); + StatusOr MoveFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& destination_parent, + Options opts = {}); + // clang-format off /// /// Moves a folder under a new resource parent. @@ -676,6 +711,15 @@ class FoldersClient { google::cloud::resourcemanager::v3::MoveFolderRequest const& request, Options opts = {}); + StatusOr MoveFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request, + Options opts = {}); + + future> MoveFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Requests deletion of a folder. The folder is moved into the @@ -721,6 +765,10 @@ class FoldersClient { future> DeleteFolder( std::string const& name, Options opts = {}); + StatusOr DeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Requests deletion of a folder. The folder is moved into the @@ -771,6 +819,15 @@ class FoldersClient { google::cloud::resourcemanager::v3::DeleteFolderRequest const& request, Options opts = {}); + StatusOr DeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request, + Options opts = {}); + + future> DeleteFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Cancels the deletion request for a folder. This method may be called on a @@ -816,6 +873,10 @@ class FoldersClient { future> UndeleteFolder( std::string const& name, Options opts = {}); + StatusOr UndeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Cancels the deletion request for a folder. This method may be called on a @@ -866,6 +927,15 @@ class FoldersClient { google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request, Options opts = {}); + StatusOr UndeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request, + Options opts = {}); + + future> UndeleteFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the access control policy for a folder. The returned policy may be 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..89678cc684b4b 100644 --- a/google/cloud/resourcemanager/v3/internal/folders_connection_impl.cc +++ b/google/cloud/resourcemanager/v3/internal/folders_connection_impl.cc @@ -188,6 +188,60 @@ FoldersConnectionImpl::CreateFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::CreateFolder( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +282,60 @@ FoldersConnectionImpl::UpdateFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::UpdateFolder( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +376,60 @@ FoldersConnectionImpl::MoveFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::MoveFolder( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +470,60 @@ FoldersConnectionImpl::DeleteFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::DeleteFolder( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +564,60 @@ FoldersConnectionImpl::UndeleteFolder( polling_policy(*current), __func__); } +StatusOr FoldersConnectionImpl::UndeleteFolder( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..a80a8557bc383 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request) + override; + + future> CreateFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) override; + StatusOr UpdateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) + override; + + future> UpdateFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request) override; + StatusOr MoveFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request) + override; + + future> MoveFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) override; + StatusOr DeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) + override; + + future> DeleteFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) override; + StatusOr UndeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) + override; + + future> UndeleteFolder( + google::cloud::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..0ff2e167c6c26 100644 --- a/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.cc +++ b/google/cloud/resourcemanager/v3/internal/folders_tracing_connection.cc @@ -75,6 +75,29 @@ FoldersTracingConnection::CreateFolder( return internal::EndSpan(std::move(span), child_->CreateFolder(request)); } +StatusOr FoldersTracingConnection::CreateFolder( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::CreateFolder( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FoldersTracingConnection::UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) { @@ -84,6 +107,29 @@ FoldersTracingConnection::UpdateFolder( return internal::EndSpan(std::move(span), child_->UpdateFolder(request)); } +StatusOr FoldersTracingConnection::UpdateFolder( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::UpdateFolder( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FoldersTracingConnection::MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request) { @@ -93,6 +139,29 @@ FoldersTracingConnection::MoveFolder( return internal::EndSpan(std::move(span), child_->MoveFolder(request)); } +StatusOr FoldersTracingConnection::MoveFolder( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::MoveFolder( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FoldersTracingConnection::DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) { @@ -102,6 +171,29 @@ FoldersTracingConnection::DeleteFolder( return internal::EndSpan(std::move(span), child_->DeleteFolder(request)); } +StatusOr FoldersTracingConnection::DeleteFolder( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::DeleteFolder( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> FoldersTracingConnection::UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) { @@ -111,6 +203,30 @@ FoldersTracingConnection::UndeleteFolder( return internal::EndSpan(std::move(span), child_->UndeleteFolder(request)); } +StatusOr +FoldersTracingConnection::UndeleteFolder( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +FoldersTracingConnection::UndeleteFolder( + google::cloud::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(google::cloud::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..e10db63cac578 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request) + override; + + future> CreateFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateFolder( google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) override; + StatusOr UpdateFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request) + override; + + future> UpdateFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveFolder( google::cloud::resourcemanager::v3::MoveFolderRequest const& request) override; + StatusOr MoveFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request) + override; + + future> MoveFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteFolder( google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) override; + StatusOr DeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request) + override; + + future> DeleteFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteFolder( google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) override; + StatusOr UndeleteFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request) + override; + + future> UndeleteFolder( + google::cloud::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..2f947419b489b 100644 --- a/google/cloud/resourcemanager/v3/internal/projects_connection_impl.cc +++ b/google/cloud/resourcemanager/v3/internal/projects_connection_impl.cc @@ -191,6 +191,60 @@ ProjectsConnectionImpl::CreateProject( polling_policy(*current), __func__); } +StatusOr ProjectsConnectionImpl::CreateProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +285,60 @@ ProjectsConnectionImpl::UpdateProject( polling_policy(*current), __func__); } +StatusOr ProjectsConnectionImpl::UpdateProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +379,60 @@ ProjectsConnectionImpl::MoveProject( polling_policy(*current), __func__); } +StatusOr ProjectsConnectionImpl::MoveProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +473,60 @@ ProjectsConnectionImpl::DeleteProject( polling_policy(*current), __func__); } +StatusOr ProjectsConnectionImpl::DeleteProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +567,61 @@ ProjectsConnectionImpl::UndeleteProject( polling_policy(*current), __func__); } +StatusOr +ProjectsConnectionImpl::UndeleteProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..0d121ff69f7bd 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request) + override; + + future> CreateProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) override; + StatusOr UpdateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) + override; + + future> UpdateProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request) override; + StatusOr MoveProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request) + override; + + future> MoveProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) override; + StatusOr DeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) + override; + + future> DeleteProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) override; + StatusOr UndeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) + override; + + future> UndeleteProject( + google::cloud::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..5887bdcd4f98c 100644 --- a/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.cc +++ b/google/cloud/resourcemanager/v3/internal/projects_tracing_connection.cc @@ -75,6 +75,30 @@ ProjectsTracingConnection::CreateProject( return internal::EndSpan(std::move(span), child_->CreateProject(request)); } +StatusOr +ProjectsTracingConnection::CreateProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::CreateProject( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) { @@ -84,6 +108,30 @@ ProjectsTracingConnection::UpdateProject( return internal::EndSpan(std::move(span), child_->UpdateProject(request)); } +StatusOr +ProjectsTracingConnection::UpdateProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::UpdateProject( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request) { @@ -93,6 +141,29 @@ ProjectsTracingConnection::MoveProject( return internal::EndSpan(std::move(span), child_->MoveProject(request)); } +StatusOr ProjectsTracingConnection::MoveProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::MoveProject( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) { @@ -102,6 +173,30 @@ ProjectsTracingConnection::DeleteProject( return internal::EndSpan(std::move(span), child_->DeleteProject(request)); } +StatusOr +ProjectsTracingConnection::DeleteProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::DeleteProject( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProjectsTracingConnection::UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) { @@ -111,6 +206,30 @@ ProjectsTracingConnection::UndeleteProject( return internal::EndSpan(std::move(span), child_->UndeleteProject(request)); } +StatusOr +ProjectsTracingConnection::UndeleteProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProjectsTracingConnection::UndeleteProject( + google::cloud::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(google::cloud::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..fe53a20d4fa32 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request) + override; + + future> CreateProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) override; + StatusOr UpdateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request) + override; + + future> UpdateProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request) override; + StatusOr MoveProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request) + override; + + future> MoveProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) override; + StatusOr DeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request) + override; + + future> DeleteProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) override; + StatusOr UndeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request) + override; + + future> UndeleteProject( + google::cloud::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..ed20b01bef62c 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,62 @@ TagBindingsConnectionImpl::CreateTagBinding( polling_policy(*current), __func__); } +StatusOr +TagBindingsConnectionImpl::CreateTagBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +239,62 @@ TagBindingsConnectionImpl::DeleteTagBinding( polling_policy(*current), __func__); } +StatusOr +TagBindingsConnectionImpl::DeleteTagBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..a996a0d4e402f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request) override; + + future> + CreateTagBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& request) override; + StatusOr DeleteTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request) override; + + future> + DeleteTagBinding(google::cloud::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..cc64a2e651288 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,31 @@ TagBindingsTracingConnection::CreateTagBinding( return internal::EndSpan(std::move(span), child_->CreateTagBinding(request)); } +StatusOr +TagBindingsTracingConnection::CreateTagBinding( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagBindingsTracingConnection::CreateTagBinding( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TagBindingsTracingConnection::DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& @@ -65,6 +90,31 @@ TagBindingsTracingConnection::DeleteTagBinding( return internal::EndSpan(std::move(span), child_->DeleteTagBinding(request)); } +StatusOr +TagBindingsTracingConnection::DeleteTagBinding( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagBindingsTracingConnection::DeleteTagBinding( + google::cloud::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(google::cloud::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..021796ed192b4 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request) override; + + future> + CreateTagBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& request) override; + StatusOr DeleteTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request) override; + + future> + DeleteTagBinding(google::cloud::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..f315b3486aa8f 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,60 @@ TagHoldsConnectionImpl::CreateTagHold( polling_policy(*current), __func__); } +StatusOr TagHoldsConnectionImpl::CreateTagHold( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +200,60 @@ TagHoldsConnectionImpl::DeleteTagHold( polling_policy(*current), __func__); } +StatusOr TagHoldsConnectionImpl::DeleteTagHold( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..42c847ebaff43 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request) + override; + + future> CreateTagHold( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagHold(google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) override; + StatusOr DeleteTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) + override; + + future> + DeleteTagHold(google::cloud::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..addfec089cffc 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,30 @@ TagHoldsTracingConnection::CreateTagHold( return internal::EndSpan(std::move(span), child_->CreateTagHold(request)); } +StatusOr +TagHoldsTracingConnection::CreateTagHold( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagHoldsTracingConnection::CreateTagHold( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TagHoldsTracingConnection::DeleteTagHold( google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) { @@ -51,6 +75,30 @@ TagHoldsTracingConnection::DeleteTagHold( return internal::EndSpan(std::move(span), child_->DeleteTagHold(request)); } +StatusOr +TagHoldsTracingConnection::DeleteTagHold( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagHoldsTracingConnection::DeleteTagHold( + google::cloud::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(google::cloud::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..43fc0e4a0a95a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request) + override; + + future> CreateTagHold( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagHold(google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) override; + StatusOr DeleteTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request) + override; + + future> + DeleteTagHold(google::cloud::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..5771a2805efe5 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,60 @@ TagKeysConnectionImpl::CreateTagKey( polling_policy(*current), __func__); } +StatusOr TagKeysConnectionImpl::CreateTagKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +264,60 @@ TagKeysConnectionImpl::UpdateTagKey( polling_policy(*current), __func__); } +StatusOr TagKeysConnectionImpl::UpdateTagKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +358,60 @@ TagKeysConnectionImpl::DeleteTagKey( polling_policy(*current), __func__); } +StatusOr TagKeysConnectionImpl::DeleteTagKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..8ceec743de1ab 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request) + override; + + future> CreateTagKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) override; + StatusOr UpdateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) + override; + + future> UpdateTagKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) override; + StatusOr DeleteTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) + override; + + future> DeleteTagKey( + google::cloud::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..d440d41d0f40d 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,29 @@ TagKeysTracingConnection::CreateTagKey( return internal::EndSpan(std::move(span), child_->CreateTagKey(request)); } +StatusOr TagKeysTracingConnection::CreateTagKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagKeysTracingConnection::CreateTagKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TagKeysTracingConnection::UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) { @@ -82,6 +105,29 @@ TagKeysTracingConnection::UpdateTagKey( return internal::EndSpan(std::move(span), child_->UpdateTagKey(request)); } +StatusOr TagKeysTracingConnection::UpdateTagKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagKeysTracingConnection::UpdateTagKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TagKeysTracingConnection::DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) { @@ -91,6 +137,29 @@ TagKeysTracingConnection::DeleteTagKey( return internal::EndSpan(std::move(span), child_->DeleteTagKey(request)); } +StatusOr TagKeysTracingConnection::DeleteTagKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagKeysTracingConnection::DeleteTagKey( + google::cloud::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(google::cloud::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..dad545c0d1798 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request) + override; + + future> CreateTagKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) override; + StatusOr UpdateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request) + override; + + future> UpdateTagKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) override; + StatusOr DeleteTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request) + override; + + future> DeleteTagKey( + google::cloud::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..db1171714bb68 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,61 @@ TagValuesConnectionImpl::CreateTagValue( polling_policy(*current), __func__); } +StatusOr +TagValuesConnectionImpl::CreateTagValue( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +267,61 @@ TagValuesConnectionImpl::UpdateTagValue( polling_policy(*current), __func__); } +StatusOr +TagValuesConnectionImpl::UpdateTagValue( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +362,61 @@ TagValuesConnectionImpl::DeleteTagValue( polling_policy(*current), __func__); } +StatusOr +TagValuesConnectionImpl::DeleteTagValue( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..b7b823853ea6f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request) + override; + + future> CreateTagValue( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) override; + StatusOr UpdateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) + override; + + future> UpdateTagValue( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) override; + StatusOr DeleteTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) + override; + + future> DeleteTagValue( + google::cloud::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..112c46073d4b0 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,30 @@ TagValuesTracingConnection::CreateTagValue( return internal::EndSpan(std::move(span), child_->CreateTagValue(request)); } +StatusOr +TagValuesTracingConnection::CreateTagValue( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagValuesTracingConnection::CreateTagValue( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TagValuesTracingConnection::UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) { @@ -82,6 +106,30 @@ TagValuesTracingConnection::UpdateTagValue( return internal::EndSpan(std::move(span), child_->UpdateTagValue(request)); } +StatusOr +TagValuesTracingConnection::UpdateTagValue( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagValuesTracingConnection::UpdateTagValue( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TagValuesTracingConnection::DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) { @@ -91,6 +139,30 @@ TagValuesTracingConnection::DeleteTagValue( return internal::EndSpan(std::move(span), child_->DeleteTagValue(request)); } +StatusOr +TagValuesTracingConnection::DeleteTagValue( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TagValuesTracingConnection::DeleteTagValue( + google::cloud::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(google::cloud::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..3d9970c382519 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request) + override; + + future> CreateTagValue( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) override; + StatusOr UpdateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request) + override; + + future> UpdateTagValue( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) override; + StatusOr DeleteTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request) + override; + + future> DeleteTagValue( + google::cloud::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..124657f0261d2 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateFolder, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateFolder, (google::cloud::resourcemanager::v3::UpdateFolderRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateFolder, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateFolder, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, MoveFolder, (google::cloud::resourcemanager::v3::MoveFolderRequest const& request), (override)); + MOCK_METHOD( + StatusOr, MoveFolder, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + MoveFolder, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteFolder, (google::cloud::resourcemanager::v3::DeleteFolderRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteFolder, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteFolder, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeleteFolder, (google::cloud::resourcemanager::v3::UndeleteFolderRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeleteFolder, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteFolderRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeleteFolder, + (google::cloud::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..669b27812c924 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateProject, (google::cloud::resourcemanager::v3::UpdateProjectRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, MoveProject, (google::cloud::resourcemanager::v3::MoveProjectRequest const& request), (override)); + MOCK_METHOD( + StatusOr, MoveProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request), + (override)); + + MOCK_METHOD(future>, + MoveProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteProject, (google::cloud::resourcemanager::v3::DeleteProjectRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeleteProject, (google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request), (override)); + MOCK_METHOD(StatusOr, UndeleteProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeleteProject, + (google::cloud::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..cb38382569b49 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTagBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -68,6 +81,21 @@ class MockTagBindingsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteTagBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTagBinding, + (google::cloud::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..4311b166a751c 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateTagHold, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -59,6 +71,20 @@ class MockTagHoldsConnection : public resourcemanager_v3::TagHoldsConnection { (google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteTagHold, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteTagHold, + (google::cloud::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..a3e2e011ac8e9 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateTagKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateTagKey, (google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateTagKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateTagKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTagKey, (google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteTagKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteTagKey, + (google::cloud::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..db81bfaf5debc 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTagValue, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTagValue, (google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTagValue, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTagValue, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteTagValue, (google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteTagValue, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteTagValue, + (google::cloud::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_client.h b/google/cloud/resourcemanager/v3/organizations_client.h index 3cc29586c049b..2c6181ab89433 100644 --- a/google/cloud/resourcemanager/v3/organizations_client.h +++ b/google/cloud/resourcemanager/v3/organizations_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RESOURCEMANAGER_V3_ORGANIZATIONS_CLIENT_H #include "google/cloud/resourcemanager/v3/organizations_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/resourcemanager/v3/projects_client.cc index 375730468cbf5..17cfe8b1abea0 100644 --- a/google/cloud/resourcemanager/v3/projects_client.cc +++ b/google/cloud/resourcemanager/v3/projects_client.cc @@ -89,6 +89,16 @@ ProjectsClient::CreateProject( return connection_->CreateProject(request); } +StatusOr ProjectsClient::CreateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::Project const& project, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::CreateProjectRequest request; + *request.mutable_project() = project; + return connection_->CreateProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::CreateProject( google::cloud::resourcemanager::v3::CreateProjectRequest const& request, @@ -97,6 +107,24 @@ ProjectsClient::CreateProject( return connection_->CreateProject(request); } +StatusOr ProjectsClient::CreateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::CreateProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateProject(google::cloud::ExperimentalTag{}, + operation); +} + future> ProjectsClient::UpdateProject( google::cloud::resourcemanager::v3::Project const& project, @@ -108,6 +136,18 @@ ProjectsClient::UpdateProject( return connection_->UpdateProject(request); } +StatusOr ProjectsClient::UpdateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::Project const& project, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::UpdateProjectRequest request; + *request.mutable_project() = project; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::UpdateProject( google::cloud::resourcemanager::v3::UpdateProjectRequest const& request, @@ -116,6 +156,24 @@ ProjectsClient::UpdateProject( return connection_->UpdateProject(request); } +StatusOr ProjectsClient::UpdateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::UpdateProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateProject(google::cloud::ExperimentalTag{}, + operation); +} + future> ProjectsClient::MoveProject(std::string const& name, std::string const& destination_parent, @@ -127,6 +185,18 @@ ProjectsClient::MoveProject(std::string const& name, return connection_->MoveProject(request); } +StatusOr ProjectsClient::MoveProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& destination_parent, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::MoveProjectRequest request; + request.set_name(name); + request.set_destination_parent(destination_parent); + return connection_->MoveProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::MoveProject( google::cloud::resourcemanager::v3::MoveProjectRequest const& request, @@ -135,6 +205,23 @@ ProjectsClient::MoveProject( return connection_->MoveProject(request); } +StatusOr ProjectsClient::MoveProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::MoveProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->MoveProject(google::cloud::ExperimentalTag{}, operation); +} + future> ProjectsClient::DeleteProject(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -143,6 +230,16 @@ ProjectsClient::DeleteProject(std::string const& name, Options opts) { return connection_->DeleteProject(request); } +StatusOr ProjectsClient::DeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::DeleteProjectRequest request; + request.set_name(name); + return connection_->DeleteProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::DeleteProject( google::cloud::resourcemanager::v3::DeleteProjectRequest const& request, @@ -151,6 +248,24 @@ ProjectsClient::DeleteProject( return connection_->DeleteProject(request); } +StatusOr ProjectsClient::DeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::DeleteProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteProject(google::cloud::ExperimentalTag{}, + operation); +} + future> ProjectsClient::UndeleteProject(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -159,6 +274,16 @@ ProjectsClient::UndeleteProject(std::string const& name, Options opts) { return connection_->UndeleteProject(request); } +StatusOr ProjectsClient::UndeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::UndeleteProjectRequest request; + request.set_name(name); + return connection_->UndeleteProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProjectsClient::UndeleteProject( google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request, @@ -167,6 +292,24 @@ ProjectsClient::UndeleteProject( return connection_->UndeleteProject(request); } +StatusOr ProjectsClient::UndeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProjectsClient::UndeleteProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteProject(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ProjectsClient::GetIamPolicy( std::string const& resource, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/resourcemanager/v3/projects_client.h b/google/cloud/resourcemanager/v3/projects_client.h index 32cad2789bcbe..2ecfd5e65014f 100644 --- a/google/cloud/resourcemanager/v3/projects_client.h +++ b/google/cloud/resourcemanager/v3/projects_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RESOURCEMANAGER_V3_PROJECTS_CLIENT_H #include "google/cloud/resourcemanager/v3/projects_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -382,6 +384,11 @@ class ProjectsClient { google::cloud::resourcemanager::v3::Project const& project, Options opts = {}); + StatusOr CreateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::Project const& project, + Options opts = {}); + // clang-format off /// /// Request that a new project be created. The result is an `Operation` which @@ -424,6 +431,15 @@ class ProjectsClient { google::cloud::resourcemanager::v3::CreateProjectRequest const& request, Options opts = {}); + StatusOr CreateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateProjectRequest const& request, + Options opts = {}); + + future> CreateProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the `display_name` and labels of the project identified by the @@ -463,6 +479,11 @@ class ProjectsClient { google::cloud::resourcemanager::v3::Project const& project, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::Project const& project, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the `display_name` and labels of the project identified by the @@ -506,6 +527,15 @@ class ProjectsClient { google::cloud::resourcemanager::v3::UpdateProjectRequest const& request, Options opts = {}); + StatusOr UpdateProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateProjectRequest const& request, + Options opts = {}); + + future> UpdateProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Move a project to another place in your resource hierarchy, under a new @@ -555,6 +585,11 @@ class ProjectsClient { std::string const& name, std::string const& destination_parent, Options opts = {}); + StatusOr MoveProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& destination_parent, + Options opts = {}); + // clang-format off /// /// Move a project to another place in your resource hierarchy, under a new @@ -608,6 +643,15 @@ class ProjectsClient { google::cloud::resourcemanager::v3::MoveProjectRequest const& request, Options opts = {}); + StatusOr MoveProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::MoveProjectRequest const& request, + Options opts = {}); + + future> MoveProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Marks the project identified by the specified @@ -675,6 +719,10 @@ class ProjectsClient { future> DeleteProject( std::string const& name, Options opts = {}); + StatusOr DeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Marks the project identified by the specified @@ -748,6 +796,15 @@ class ProjectsClient { google::cloud::resourcemanager::v3::DeleteProjectRequest const& request, Options opts = {}); + StatusOr DeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteProjectRequest const& request, + Options opts = {}); + + future> DeleteProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Restores the project identified by the specified @@ -790,6 +847,10 @@ class ProjectsClient { future> UndeleteProject( std::string const& name, Options opts = {}); + StatusOr UndeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Restores the project identified by the specified @@ -836,6 +897,15 @@ class ProjectsClient { google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request, Options opts = {}); + StatusOr UndeleteProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UndeleteProjectRequest const& request, + Options opts = {}); + + future> UndeleteProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns the IAM access control policy for the specified project, in the 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_client.cc b/google/cloud/resourcemanager/v3/tag_bindings_client.cc index 3de3d11737d31..691a56023aeea 100644 --- a/google/cloud/resourcemanager/v3/tag_bindings_client.cc +++ b/google/cloud/resourcemanager/v3/tag_bindings_client.cc @@ -58,6 +58,17 @@ TagBindingsClient::CreateTagBinding( return connection_->CreateTagBinding(request); } +StatusOr TagBindingsClient::CreateTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagBinding const& tag_binding, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::CreateTagBindingRequest request; + *request.mutable_tag_binding() = tag_binding; + return connection_->CreateTagBinding(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagBindingsClient::CreateTagBinding( google::cloud::resourcemanager::v3::CreateTagBindingRequest const& request, @@ -66,6 +77,24 @@ TagBindingsClient::CreateTagBinding( return connection_->CreateTagBinding(request); } +StatusOr TagBindingsClient::CreateTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTagBinding(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagBindingsClient::CreateTagBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTagBinding(google::cloud::ExperimentalTag{}, + operation); +} + future> TagBindingsClient::DeleteTagBinding(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -74,6 +103,16 @@ TagBindingsClient::DeleteTagBinding(std::string const& name, Options opts) { return connection_->DeleteTagBinding(request); } +StatusOr TagBindingsClient::DeleteTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::DeleteTagBindingRequest request; + request.set_name(name); + return connection_->DeleteTagBinding(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagBindingsClient::DeleteTagBinding( google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& request, @@ -82,6 +121,24 @@ TagBindingsClient::DeleteTagBinding( return connection_->DeleteTagBinding(request); } +StatusOr TagBindingsClient::DeleteTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTagBinding(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagBindingsClient::DeleteTagBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTagBinding(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TagBindingsClient::ListEffectiveTags(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/resourcemanager/v3/tag_bindings_client.h b/google/cloud/resourcemanager/v3/tag_bindings_client.h index f8b8714010162..eb355d3e0c261 100644 --- a/google/cloud/resourcemanager/v3/tag_bindings_client.h +++ b/google/cloud/resourcemanager/v3/tag_bindings_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RESOURCEMANAGER_V3_TAG_BINDINGS_CLIENT_H #include "google/cloud/resourcemanager/v3/tag_bindings_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,11 @@ class TagBindingsClient { google::cloud::resourcemanager::v3::TagBinding const& tag_binding, Options opts = {}); + StatusOr CreateTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagBinding const& tag_binding, + Options opts = {}); + // clang-format off /// /// Creates a TagBinding between a TagValue and a Google Cloud resource. @@ -245,6 +252,17 @@ class TagBindingsClient { request, Options opts = {}); + StatusOr CreateTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagBindingRequest const& + request, + Options opts = {}); + + future> + CreateTagBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a TagBinding. @@ -279,6 +297,10 @@ class TagBindingsClient { future> DeleteTagBinding(std::string const& name, Options opts = {}); + StatusOr DeleteTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a TagBinding. @@ -319,6 +341,17 @@ class TagBindingsClient { request, Options opts = {}); + StatusOr DeleteTagBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagBindingRequest const& + request, + Options opts = {}); + + future> + DeleteTagBinding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Return a list of effective tags for the given Google Cloud resource, as 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_client.cc b/google/cloud/resourcemanager/v3/tag_holds_client.cc index 8d38f89eee3de..ca71b5ae2b679 100644 --- a/google/cloud/resourcemanager/v3/tag_holds_client.cc +++ b/google/cloud/resourcemanager/v3/tag_holds_client.cc @@ -43,6 +43,18 @@ TagHoldsClient::CreateTagHold( return connection_->CreateTagHold(request); } +StatusOr TagHoldsClient::CreateTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::resourcemanager::v3::TagHold const& tag_hold, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::CreateTagHoldRequest request; + request.set_parent(parent); + *request.mutable_tag_hold() = tag_hold; + return connection_->CreateTagHold(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagHoldsClient::CreateTagHold( google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request, @@ -51,6 +63,24 @@ TagHoldsClient::CreateTagHold( return connection_->CreateTagHold(request); } +StatusOr TagHoldsClient::CreateTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTagHold(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagHoldsClient::CreateTagHold(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTagHold(google::cloud::ExperimentalTag{}, + operation); +} + future> TagHoldsClient::DeleteTagHold(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -59,6 +89,16 @@ TagHoldsClient::DeleteTagHold(std::string const& name, Options opts) { return connection_->DeleteTagHold(request); } +StatusOr TagHoldsClient::DeleteTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::DeleteTagHoldRequest request; + request.set_name(name); + return connection_->DeleteTagHold(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagHoldsClient::DeleteTagHold( google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request, @@ -67,6 +107,24 @@ TagHoldsClient::DeleteTagHold( return connection_->DeleteTagHold(request); } +StatusOr TagHoldsClient::DeleteTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTagHold(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagHoldsClient::DeleteTagHold(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTagHold(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TagHoldsClient::ListTagHolds(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/resourcemanager/v3/tag_holds_client.h b/google/cloud/resourcemanager/v3/tag_holds_client.h index 0668cecfabffd..19842dd3e3ee9 100644 --- a/google/cloud/resourcemanager/v3/tag_holds_client.h +++ b/google/cloud/resourcemanager/v3/tag_holds_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RESOURCEMANAGER_V3_TAG_HOLDS_CLIENT_H #include "google/cloud/resourcemanager/v3/tag_holds_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -125,6 +127,12 @@ class TagHoldsClient { google::cloud::resourcemanager::v3::TagHold const& tag_hold, Options opts = {}); + StatusOr CreateTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::resourcemanager::v3::TagHold const& tag_hold, + Options opts = {}); + // clang-format off /// /// Creates a TagHold. Returns ALREADY_EXISTS if a TagHold with the same @@ -164,6 +172,15 @@ class TagHoldsClient { google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request, Options opts = {}); + StatusOr CreateTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagHoldRequest const& request, + Options opts = {}); + + future> CreateTagHold( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a TagHold. @@ -197,6 +214,10 @@ class TagHoldsClient { future> DeleteTagHold(std::string const& name, Options opts = {}); + StatusOr DeleteTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a TagHold. @@ -236,6 +257,16 @@ class TagHoldsClient { google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request, Options opts = {}); + StatusOr DeleteTagHold( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagHoldRequest const& request, + Options opts = {}); + + future> + DeleteTagHold(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists TagHolds under a TagValue. 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_client.cc b/google/cloud/resourcemanager/v3/tag_keys_client.cc index 2d8fa421db579..f79a10b627f7c 100644 --- a/google/cloud/resourcemanager/v3/tag_keys_client.cc +++ b/google/cloud/resourcemanager/v3/tag_keys_client.cc @@ -91,6 +91,16 @@ TagKeysClient::CreateTagKey( return connection_->CreateTagKey(request); } +StatusOr TagKeysClient::CreateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagKey const& tag_key, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::CreateTagKeyRequest request; + *request.mutable_tag_key() = tag_key; + return connection_->CreateTagKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagKeysClient::CreateTagKey( google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request, @@ -99,6 +109,23 @@ TagKeysClient::CreateTagKey( return connection_->CreateTagKey(request); } +StatusOr TagKeysClient::CreateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTagKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagKeysClient::CreateTagKey(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTagKey(google::cloud::ExperimentalTag{}, operation); +} + future> TagKeysClient::UpdateTagKey( google::cloud::resourcemanager::v3::TagKey const& tag_key, @@ -110,6 +137,18 @@ TagKeysClient::UpdateTagKey( return connection_->UpdateTagKey(request); } +StatusOr TagKeysClient::UpdateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagKey const& tag_key, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::UpdateTagKeyRequest request; + *request.mutable_tag_key() = tag_key; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTagKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagKeysClient::UpdateTagKey( google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request, @@ -118,6 +157,23 @@ TagKeysClient::UpdateTagKey( return connection_->UpdateTagKey(request); } +StatusOr TagKeysClient::UpdateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTagKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagKeysClient::UpdateTagKey(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTagKey(google::cloud::ExperimentalTag{}, operation); +} + future> TagKeysClient::DeleteTagKey(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -126,6 +182,16 @@ TagKeysClient::DeleteTagKey(std::string const& name, Options opts) { return connection_->DeleteTagKey(request); } +StatusOr TagKeysClient::DeleteTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::DeleteTagKeyRequest request; + request.set_name(name); + return connection_->DeleteTagKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagKeysClient::DeleteTagKey( google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request, @@ -134,6 +200,23 @@ TagKeysClient::DeleteTagKey( return connection_->DeleteTagKey(request); } +StatusOr TagKeysClient::DeleteTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTagKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagKeysClient::DeleteTagKey(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTagKey(google::cloud::ExperimentalTag{}, operation); +} + StatusOr TagKeysClient::GetIamPolicy( std::string const& resource, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/resourcemanager/v3/tag_keys_client.h b/google/cloud/resourcemanager/v3/tag_keys_client.h index 9c470d62bd521..dfedc290f5b41 100644 --- a/google/cloud/resourcemanager/v3/tag_keys_client.h +++ b/google/cloud/resourcemanager/v3/tag_keys_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RESOURCEMANAGER_V3_TAG_KEYS_CLIENT_H #include "google/cloud/resourcemanager/v3/tag_keys_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -323,6 +325,11 @@ class TagKeysClient { google::cloud::resourcemanager::v3::TagKey const& tag_key, Options opts = {}); + StatusOr CreateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagKey const& tag_key, + Options opts = {}); + // clang-format off /// /// Creates a new TagKey. If another request with the same parameters is @@ -364,6 +371,15 @@ class TagKeysClient { google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request, Options opts = {}); + StatusOr CreateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagKeyRequest const& request, + Options opts = {}); + + future> CreateTagKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the attributes of the TagKey resource. @@ -403,6 +419,11 @@ class TagKeysClient { google::cloud::resourcemanager::v3::TagKey const& tag_key, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagKey const& tag_key, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the attributes of the TagKey resource. @@ -441,6 +462,15 @@ class TagKeysClient { google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request, Options opts = {}); + StatusOr UpdateTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagKeyRequest const& request, + Options opts = {}); + + future> UpdateTagKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a TagKey. The TagKey cannot be deleted if it has any child @@ -476,6 +506,10 @@ class TagKeysClient { future> DeleteTagKey( std::string const& name, Options opts = {}); + StatusOr DeleteTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a TagKey. The TagKey cannot be deleted if it has any child @@ -515,6 +549,15 @@ class TagKeysClient { google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request, Options opts = {}); + StatusOr DeleteTagKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagKeyRequest const& request, + Options opts = {}); + + future> DeleteTagKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the access control policy for a TagKey. The returned policy may be 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_client.cc b/google/cloud/resourcemanager/v3/tag_values_client.cc index e494cf637ea83..8110177dca940 100644 --- a/google/cloud/resourcemanager/v3/tag_values_client.cc +++ b/google/cloud/resourcemanager/v3/tag_values_client.cc @@ -93,6 +93,17 @@ TagValuesClient::CreateTagValue( return connection_->CreateTagValue(request); } +StatusOr TagValuesClient::CreateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagValue const& tag_value, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::CreateTagValueRequest request; + *request.mutable_tag_value() = tag_value; + return connection_->CreateTagValue(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagValuesClient::CreateTagValue( google::cloud::resourcemanager::v3::CreateTagValueRequest const& request, @@ -101,6 +112,24 @@ TagValuesClient::CreateTagValue( return connection_->CreateTagValue(request); } +StatusOr TagValuesClient::CreateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTagValue(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagValuesClient::CreateTagValue(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTagValue(google::cloud::ExperimentalTag{}, + operation); +} + future> TagValuesClient::UpdateTagValue( google::cloud::resourcemanager::v3::TagValue const& tag_value, @@ -112,6 +141,18 @@ TagValuesClient::UpdateTagValue( return connection_->UpdateTagValue(request); } +StatusOr TagValuesClient::UpdateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagValue const& tag_value, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::UpdateTagValueRequest request; + *request.mutable_tag_value() = tag_value; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTagValue(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagValuesClient::UpdateTagValue( google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request, @@ -120,6 +161,24 @@ TagValuesClient::UpdateTagValue( return connection_->UpdateTagValue(request); } +StatusOr TagValuesClient::UpdateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTagValue(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagValuesClient::UpdateTagValue(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTagValue(google::cloud::ExperimentalTag{}, + operation); +} + future> TagValuesClient::DeleteTagValue(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -128,6 +187,16 @@ TagValuesClient::DeleteTagValue(std::string const& name, Options opts) { return connection_->DeleteTagValue(request); } +StatusOr TagValuesClient::DeleteTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::resourcemanager::v3::DeleteTagValueRequest request; + request.set_name(name); + return connection_->DeleteTagValue(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TagValuesClient::DeleteTagValue( google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request, @@ -136,6 +205,24 @@ TagValuesClient::DeleteTagValue( return connection_->DeleteTagValue(request); } +StatusOr TagValuesClient::DeleteTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTagValue(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TagValuesClient::DeleteTagValue(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTagValue(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TagValuesClient::GetIamPolicy( std::string const& resource, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/resourcemanager/v3/tag_values_client.h b/google/cloud/resourcemanager/v3/tag_values_client.h index 66f257a4bff8b..fc6e81bf11d0d 100644 --- a/google/cloud/resourcemanager/v3/tag_values_client.h +++ b/google/cloud/resourcemanager/v3/tag_values_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RESOURCEMANAGER_V3_TAG_VALUES_CLIENT_H #include "google/cloud/resourcemanager/v3/tag_values_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -325,6 +327,11 @@ class TagValuesClient { google::cloud::resourcemanager::v3::TagValue const& tag_value, Options opts = {}); + StatusOr CreateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagValue const& tag_value, + Options opts = {}); + // clang-format off /// /// Creates a TagValue as a child of the specified TagKey. If a another @@ -366,6 +373,15 @@ class TagValuesClient { google::cloud::resourcemanager::v3::CreateTagValueRequest const& request, Options opts = {}); + StatusOr CreateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::CreateTagValueRequest const& request, + Options opts = {}); + + future> CreateTagValue( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the attributes of the TagValue resource. @@ -403,6 +419,11 @@ class TagValuesClient { google::cloud::resourcemanager::v3::TagValue const& tag_value, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::TagValue const& tag_value, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the attributes of the TagValue resource. @@ -441,6 +462,15 @@ class TagValuesClient { google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request, Options opts = {}); + StatusOr UpdateTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::UpdateTagValueRequest const& request, + Options opts = {}); + + future> UpdateTagValue( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a TagValue. The TagValue cannot have any bindings when it is @@ -475,6 +505,10 @@ class TagValuesClient { future> DeleteTagValue( std::string const& name, Options opts = {}); + StatusOr DeleteTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a TagValue. The TagValue cannot have any bindings when it is @@ -514,6 +548,15 @@ class TagValuesClient { google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request, Options opts = {}); + StatusOr DeleteTagValue( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::resourcemanager::v3::DeleteTagValueRequest const& request, + Options opts = {}); + + future> DeleteTagValue( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the access control policy for a TagValue. The returned policy may be 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_client.h b/google/cloud/resourcesettings/v1/resource_settings_client.h index ce12bf18369fa..8dee50ff2834f 100644 --- a/google/cloud/resourcesettings/v1/resource_settings_client.h +++ b/google/cloud/resourcesettings/v1/resource_settings_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RESOURCESETTINGS_V1_RESOURCE_SETTINGS_CLIENT_H #include "google/cloud/resourcesettings/v1/resource_settings_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/retail/v2/analytics_client.cc index 65dd3fe95d1f2..6f3ef821d1593 100644 --- a/google/cloud/retail/v2/analytics_client.cc +++ b/google/cloud/retail/v2/analytics_client.cc @@ -40,6 +40,25 @@ AnalyticsServiceClient::ExportAnalyticsMetrics( return connection_->ExportAnalyticsMetrics(request); } +StatusOr +AnalyticsServiceClient::ExportAnalyticsMetrics( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportAnalyticsMetrics( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +AnalyticsServiceClient::ExportAnalyticsMetrics( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ExportAnalyticsMetrics(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2 } // namespace cloud diff --git a/google/cloud/retail/v2/analytics_client.h b/google/cloud/retail/v2/analytics_client.h index 096a757adb11e..d542468cee7f6 100644 --- a/google/cloud/retail/v2/analytics_client.h +++ b/google/cloud/retail/v2/analytics_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_ANALYTICS_CLIENT_H #include "google/cloud/retail/v2/analytics_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -130,6 +132,16 @@ class AnalyticsServiceClient { google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request, Options opts = {}); + StatusOr ExportAnalyticsMetrics( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request, + Options opts = {}); + + future> + ExportAnalyticsMetrics(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/retail/v2/catalog_client.h index ca0b3773922e2..3cdfe446f8563 100644 --- a/google/cloud/retail/v2/catalog_client.h +++ b/google/cloud/retail/v2/catalog_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_CATALOG_CLIENT_H #include "google/cloud/retail/v2/catalog_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/retail/v2/completion_client.cc index fc324d86e12cf..fff53f6baaf6a 100644 --- a/google/cloud/retail/v2/completion_client.cc +++ b/google/cloud/retail/v2/completion_client.cc @@ -48,6 +48,25 @@ CompletionServiceClient::ImportCompletionData( return connection_->ImportCompletionData(request); } +StatusOr +CompletionServiceClient::ImportCompletionData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportCompletionData( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CompletionServiceClient::ImportCompletionData( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportCompletionData(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2 } // namespace cloud diff --git a/google/cloud/retail/v2/completion_client.h b/google/cloud/retail/v2/completion_client.h index 8fa43dfade585..afb46aa29dd77 100644 --- a/google/cloud/retail/v2/completion_client.h +++ b/google/cloud/retail/v2/completion_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_COMPLETION_CLIENT_H #include "google/cloud/retail/v2/completion_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -171,6 +173,16 @@ class CompletionServiceClient { google::cloud::retail::v2::ImportCompletionDataRequest const& request, Options opts = {}); + StatusOr ImportCompletionData( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request, + Options opts = {}); + + future> + ImportCompletionData(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/retail/v2/control_client.h index b57ecf7d0847e..adf23aef863f9 100644 --- a/google/cloud/retail/v2/control_client.h +++ b/google/cloud/retail/v2/control_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_CONTROL_CLIENT_H #include "google/cloud/retail/v2/control_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..1b632f3b927f4 100644 --- a/google/cloud/retail/v2/internal/analytics_connection_impl.cc +++ b/google/cloud/retail/v2/internal/analytics_connection_impl.cc @@ -103,6 +103,60 @@ AnalyticsServiceConnectionImpl::ExportAnalyticsMetrics( polling_policy(*current), __func__); } +StatusOr +AnalyticsServiceConnectionImpl::ExportAnalyticsMetrics( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..f75f47deff62d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request) + override; + + future> + ExportAnalyticsMetrics( + google::cloud::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..639ee530bd621 100644 --- a/google/cloud/retail/v2/internal/analytics_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/analytics_tracing_connection.cc @@ -42,6 +42,30 @@ AnalyticsServiceTracingConnection::ExportAnalyticsMetrics( child_->ExportAnalyticsMetrics(request)); } +StatusOr +AnalyticsServiceTracingConnection::ExportAnalyticsMetrics( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +AnalyticsServiceTracingConnection::ExportAnalyticsMetrics( + google::cloud::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( + google::cloud::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..67724c5361aa0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request) + override; + + future> + ExportAnalyticsMetrics( + google::cloud::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..aca1b99e91395 100644 --- a/google/cloud/retail/v2/internal/completion_connection_impl.cc +++ b/google/cloud/retail/v2/internal/completion_connection_impl.cc @@ -119,6 +119,60 @@ CompletionServiceConnectionImpl::ImportCompletionData( polling_policy(*current), __func__); } +StatusOr +CompletionServiceConnectionImpl::ImportCompletionData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..b8fc794441d06 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request) + override; + + future> + ImportCompletionData( + google::cloud::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..1a03d92c4a14b 100644 --- a/google/cloud/retail/v2/internal/completion_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/completion_tracing_connection.cc @@ -51,6 +51,30 @@ CompletionServiceTracingConnection::ImportCompletionData( child_->ImportCompletionData(request)); } +StatusOr +CompletionServiceTracingConnection::ImportCompletionData( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CompletionServiceTracingConnection::ImportCompletionData( + google::cloud::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( + google::cloud::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..5dda4840a80a0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request) + override; + + future> + ImportCompletionData( + google::cloud::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..5dc49c6153120 100644 --- a/google/cloud/retail/v2/internal/model_connection_impl.cc +++ b/google/cloud/retail/v2/internal/model_connection_impl.cc @@ -102,6 +102,58 @@ ModelServiceConnectionImpl::CreateModel( polling_policy(*current), __func__); } +StatusOr +ModelServiceConnectionImpl::CreateModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +293,58 @@ ModelServiceConnectionImpl::TuneModel( polling_policy(*current), __func__); } +StatusOr ModelServiceConnectionImpl::TuneModel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..bf0fabd49b9fd 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request) override; + + future> CreateModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request) override; + + future> TuneModel( + google::cloud::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..4fca1a861fffd 100644 --- a/google/cloud/retail/v2/internal/model_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/model_tracing_connection.cc @@ -42,6 +42,30 @@ ModelServiceTracingConnection::CreateModel( return internal::EndSpan(std::move(span), child_->CreateModel(request)); } +StatusOr +ModelServiceTracingConnection::CreateModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::CreateModel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ModelServiceTracingConnection::GetModel( google::cloud::retail::v2::GetModelRequest const& request) { @@ -105,6 +129,30 @@ ModelServiceTracingConnection::TuneModel( return internal::EndSpan(std::move(span), child_->TuneModel(request)); } +StatusOr +ModelServiceTracingConnection::TuneModel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ModelServiceTracingConnection::TuneModel( + google::cloud::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(google::cloud::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..40b956b94da4a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request) override; + + future> CreateModel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request) override; + + future> TuneModel( + google::cloud::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..70086d5089f96 100644 --- a/google/cloud/retail/v2/internal/product_connection_impl.cc +++ b/google/cloud/retail/v2/internal/product_connection_impl.cc @@ -192,6 +192,59 @@ ProductServiceConnectionImpl::PurgeProducts( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +284,59 @@ ProductServiceConnectionImpl::ImportProducts( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::ImportProducts( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +376,59 @@ ProductServiceConnectionImpl::SetInventory( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::SetInventory( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +469,61 @@ ProductServiceConnectionImpl::AddFulfillmentPlaces( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::AddFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +564,61 @@ ProductServiceConnectionImpl::RemoveFulfillmentPlaces( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +659,61 @@ ProductServiceConnectionImpl::AddLocalInventories( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::AddLocalInventories( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +754,61 @@ ProductServiceConnectionImpl::RemoveLocalInventories( polling_policy(*current), __func__); } +StatusOr +ProductServiceConnectionImpl::RemoveLocalInventories( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..f997ea36e5bd0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request) override; + + future> + PurgeProducts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request) override; + StatusOr ImportProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request) override; + + future> + ImportProducts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInventory( google::cloud::retail::v2::SetInventoryRequest const& request) override; + StatusOr SetInventory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request) override; + + future> + SetInventory(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) override; + StatusOr AddFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) + override; + + future> + AddFulfillmentPlaces( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) override; + StatusOr RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) + override; + + future> + RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request) override; + StatusOr AddLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request) + override; + + future> + AddLocalInventories(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) override; + StatusOr RemoveLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) + override; + + future> + RemoveLocalInventories( + google::cloud::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..8abbded57df95 100644 --- a/google/cloud/retail/v2/internal/product_tracing_connection.cc +++ b/google/cloud/retail/v2/internal/product_tracing_connection.cc @@ -88,6 +88,30 @@ ProductServiceTracingConnection::PurgeProducts( return internal::EndSpan(std::move(span), child_->PurgeProducts(request)); } +StatusOr +ProductServiceTracingConnection::PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::PurgeProducts( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request) { @@ -97,6 +121,30 @@ ProductServiceTracingConnection::ImportProducts( return internal::EndSpan(std::move(span), child_->ImportProducts(request)); } +StatusOr +ProductServiceTracingConnection::ImportProducts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::ImportProducts( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::SetInventory( google::cloud::retail::v2::SetInventoryRequest const& request) { @@ -106,6 +154,30 @@ ProductServiceTracingConnection::SetInventory( return internal::EndSpan(std::move(span), child_->SetInventory(request)); } +StatusOr +ProductServiceTracingConnection::SetInventory( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::SetInventory( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) { @@ -116,6 +188,30 @@ ProductServiceTracingConnection::AddFulfillmentPlaces( child_->AddFulfillmentPlaces(request)); } +StatusOr +ProductServiceTracingConnection::AddFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::AddFulfillmentPlaces( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) { @@ -126,6 +222,30 @@ ProductServiceTracingConnection::RemoveFulfillmentPlaces( child_->RemoveFulfillmentPlaces(request)); } +StatusOr +ProductServiceTracingConnection::RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::RemoveFulfillmentPlaces( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request) { @@ -136,6 +256,30 @@ ProductServiceTracingConnection::AddLocalInventories( child_->AddLocalInventories(request)); } +StatusOr +ProductServiceTracingConnection::AddLocalInventories( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::AddLocalInventories( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProductServiceTracingConnection::RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) { @@ -146,6 +290,30 @@ ProductServiceTracingConnection::RemoveLocalInventories( child_->RemoveLocalInventories(request)); } +StatusOr +ProductServiceTracingConnection::RemoveLocalInventories( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductServiceTracingConnection::RemoveLocalInventories( + google::cloud::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( + google::cloud::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..842e18a602ce1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request) override; + + future> + PurgeProducts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request) override; + StatusOr ImportProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request) override; + + future> + ImportProducts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> SetInventory( google::cloud::retail::v2::SetInventoryRequest const& request) override; + StatusOr SetInventory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request) override; + + future> + SetInventory(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) override; + StatusOr AddFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request) + override; + + future> + AddFulfillmentPlaces( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) override; + StatusOr RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request) + override; + + future> + RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request) override; + StatusOr AddLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request) + override; + + future> + AddLocalInventories(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) override; + StatusOr RemoveLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request) + override; + + future> + RemoveLocalInventories( + google::cloud::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..868193bd9598a 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,59 @@ UserEventServiceConnectionImpl::PurgeUserEvents( polling_policy(*current), __func__); } +StatusOr +UserEventServiceConnectionImpl::PurgeUserEvents( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +223,60 @@ UserEventServiceConnectionImpl::ImportUserEvents( polling_policy(*current), __func__); } +StatusOr +UserEventServiceConnectionImpl::ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +316,61 @@ UserEventServiceConnectionImpl::RejoinUserEvents( polling_policy(*current), __func__); } +StatusOr +UserEventServiceConnectionImpl::RejoinUserEvents( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..dd7018e054f50 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request) + override; + + future> + PurgeUserEvents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportUserEvents(google::cloud::retail::v2::ImportUserEventsRequest const& request) override; + StatusOr ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request) + override; + + future> + ImportUserEvents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RejoinUserEvents(google::cloud::retail::v2::RejoinUserEventsRequest const& request) override; + StatusOr RejoinUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request) + override; + + future> + RejoinUserEvents(google::cloud::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..7e8c0b962c201 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,30 @@ UserEventServiceTracingConnection::PurgeUserEvents( return internal::EndSpan(std::move(span), child_->PurgeUserEvents(request)); } +StatusOr +UserEventServiceTracingConnection::PurgeUserEvents( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UserEventServiceTracingConnection::PurgeUserEvents( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> UserEventServiceTracingConnection::ImportUserEvents( google::cloud::retail::v2::ImportUserEventsRequest const& request) { @@ -68,6 +92,30 @@ UserEventServiceTracingConnection::ImportUserEvents( return internal::EndSpan(std::move(span), child_->ImportUserEvents(request)); } +StatusOr +UserEventServiceTracingConnection::ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UserEventServiceTracingConnection::ImportUserEvents( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> UserEventServiceTracingConnection::RejoinUserEvents( google::cloud::retail::v2::RejoinUserEventsRequest const& request) { @@ -77,6 +125,30 @@ UserEventServiceTracingConnection::RejoinUserEvents( return internal::EndSpan(std::move(span), child_->RejoinUserEvents(request)); } +StatusOr +UserEventServiceTracingConnection::RejoinUserEvents( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +UserEventServiceTracingConnection::RejoinUserEvents( + google::cloud::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(google::cloud::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..f3c21370825b5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request) + override; + + future> + PurgeUserEvents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ImportUserEvents(google::cloud::retail::v2::ImportUserEventsRequest const& request) override; + StatusOr ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request) + override; + + future> + ImportUserEvents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RejoinUserEvents(google::cloud::retail::v2::RejoinUserEventsRequest const& request) override; + StatusOr RejoinUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request) + override; + + future> + RejoinUserEvents(google::cloud::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..293563f63276b 100644 --- a/google/cloud/retail/v2/mocks/mock_analytics_connection.h +++ b/google/cloud/retail/v2/mocks/mock_analytics_connection.h @@ -53,6 +53,20 @@ class MockAnalyticsServiceConnection ExportAnalyticsMetrics, (google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ExportAnalyticsMetrics, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ExportAnalyticsMetricsRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + ExportAnalyticsMetrics, + (google::cloud::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..835249ad51aff 100644 --- a/google/cloud/retail/v2/mocks/mock_completion_connection.h +++ b/google/cloud/retail/v2/mocks/mock_completion_connection.h @@ -57,6 +57,19 @@ class MockCompletionServiceConnection ImportCompletionData, (google::cloud::retail::v2::ImportCompletionDataRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, ImportCompletionData, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportCompletionDataRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportCompletionData, + (google::cloud::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..3c5446a0457fa 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateModel, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request), + (override)); + + MOCK_METHOD(future>, + TuneModel, + (google::cloud::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..53a8598101014 100644 --- a/google/cloud/retail/v2/mocks/mock_product_connection.h +++ b/google/cloud/retail/v2/mocks/mock_product_connection.h @@ -73,23 +73,71 @@ class MockProductServiceConnection (google::cloud::retail::v2::PurgeProductsRequest const& request), (override)); + MOCK_METHOD(StatusOr, PurgeProducts, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeProducts, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportProducts, (google::cloud::retail::v2::ImportProductsRequest const& request), (override)); + MOCK_METHOD(StatusOr, ImportProducts, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportProducts, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, SetInventory, (google::cloud::retail::v2::SetInventoryRequest const& request), (override)); + MOCK_METHOD(StatusOr, SetInventory, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request), + (override)); + + MOCK_METHOD(future>, + SetInventory, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AddFulfillmentPlaces, (google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AddFulfillmentPlaces, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + AddFulfillmentPlaces, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -98,18 +146,59 @@ class MockProductServiceConnection request), (override)); + MOCK_METHOD(StatusOr, RemoveFulfillmentPlaces, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + RemoveFulfillmentPlaces, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AddLocalInventories, (google::cloud::retail::v2::AddLocalInventoriesRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AddLocalInventories, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request), + (override)); + + MOCK_METHOD( + future>, + AddLocalInventories, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, RemoveLocalInventories, (google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RemoveLocalInventories, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + RemoveLocalInventories, + (google::cloud::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..8dc81e2cdbf3d 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,56 @@ class MockUserEventServiceConnection (google::cloud::retail::v2::PurgeUserEventsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PurgeUserEvents, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeUserEvents, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ImportUserEvents, (google::cloud::retail::v2::ImportUserEventsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportUserEvents, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportUserEvents, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RejoinUserEvents, (google::cloud::retail::v2::RejoinUserEventsRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RejoinUserEvents, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RejoinUserEvents, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/retail/v2/model_client.cc b/google/cloud/retail/v2/model_client.cc index 98e3df89f4146..ec8ab4408d113 100644 --- a/google/cloud/retail/v2/model_client.cc +++ b/google/cloud/retail/v2/model_client.cc @@ -43,6 +43,18 @@ ModelServiceClient::CreateModel(std::string const& parent, return connection_->CreateModel(request); } +StatusOr ModelServiceClient::CreateModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::retail::v2::Model const& model, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::retail::v2::CreateModelRequest request; + request.set_parent(parent); + *request.mutable_model() = model; + return connection_->CreateModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ModelServiceClient::CreateModel( google::cloud::retail::v2::CreateModelRequest const& request, @@ -51,6 +63,23 @@ ModelServiceClient::CreateModel( return connection_->CreateModel(request); } +StatusOr ModelServiceClient::CreateModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ModelServiceClient::CreateModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateModel(google::cloud::ExperimentalTag{}, operation); +} + StatusOr ModelServiceClient::GetModel( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -147,6 +176,16 @@ ModelServiceClient::TuneModel(std::string const& name, Options opts) { return connection_->TuneModel(request); } +StatusOr ModelServiceClient::TuneModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::retail::v2::TuneModelRequest request; + request.set_name(name); + return connection_->TuneModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ModelServiceClient::TuneModel( google::cloud::retail::v2::TuneModelRequest const& request, Options opts) { @@ -154,6 +193,22 @@ ModelServiceClient::TuneModel( return connection_->TuneModel(request); } +StatusOr ModelServiceClient::TuneModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TuneModel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ModelServiceClient::TuneModel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->TuneModel(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2 } // namespace cloud diff --git a/google/cloud/retail/v2/model_client.h b/google/cloud/retail/v2/model_client.h index e3082f8c4f8f3..8aa9bac31cdee 100644 --- a/google/cloud/retail/v2/model_client.h +++ b/google/cloud/retail/v2/model_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_MODEL_CLIENT_H #include "google/cloud/retail/v2/model_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -133,6 +135,11 @@ class ModelServiceClient { std::string const& parent, google::cloud::retail::v2::Model const& model, Options opts = {}); + StatusOr CreateModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::retail::v2::Model const& model, + Options opts = {}); + // clang-format off /// /// Creates a new model. @@ -171,6 +178,15 @@ class ModelServiceClient { google::cloud::retail::v2::CreateModelRequest const& request, Options opts = {}); + StatusOr CreateModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::CreateModelRequest const& request, + Options opts = {}); + + future> CreateModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a model. @@ -571,6 +587,10 @@ class ModelServiceClient { future> TuneModel( std::string const& name, Options opts = {}); + StatusOr TuneModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Tunes an existing model. @@ -609,6 +629,15 @@ class ModelServiceClient { google::cloud::retail::v2::TuneModelRequest const& request, Options opts = {}); + StatusOr TuneModel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::TuneModelRequest const& request, + Options opts = {}); + + future> TuneModel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/retail/v2/prediction_client.h index ddc55e8373275..ee499d44cc6c7 100644 --- a/google/cloud/retail/v2/prediction_client.h +++ b/google/cloud/retail/v2/prediction_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_PREDICTION_CLIENT_H #include "google/cloud/retail/v2/prediction_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.cc b/google/cloud/retail/v2/product_client.cc index 12f0b634f9889..393b962bcc615 100644 --- a/google/cloud/retail/v2/product_client.cc +++ b/google/cloud/retail/v2/product_client.cc @@ -124,6 +124,24 @@ ProductServiceClient::PurgeProducts( return connection_->PurgeProducts(request); } +StatusOr ProductServiceClient::PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeProducts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProductServiceClient::PurgeProducts( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeProducts(google::cloud::ExperimentalTag{}, + operation); +} + future> ProductServiceClient::ImportProducts( google::cloud::retail::v2::ImportProductsRequest const& request, @@ -132,6 +150,24 @@ ProductServiceClient::ImportProducts( return connection_->ImportProducts(request); } +StatusOr ProductServiceClient::ImportProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportProducts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProductServiceClient::ImportProducts( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportProducts(google::cloud::ExperimentalTag{}, + operation); +} + future> ProductServiceClient::SetInventory( google::cloud::retail::v2::Product const& inventory, @@ -143,6 +179,18 @@ ProductServiceClient::SetInventory( return connection_->SetInventory(request); } +StatusOr ProductServiceClient::SetInventory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::Product const& inventory, + google::protobuf::FieldMask const& set_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::retail::v2::SetInventoryRequest request; + *request.mutable_inventory() = inventory; + *request.mutable_set_mask() = set_mask; + return connection_->SetInventory(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProductServiceClient::SetInventory( google::cloud::retail::v2::SetInventoryRequest const& request, @@ -151,6 +199,23 @@ ProductServiceClient::SetInventory( return connection_->SetInventory(request); } +StatusOr ProductServiceClient::SetInventory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInventory(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProductServiceClient::SetInventory( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SetInventory(google::cloud::ExperimentalTag{}, operation); +} + future> ProductServiceClient::AddFulfillmentPlaces(std::string const& product, Options opts) { @@ -160,6 +225,18 @@ ProductServiceClient::AddFulfillmentPlaces(std::string const& product, return connection_->AddFulfillmentPlaces(request); } +StatusOr +ProductServiceClient::AddFulfillmentPlaces(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& product, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::retail::v2::AddFulfillmentPlacesRequest request; + request.set_product(product); + return connection_->AddFulfillmentPlaces( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ProductServiceClient::AddFulfillmentPlaces( google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request, @@ -168,6 +245,25 @@ ProductServiceClient::AddFulfillmentPlaces( return connection_->AddFulfillmentPlaces(request); } +StatusOr +ProductServiceClient::AddFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddFulfillmentPlaces( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ProductServiceClient::AddFulfillmentPlaces( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddFulfillmentPlaces(google::cloud::ExperimentalTag{}, + operation); +} + future> ProductServiceClient::RemoveFulfillmentPlaces(std::string const& product, Options opts) { @@ -177,6 +273,18 @@ ProductServiceClient::RemoveFulfillmentPlaces(std::string const& product, return connection_->RemoveFulfillmentPlaces(request); } +StatusOr +ProductServiceClient::RemoveFulfillmentPlaces(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& product, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest request; + request.set_product(product); + return connection_->RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ProductServiceClient::RemoveFulfillmentPlaces( google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request, @@ -185,6 +293,25 @@ ProductServiceClient::RemoveFulfillmentPlaces( return connection_->RemoveFulfillmentPlaces(request); } +StatusOr +ProductServiceClient::RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ProductServiceClient::RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveFulfillmentPlaces(google::cloud::ExperimentalTag{}, + operation); +} + future> ProductServiceClient::AddLocalInventories(std::string const& product, Options opts) { @@ -194,6 +321,18 @@ ProductServiceClient::AddLocalInventories(std::string const& product, return connection_->AddLocalInventories(request); } +StatusOr +ProductServiceClient::AddLocalInventories(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& product, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::retail::v2::AddLocalInventoriesRequest request; + request.set_product(product); + return connection_->AddLocalInventories(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProductServiceClient::AddLocalInventories( google::cloud::retail::v2::AddLocalInventoriesRequest const& request, @@ -202,6 +341,25 @@ ProductServiceClient::AddLocalInventories( return connection_->AddLocalInventories(request); } +StatusOr +ProductServiceClient::AddLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddLocalInventories(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProductServiceClient::AddLocalInventories( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddLocalInventories(google::cloud::ExperimentalTag{}, + operation); +} + future> ProductServiceClient::RemoveLocalInventories(std::string const& product, Options opts) { @@ -211,6 +369,18 @@ ProductServiceClient::RemoveLocalInventories(std::string const& product, return connection_->RemoveLocalInventories(request); } +StatusOr +ProductServiceClient::RemoveLocalInventories(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& product, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::retail::v2::RemoveLocalInventoriesRequest request; + request.set_product(product); + return connection_->RemoveLocalInventories( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ProductServiceClient::RemoveLocalInventories( google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request, @@ -219,6 +389,25 @@ ProductServiceClient::RemoveLocalInventories( return connection_->RemoveLocalInventories(request); } +StatusOr +ProductServiceClient::RemoveLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveLocalInventories( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ProductServiceClient::RemoveLocalInventories( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveLocalInventories(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2 } // namespace cloud diff --git a/google/cloud/retail/v2/product_client.h b/google/cloud/retail/v2/product_client.h index 750dddf1dcc86..9bbbb033bf417 100644 --- a/google/cloud/retail/v2/product_client.h +++ b/google/cloud/retail/v2/product_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_PRODUCT_CLIENT_H #include "google/cloud/retail/v2/product_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -525,6 +527,16 @@ class ProductServiceClient { PurgeProducts(google::cloud::retail::v2::PurgeProductsRequest const& request, Options opts = {}); + StatusOr PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeProductsRequest const& request, + Options opts = {}); + + future> + PurgeProducts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Bulk import of multiple [Product][google.cloud.retail.v2.Product]s. @@ -571,6 +583,16 @@ class ProductServiceClient { google::cloud::retail::v2::ImportProductsRequest const& request, Options opts = {}); + StatusOr ImportProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportProductsRequest const& request, + Options opts = {}); + + future> + ImportProducts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates inventory information for a @@ -674,6 +696,11 @@ class ProductServiceClient { SetInventory(google::cloud::retail::v2::Product const& inventory, google::protobuf::FieldMask const& set_mask, Options opts = {}); + StatusOr SetInventory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::Product const& inventory, + google::protobuf::FieldMask const& set_mask, Options opts = {}); + // clang-format off /// /// Updates inventory information for a @@ -773,6 +800,16 @@ class ProductServiceClient { SetInventory(google::cloud::retail::v2::SetInventoryRequest const& request, Options opts = {}); + StatusOr SetInventory( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::SetInventoryRequest const& request, + Options opts = {}); + + future> + SetInventory(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// We recommend that you use the @@ -849,6 +886,10 @@ class ProductServiceClient { future> AddFulfillmentPlaces(std::string const& product, Options opts = {}); + StatusOr AddFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& product, Options opts = {}); + // clang-format off /// /// We recommend that you use the @@ -926,6 +967,16 @@ class ProductServiceClient { google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request, Options opts = {}); + StatusOr AddFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddFulfillmentPlacesRequest const& request, + Options opts = {}); + + future> + AddFulfillmentPlaces(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// We recommend that you use the @@ -1002,6 +1053,10 @@ class ProductServiceClient { future> RemoveFulfillmentPlaces(std::string const& product, Options opts = {}); + StatusOr RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& product, Options opts = {}); + // clang-format off /// /// We recommend that you use the @@ -1079,6 +1134,16 @@ class ProductServiceClient { google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request, Options opts = {}); + StatusOr RemoveFulfillmentPlaces( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveFulfillmentPlacesRequest const& request, + Options opts = {}); + + future> + RemoveFulfillmentPlaces(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates local inventory information for a @@ -1152,6 +1217,10 @@ class ProductServiceClient { future> AddLocalInventories(std::string const& product, Options opts = {}); + StatusOr AddLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& product, Options opts = {}); + // clang-format off /// /// Updates local inventory information for a @@ -1226,6 +1295,16 @@ class ProductServiceClient { google::cloud::retail::v2::AddLocalInventoriesRequest const& request, Options opts = {}); + StatusOr AddLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::AddLocalInventoriesRequest const& request, + Options opts = {}); + + future> + AddLocalInventories(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Remove local inventory information for a @@ -1297,6 +1376,10 @@ class ProductServiceClient { future> RemoveLocalInventories(std::string const& product, Options opts = {}); + StatusOr RemoveLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& product, Options opts = {}); + // clang-format off /// /// Remove local inventory information for a @@ -1369,6 +1452,16 @@ class ProductServiceClient { google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request, Options opts = {}); + StatusOr RemoveLocalInventories( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RemoveLocalInventoriesRequest const& request, + Options opts = {}); + + future> + RemoveLocalInventories(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/retail/v2/search_client.h index 9468cc637a2de..76f36bb43e211 100644 --- a/google/cloud/retail/v2/search_client.h +++ b/google/cloud/retail/v2/search_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_SEARCH_CLIENT_H #include "google/cloud/retail/v2/search_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/retail/v2/serving_config_client.h index a5315e07306d8..118498102bf5b 100644 --- a/google/cloud/retail/v2/serving_config_client.h +++ b/google/cloud/retail/v2/serving_config_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_SERVING_CONFIG_CLIENT_H #include "google/cloud/retail/v2/serving_config_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.cc b/google/cloud/retail/v2/user_event_client.cc index 057830783a5f6..06e655c957cfd 100644 --- a/google/cloud/retail/v2/user_event_client.cc +++ b/google/cloud/retail/v2/user_event_client.cc @@ -55,6 +55,25 @@ UserEventServiceClient::PurgeUserEvents( return connection_->PurgeUserEvents(request); } +StatusOr +UserEventServiceClient::PurgeUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeUserEvents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UserEventServiceClient::PurgeUserEvents( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeUserEvents(google::cloud::ExperimentalTag{}, + operation); +} + future> UserEventServiceClient::ImportUserEvents( google::cloud::retail::v2::ImportUserEventsRequest const& request, @@ -63,6 +82,25 @@ UserEventServiceClient::ImportUserEvents( return connection_->ImportUserEvents(request); } +StatusOr +UserEventServiceClient::ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportUserEvents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UserEventServiceClient::ImportUserEvents( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportUserEvents(google::cloud::ExperimentalTag{}, + operation); +} + future> UserEventServiceClient::RejoinUserEvents( google::cloud::retail::v2::RejoinUserEventsRequest const& request, @@ -71,6 +109,25 @@ UserEventServiceClient::RejoinUserEvents( return connection_->RejoinUserEvents(request); } +StatusOr +UserEventServiceClient::RejoinUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RejoinUserEvents(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +UserEventServiceClient::RejoinUserEvents( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RejoinUserEvents(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace retail_v2 } // namespace cloud diff --git a/google/cloud/retail/v2/user_event_client.h b/google/cloud/retail/v2/user_event_client.h index f2f659fcada06..f2cc2fb650da5 100644 --- a/google/cloud/retail/v2/user_event_client.h +++ b/google/cloud/retail/v2/user_event_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RETAIL_V2_USER_EVENT_CLIENT_H #include "google/cloud/retail/v2/user_event_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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 UserEventServiceClient { google::cloud::retail::v2::PurgeUserEventsRequest const& request, Options opts = {}); + StatusOr PurgeUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::PurgeUserEventsRequest const& request, + Options opts = {}); + + future> + PurgeUserEvents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Bulk import of User events. Request processing might be @@ -241,6 +253,16 @@ class UserEventServiceClient { google::cloud::retail::v2::ImportUserEventsRequest const& request, Options opts = {}); + StatusOr ImportUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::ImportUserEventsRequest const& request, + Options opts = {}); + + future> + ImportUserEvents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts a user-event rejoin operation with latest product catalog. Events @@ -287,6 +309,16 @@ class UserEventServiceClient { google::cloud::retail::v2::RejoinUserEventsRequest const& request, Options opts = {}); + StatusOr RejoinUserEvents( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::retail::v2::RejoinUserEventsRequest const& request, + Options opts = {}); + + future> + RejoinUserEvents(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/run/v2/executions_client.cc index 11b653ca8edf5..39d96a8318388 100644 --- a/google/cloud/run/v2/executions_client.cc +++ b/google/cloud/run/v2/executions_client.cc @@ -68,6 +68,16 @@ ExecutionsClient::DeleteExecution(std::string const& name, Options opts) { return connection_->DeleteExecution(request); } +StatusOr ExecutionsClient::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::DeleteExecutionRequest request; + request.set_name(name); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ExecutionsClient::DeleteExecution( google::cloud::run::v2::DeleteExecutionRequest const& request, @@ -76,6 +86,24 @@ ExecutionsClient::DeleteExecution( return connection_->DeleteExecution(request); } +StatusOr ExecutionsClient::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ExecutionsClient::DeleteExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExecution(google::cloud::ExperimentalTag{}, + operation); +} + future> ExecutionsClient::CancelExecution(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -84,6 +112,16 @@ ExecutionsClient::CancelExecution(std::string const& name, Options opts) { return connection_->CancelExecution(request); } +StatusOr ExecutionsClient::CancelExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::CancelExecutionRequest request; + request.set_name(name); + return connection_->CancelExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ExecutionsClient::CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request, @@ -92,6 +130,24 @@ ExecutionsClient::CancelExecution( return connection_->CancelExecution(request); } +StatusOr ExecutionsClient::CancelExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelExecution(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ExecutionsClient::CancelExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelExecution(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace run_v2 } // namespace cloud diff --git a/google/cloud/run/v2/executions_client.h b/google/cloud/run/v2/executions_client.h index aa6272cb7b4b5..346ef372c8bc2 100644 --- a/google/cloud/run/v2/executions_client.h +++ b/google/cloud/run/v2/executions_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RUN_V2_EXECUTIONS_CLIENT_H #include "google/cloud/run/v2/executions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -255,6 +257,10 @@ class ExecutionsClient { future> DeleteExecution( std::string const& name, Options opts = {}); + StatusOr DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes an Execution. @@ -293,6 +299,15 @@ class ExecutionsClient { google::cloud::run::v2::DeleteExecutionRequest const& request, Options opts = {}); + StatusOr DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request, + Options opts = {}); + + future> DeleteExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Cancels an Execution. @@ -328,6 +343,10 @@ class ExecutionsClient { future> CancelExecution( std::string const& name, Options opts = {}); + StatusOr CancelExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Cancels an Execution. @@ -366,6 +385,15 @@ class ExecutionsClient { google::cloud::run::v2::CancelExecutionRequest const& request, Options opts = {}); + StatusOr CancelExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request, + Options opts = {}); + + future> CancelExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..8321bc6a30090 100644 --- a/google/cloud/run/v2/internal/executions_connection_impl.cc +++ b/google/cloud/run/v2/internal/executions_connection_impl.cc @@ -149,6 +149,57 @@ ExecutionsConnectionImpl::DeleteExecution( polling_policy(*current), __func__); } +StatusOr +ExecutionsConnectionImpl::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +239,57 @@ ExecutionsConnectionImpl::CancelExecution( polling_policy(*current), __func__); } +StatusOr +ExecutionsConnectionImpl::CancelExecution( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..bb0a09faf1f3d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request) override; + + future> DeleteExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request) override; + StatusOr CancelExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request) override; + + future> CancelExecution( + google::cloud::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..df3b4e9177e64 100644 --- a/google/cloud/run/v2/internal/executions_tracing_connection.cc +++ b/google/cloud/run/v2/internal/executions_tracing_connection.cc @@ -61,6 +61,30 @@ ExecutionsTracingConnection::DeleteExecution( return internal::EndSpan(std::move(span), child_->DeleteExecution(request)); } +StatusOr +ExecutionsTracingConnection::DeleteExecution( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ExecutionsTracingConnection::DeleteExecution( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ExecutionsTracingConnection::CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request) { @@ -70,6 +94,30 @@ ExecutionsTracingConnection::CancelExecution( return internal::EndSpan(std::move(span), child_->CancelExecution(request)); } +StatusOr +ExecutionsTracingConnection::CancelExecution( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ExecutionsTracingConnection::CancelExecution( + google::cloud::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(google::cloud::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..79160503fdc9c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request) override; + + future> DeleteExecution( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelExecution( google::cloud::run::v2::CancelExecutionRequest const& request) override; + StatusOr CancelExecution( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request) override; + + future> CancelExecution( + google::cloud::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..bcdc9af8a6095 100644 --- a/google/cloud/run/v2/internal/jobs_connection_impl.cc +++ b/google/cloud/run/v2/internal/jobs_connection_impl.cc @@ -96,6 +96,55 @@ future> JobsConnectionImpl::CreateJob( polling_policy(*current), __func__); } +StatusOr JobsConnectionImpl::CreateJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +224,55 @@ future> JobsConnectionImpl::UpdateJob( polling_policy(*current), __func__); } +StatusOr JobsConnectionImpl::UpdateJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +309,55 @@ future> JobsConnectionImpl::DeleteJob( polling_policy(*current), __func__); } +StatusOr JobsConnectionImpl::DeleteJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +394,55 @@ future> JobsConnectionImpl::RunJob( polling_policy(*current), __func__); } +StatusOr JobsConnectionImpl::RunJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..f82268247ec41 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request) override; + + future> CreateJob( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request) override; + + future> UpdateJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request) override; + StatusOr DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request) override; + + future> DeleteJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RunJob( google::cloud::run::v2::RunJobRequest const& request) override; + StatusOr RunJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request) override; + + future> RunJob( + google::cloud::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..891d5ebeaa34a 100644 --- a/google/cloud/run/v2/internal/jobs_tracing_connection.cc +++ b/google/cloud/run/v2/internal/jobs_tracing_connection.cc @@ -40,6 +40,26 @@ future> JobsTracingConnection::CreateJob( return internal::EndSpan(std::move(span), child_->CreateJob(request)); } +StatusOr JobsTracingConnection::CreateJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> JobsTracingConnection::CreateJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr JobsTracingConnection::GetJob( google::cloud::run::v2::GetJobRequest const& request) { auto span = internal::MakeSpan("run_v2::JobsConnection::GetJob"); @@ -63,6 +83,26 @@ future> JobsTracingConnection::UpdateJob( return internal::EndSpan(std::move(span), child_->UpdateJob(request)); } +StatusOr JobsTracingConnection::UpdateJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> JobsTracingConnection::UpdateJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> JobsTracingConnection::DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request) { auto span = internal::MakeSpan("run_v2::JobsConnection::DeleteJob"); @@ -70,6 +110,26 @@ future> JobsTracingConnection::DeleteJob( return internal::EndSpan(std::move(span), child_->DeleteJob(request)); } +StatusOr JobsTracingConnection::DeleteJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> JobsTracingConnection::DeleteJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> JobsTracingConnection::RunJob( google::cloud::run::v2::RunJobRequest const& request) { @@ -78,6 +138,26 @@ JobsTracingConnection::RunJob( return internal::EndSpan(std::move(span), child_->RunJob(request)); } +StatusOr JobsTracingConnection::RunJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobsTracingConnection::RunJob(google::cloud::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(google::cloud::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..0f34162bebf3f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request) override; + + future> CreateJob( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request) override; + + future> UpdateJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request) override; + StatusOr DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request) override; + + future> DeleteJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RunJob( google::cloud::run::v2::RunJobRequest const& request) override; + StatusOr RunJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request) override; + + future> RunJob( + google::cloud::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..4e10eb0b1aa3e 100644 --- a/google/cloud/run/v2/internal/revisions_connection_impl.cc +++ b/google/cloud/run/v2/internal/revisions_connection_impl.cc @@ -148,6 +148,57 @@ RevisionsConnectionImpl::DeleteRevision( polling_policy(*current), __func__); } +StatusOr +RevisionsConnectionImpl::DeleteRevision( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..96150e1e85bdf 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request) override; + + future> DeleteRevision( + google::cloud::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..11e401445bd99 100644 --- a/google/cloud/run/v2/internal/revisions_tracing_connection.cc +++ b/google/cloud/run/v2/internal/revisions_tracing_connection.cc @@ -59,6 +59,28 @@ RevisionsTracingConnection::DeleteRevision( return internal::EndSpan(std::move(span), child_->DeleteRevision(request)); } +StatusOr +RevisionsTracingConnection::DeleteRevision( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +RevisionsTracingConnection::DeleteRevision( + google::cloud::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(google::cloud::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..5069f5485900d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request) override; + + future> DeleteRevision( + google::cloud::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..9baacf6b1e7b8 100644 --- a/google/cloud/run/v2/internal/services_connection_impl.cc +++ b/google/cloud/run/v2/internal/services_connection_impl.cc @@ -101,6 +101,56 @@ ServicesConnectionImpl::CreateService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::CreateService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +236,56 @@ ServicesConnectionImpl::UpdateService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::UpdateService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +325,56 @@ ServicesConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr ServicesConnectionImpl::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..5b5278d540903 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request) override; + + future> CreateService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request) override; + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request) override; + + future> DeleteService( + google::cloud::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..180e27b424ad1 100644 --- a/google/cloud/run/v2/internal/services_tracing_connection.cc +++ b/google/cloud/run/v2/internal/services_tracing_connection.cc @@ -41,6 +41,28 @@ ServicesTracingConnection::CreateService( return internal::EndSpan(std::move(span), child_->CreateService(request)); } +StatusOr +ServicesTracingConnection::CreateService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::CreateService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ServicesTracingConnection::GetService( google::cloud::run::v2::GetServiceRequest const& request) { auto span = internal::MakeSpan("run_v2::ServicesConnection::GetService"); @@ -66,6 +88,28 @@ ServicesTracingConnection::UpdateService( return internal::EndSpan(std::move(span), child_->UpdateService(request)); } +StatusOr +ServicesTracingConnection::UpdateService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::UpdateService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ServicesTracingConnection::DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request) { @@ -74,6 +118,28 @@ ServicesTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr +ServicesTracingConnection::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServicesTracingConnection::DeleteService( + google::cloud::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(google::cloud::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..b588d32a149c5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request) override; + + future> CreateService( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request) override; + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request) override; + + future> DeleteService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + StatusOr GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request) override; diff --git a/google/cloud/run/v2/jobs_client.cc b/google/cloud/run/v2/jobs_client.cc index 45145b2a00057..9143b0140091f 100644 --- a/google/cloud/run/v2/jobs_client.cc +++ b/google/cloud/run/v2/jobs_client.cc @@ -42,12 +42,40 @@ future> JobsClient::CreateJob( return connection_->CreateJob(request); } +StatusOr JobsClient::CreateJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::run::v2::Job const& job, + std::string const& job_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::CreateJobRequest request; + request.set_parent(parent); + *request.mutable_job() = job; + request.set_job_id(job_id); + return connection_->CreateJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobsClient::CreateJob( google::cloud::run::v2::CreateJobRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreateJob(request); } +StatusOr JobsClient::CreateJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> JobsClient::CreateJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateJob(google::cloud::ExperimentalTag{}, operation); +} + StatusOr JobsClient::GetJob( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -84,12 +112,37 @@ future> JobsClient::UpdateJob( return connection_->UpdateJob(request); } +StatusOr JobsClient::UpdateJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::Job const& job, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::UpdateJobRequest request; + *request.mutable_job() = job; + return connection_->UpdateJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobsClient::UpdateJob( google::cloud::run::v2::UpdateJobRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->UpdateJob(request); } +StatusOr JobsClient::UpdateJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> JobsClient::UpdateJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateJob(google::cloud::ExperimentalTag{}, operation); +} + future> JobsClient::DeleteJob( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -98,12 +151,37 @@ future> JobsClient::DeleteJob( return connection_->DeleteJob(request); } +StatusOr JobsClient::DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::DeleteJobRequest request; + request.set_name(name); + return connection_->DeleteJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobsClient::DeleteJob( google::cloud::run::v2::DeleteJobRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->DeleteJob(request); } +StatusOr JobsClient::DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> JobsClient::DeleteJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteJob(google::cloud::ExperimentalTag{}, operation); +} + future> JobsClient::RunJob( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -112,12 +190,37 @@ future> JobsClient::RunJob( return connection_->RunJob(request); } +StatusOr JobsClient::RunJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::RunJobRequest request; + request.set_name(name); + return connection_->RunJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobsClient::RunJob( google::cloud::run::v2::RunJobRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->RunJob(request); } +StatusOr JobsClient::RunJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> JobsClient::RunJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunJob(google::cloud::ExperimentalTag{}, operation); +} + StatusOr JobsClient::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/run/v2/jobs_client.h b/google/cloud/run/v2/jobs_client.h index b5f55f86c6b7e..667e4218f6d77 100644 --- a/google/cloud/run/v2/jobs_client.h +++ b/google/cloud/run/v2/jobs_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RUN_V2_JOBS_CLIENT_H #include "google/cloud/run/v2/jobs_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -123,6 +125,11 @@ class JobsClient { std::string const& parent, google::cloud::run::v2::Job const& job, std::string const& job_id, Options opts = {}); + StatusOr CreateJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::run::v2::Job const& job, + std::string const& job_id, Options opts = {}); + // clang-format off /// /// Creates a Job. @@ -161,6 +168,15 @@ class JobsClient { google::cloud::run::v2::CreateJobRequest const& request, Options opts = {}); + StatusOr CreateJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request, + Options opts = {}); + + future> CreateJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets information about a Job. @@ -325,6 +341,10 @@ class JobsClient { future> UpdateJob( google::cloud::run::v2::Job const& job, Options opts = {}); + StatusOr UpdateJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::Job const& job, Options opts = {}); + // clang-format off /// /// Updates a Job. @@ -363,6 +383,15 @@ class JobsClient { google::cloud::run::v2::UpdateJobRequest const& request, Options opts = {}); + StatusOr UpdateJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request, + Options opts = {}); + + future> UpdateJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a Job. @@ -397,6 +426,10 @@ class JobsClient { future> DeleteJob( std::string const& name, Options opts = {}); + StatusOr DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Job. @@ -435,6 +468,15 @@ class JobsClient { google::cloud::run::v2::DeleteJobRequest const& request, Options opts = {}); + StatusOr DeleteJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request, + Options opts = {}); + + future> DeleteJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Triggers creation of a new Execution of this Job. @@ -469,6 +511,10 @@ class JobsClient { future> RunJob( std::string const& name, Options opts = {}); + StatusOr RunJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Triggers creation of a new Execution of this Job. @@ -506,6 +552,14 @@ class JobsClient { future> RunJob( google::cloud::run::v2::RunJobRequest const& request, Options opts = {}); + StatusOr RunJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request, Options opts = {}); + + future> RunJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the IAM Access Control policy currently in effect for the given Job. 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..7f090c26d6e7f 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteExecutionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteExecution, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CancelExecution, (google::cloud::run::v2::CancelExecutionRequest const& request), (override)); + + MOCK_METHOD(StatusOr, CancelExecution, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CancelExecutionRequest const& request), + (override)); + + MOCK_METHOD(future>, + CancelExecution, + (google::cloud::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..902c043fb2856 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateJobRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateJob, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateJobRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteJob, (google::cloud::run::v2::DeleteJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteJobRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, RunJob, (google::cloud::run::v2::RunJobRequest const& request), (override)); + MOCK_METHOD(StatusOr, RunJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::RunJobRequest const& request), + (override)); + + MOCK_METHOD(future>, RunJob, + (google::cloud::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..c65acd6be9cff 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRevision, + (google::cloud::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..9f6913042238b 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateService, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteService, (google::cloud::run::v2::DeleteServiceRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteService, + (google::cloud::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_client.cc b/google/cloud/run/v2/revisions_client.cc index aa73ae51812d9..141574fdf542c 100644 --- a/google/cloud/run/v2/revisions_client.cc +++ b/google/cloud/run/v2/revisions_client.cc @@ -68,6 +68,16 @@ RevisionsClient::DeleteRevision(std::string const& name, Options opts) { return connection_->DeleteRevision(request); } +StatusOr RevisionsClient::DeleteRevision( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::DeleteRevisionRequest request; + request.set_name(name); + return connection_->DeleteRevision(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> RevisionsClient::DeleteRevision( google::cloud::run::v2::DeleteRevisionRequest const& request, @@ -76,6 +86,24 @@ RevisionsClient::DeleteRevision( return connection_->DeleteRevision(request); } +StatusOr RevisionsClient::DeleteRevision( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRevision(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +RevisionsClient::DeleteRevision(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRevision(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace run_v2 } // namespace cloud diff --git a/google/cloud/run/v2/revisions_client.h b/google/cloud/run/v2/revisions_client.h index 0c9b05624d540..2fc7ade94bf82 100644 --- a/google/cloud/run/v2/revisions_client.h +++ b/google/cloud/run/v2/revisions_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RUN_V2_REVISIONS_CLIENT_H #include "google/cloud/run/v2/revisions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -253,6 +255,10 @@ class RevisionsClient { future> DeleteRevision( std::string const& name, Options opts = {}); + StatusOr DeleteRevision( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Revision. @@ -291,6 +297,15 @@ class RevisionsClient { google::cloud::run::v2::DeleteRevisionRequest const& request, Options opts = {}); + StatusOr DeleteRevision( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteRevisionRequest const& request, + Options opts = {}); + + future> DeleteRevision( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/run/v2/services_client.cc index 176569ab9834b..6911b037ab28c 100644 --- a/google/cloud/run/v2/services_client.cc +++ b/google/cloud/run/v2/services_client.cc @@ -43,12 +43,41 @@ future> ServicesClient::CreateService( return connection_->CreateService(request); } +StatusOr ServicesClient::CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::run::v2::Service const& service, + std::string const& service_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::CreateServiceRequest request; + request.set_parent(parent); + *request.mutable_service() = service; + request.set_service_id(service_id); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ServicesClient::CreateService( google::cloud::run::v2::CreateServiceRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreateService(request); } +StatusOr ServicesClient::CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ServicesClient::CreateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ServicesClient::GetService( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -85,12 +114,38 @@ future> ServicesClient::UpdateService( return connection_->UpdateService(request); } +StatusOr ServicesClient::UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::Service const& service, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::UpdateServiceRequest request; + *request.mutable_service() = service; + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ServicesClient::UpdateService( google::cloud::run::v2::UpdateServiceRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->UpdateService(request); } +StatusOr ServicesClient::UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ServicesClient::UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateService(google::cloud::ExperimentalTag{}, + operation); +} + future> ServicesClient::DeleteService( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -99,12 +154,38 @@ future> ServicesClient::DeleteService( return connection_->DeleteService(request); } +StatusOr ServicesClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::run::v2::DeleteServiceRequest request; + request.set_name(name); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ServicesClient::DeleteService( google::cloud::run::v2::DeleteServiceRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->DeleteService(request); } +StatusOr ServicesClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> ServicesClient::DeleteService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ServicesClient::GetIamPolicy( google::iam::v1::GetIamPolicyRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/run/v2/services_client.h b/google/cloud/run/v2/services_client.h index f74951f6c8f41..af9b2c0597396 100644 --- a/google/cloud/run/v2/services_client.h +++ b/google/cloud/run/v2/services_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RUN_V2_SERVICES_CLIENT_H #include "google/cloud/run/v2/services_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -124,6 +126,11 @@ class ServicesClient { std::string const& parent, google::cloud::run::v2::Service const& service, std::string const& service_id, Options opts = {}); + StatusOr CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::run::v2::Service const& service, + std::string const& service_id, Options opts = {}); + // clang-format off /// /// Creates a new Service in a given project and location. @@ -162,6 +169,15 @@ class ServicesClient { google::cloud::run::v2::CreateServiceRequest const& request, Options opts = {}); + StatusOr CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::CreateServiceRequest const& request, + Options opts = {}); + + future> CreateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets information about a Service. @@ -328,6 +344,10 @@ class ServicesClient { future> UpdateService( google::cloud::run::v2::Service const& service, Options opts = {}); + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::Service const& service, Options opts = {}); + // clang-format off /// /// Updates a Service. @@ -366,6 +386,15 @@ class ServicesClient { google::cloud::run::v2::UpdateServiceRequest const& request, Options opts = {}); + StatusOr UpdateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::UpdateServiceRequest const& request, + Options opts = {}); + + future> UpdateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a Service. @@ -402,6 +431,10 @@ class ServicesClient { future> DeleteService( std::string const& name, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Service. @@ -442,6 +475,15 @@ class ServicesClient { google::cloud::run::v2::DeleteServiceRequest const& request, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::run::v2::DeleteServiceRequest const& request, + Options opts = {}); + + future> DeleteService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets the IAM Access Control policy currently in effect for the given 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_client.h b/google/cloud/run/v2/tasks_client.h index a452ce04ab237..57cb3ac9c1455 100644 --- a/google/cloud/run/v2/tasks_client.h +++ b/google/cloud/run/v2/tasks_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_RUN_V2_TASKS_CLIENT_H #include "google/cloud/run/v2/tasks_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/scheduler/v1/cloud_scheduler_client.h index dcb40500a13ec..a956ec372a10f 100644 --- a/google/cloud/scheduler/v1/cloud_scheduler_client.h +++ b/google/cloud/scheduler/v1/cloud_scheduler_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SCHEDULER_V1_CLOUD_SCHEDULER_CLIENT_H #include "google/cloud/scheduler/v1/cloud_scheduler_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/secretmanager/v1/secret_manager_client.h index 61a5ac2e21671..373feb9fd1c77 100644 --- a/google/cloud/secretmanager/v1/secret_manager_client.h +++ b/google/cloud/secretmanager/v1/secret_manager_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SECRETMANAGER_V1_SECRET_MANAGER_CLIENT_H #include "google/cloud/secretmanager/v1/secret_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..3d66120e0ce91 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,63 @@ SecureSourceManagerConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +SecureSourceManagerConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +263,63 @@ SecureSourceManagerConnectionImpl::DeleteInstance( polling_policy(*current), __func__); } +StatusOr +SecureSourceManagerConnectionImpl::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +413,63 @@ SecureSourceManagerConnectionImpl::CreateRepository( polling_policy(*current), __func__); } +StatusOr +SecureSourceManagerConnectionImpl::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +511,63 @@ SecureSourceManagerConnectionImpl::DeleteRepository( polling_policy(*current), __func__); } +StatusOr +SecureSourceManagerConnectionImpl::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..7e34458a78cd0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request) override; + + future> + DeleteInstance(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request) override; + + future> + CreateRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& request) override; + StatusOr DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request) override; + + future> + DeleteRepository(google::cloud::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..57c470741ab31 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,31 @@ SecureSourceManagerTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +SecureSourceManagerTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecureSourceManagerTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SecureSourceManagerTracingConnection::DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& @@ -75,6 +100,31 @@ SecureSourceManagerTracingConnection::DeleteInstance( return internal::EndSpan(std::move(span), child_->DeleteInstance(request)); } +StatusOr +SecureSourceManagerTracingConnection::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecureSourceManagerTracingConnection::DeleteInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SecureSourceManagerTracingConnection::ListRepositories( google::cloud::securesourcemanager::v1::ListRepositoriesRequest request) { @@ -109,6 +159,33 @@ SecureSourceManagerTracingConnection::CreateRepository( return internal::EndSpan(std::move(span), child_->CreateRepository(request)); } +StatusOr +SecureSourceManagerTracingConnection::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecureSourceManagerTracingConnection::CreateRepository( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SecureSourceManagerTracingConnection::DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& @@ -120,6 +197,33 @@ SecureSourceManagerTracingConnection::DeleteRepository( return internal::EndSpan(std::move(span), child_->DeleteRepository(request)); } +StatusOr +SecureSourceManagerTracingConnection::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecureSourceManagerTracingConnection::DeleteRepository( + google::cloud::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(google::cloud::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..1900f3f3cb1c7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& request) override; + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request) override; + + future> + DeleteInstance(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request) override; + + future> + CreateRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& request) override; + StatusOr DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request) override; + + future> + DeleteRepository(google::cloud::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..66fbad2939082 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,20 @@ class MockSecureSourceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -74,6 +88,21 @@ class MockSecureSourceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListRepositories, @@ -94,6 +123,20 @@ class MockSecureSourceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateRepository, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateRepository, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -102,6 +145,21 @@ class MockSecureSourceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteRepository, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + DeleteRepository, + (google::cloud::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_client.cc b/google/cloud/securesourcemanager/v1/secure_source_manager_client.cc index 99ff25c7d4c5a..b6dc5585fb1a6 100644 --- a/google/cloud/securesourcemanager/v1/secure_source_manager_client.cc +++ b/google/cloud/securesourcemanager/v1/secure_source_manager_client.cc @@ -78,6 +78,21 @@ SecureSourceManagerClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr +SecureSourceManagerClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::securesourcemanager::v1::Instance const& instance, + std::string const& instance_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::securesourcemanager::v1::CreateInstanceRequest request; + request.set_parent(parent); + *request.mutable_instance() = instance; + request.set_instance_id(instance_id); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecureSourceManagerClient::CreateInstance( google::cloud::securesourcemanager::v1::CreateInstanceRequest const& @@ -87,6 +102,26 @@ SecureSourceManagerClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr +SecureSourceManagerClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecureSourceManagerClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> SecureSourceManagerClient::DeleteInstance(std::string const& name, Options opts) { @@ -96,6 +131,18 @@ SecureSourceManagerClient::DeleteInstance(std::string const& name, return connection_->DeleteInstance(request); } +StatusOr +SecureSourceManagerClient::DeleteInstance(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::securesourcemanager::v1::DeleteInstanceRequest request; + request.set_name(name); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecureSourceManagerClient::DeleteInstance( google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& @@ -105,6 +152,26 @@ SecureSourceManagerClient::DeleteInstance( return connection_->DeleteInstance(request); } +StatusOr +SecureSourceManagerClient::DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecureSourceManagerClient::DeleteInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInstance(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SecureSourceManagerClient::ListRepositories(std::string const& parent, Options opts) { @@ -152,6 +219,21 @@ SecureSourceManagerClient::CreateRepository( return connection_->CreateRepository(request); } +StatusOr +SecureSourceManagerClient::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::securesourcemanager::v1::Repository const& repository, + std::string const& repository_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::securesourcemanager::v1::CreateRepositoryRequest request; + request.set_parent(parent); + *request.mutable_repository() = repository; + request.set_repository_id(repository_id); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecureSourceManagerClient::CreateRepository( google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& @@ -161,6 +243,26 @@ SecureSourceManagerClient::CreateRepository( return connection_->CreateRepository(request); } +StatusOr +SecureSourceManagerClient::CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecureSourceManagerClient::CreateRepository( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRepository(google::cloud::ExperimentalTag{}, + operation); +} + future> SecureSourceManagerClient::DeleteRepository(std::string const& name, Options opts) { @@ -170,6 +272,18 @@ SecureSourceManagerClient::DeleteRepository(std::string const& name, return connection_->DeleteRepository(request); } +StatusOr +SecureSourceManagerClient::DeleteRepository(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest request; + request.set_name(name); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecureSourceManagerClient::DeleteRepository( google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& @@ -179,6 +293,26 @@ SecureSourceManagerClient::DeleteRepository( return connection_->DeleteRepository(request); } +StatusOr +SecureSourceManagerClient::DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecureSourceManagerClient::DeleteRepository( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRepository(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SecureSourceManagerClient::GetIamPolicyRepo( std::string const& resource, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/securesourcemanager/v1/secure_source_manager_client.h b/google/cloud/securesourcemanager/v1/secure_source_manager_client.h index efa81697adbbd..c1eb6c651f219 100644 --- a/google/cloud/securesourcemanager/v1/secure_source_manager_client.h +++ b/google/cloud/securesourcemanager/v1/secure_source_manager_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SECURESOURCEMANAGER_V1_SECURE_SOURCE_MANAGER_CLIENT_H #include "google/cloud/securesourcemanager/v1/secure_source_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -275,6 +277,12 @@ class SecureSourceManagerClient { google::cloud::securesourcemanager::v1::Instance const& instance, std::string const& instance_id, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::securesourcemanager::v1::Instance const& instance, + std::string const& instance_id, Options opts = {}); + // clang-format off /// /// Creates a new instance in a given project and location. @@ -315,6 +323,17 @@ class SecureSourceManagerClient { request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateInstanceRequest const& + request, + Options opts = {}); + + future> + CreateInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single instance. @@ -347,6 +366,10 @@ class SecureSourceManagerClient { future> DeleteInstance(std::string const& name, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single instance. @@ -387,6 +410,17 @@ class SecureSourceManagerClient { request, Options opts = {}); + StatusOr DeleteInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteInstanceRequest const& + request, + Options opts = {}); + + future> + DeleteInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Repositories in a given project and location. @@ -571,6 +605,12 @@ class SecureSourceManagerClient { google::cloud::securesourcemanager::v1::Repository const& repository, std::string const& repository_id, Options opts = {}); + StatusOr CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::securesourcemanager::v1::Repository const& repository, + std::string const& repository_id, Options opts = {}); + // clang-format off /// /// Creates a new repository in a given project and location. @@ -613,6 +653,17 @@ class SecureSourceManagerClient { request, Options opts = {}); + StatusOr CreateRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::CreateRepositoryRequest const& + request, + Options opts = {}); + + future> + CreateRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a Repository. @@ -649,6 +700,10 @@ class SecureSourceManagerClient { future> DeleteRepository(std::string const& name, Options opts = {}); + StatusOr DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Repository. @@ -691,6 +746,17 @@ class SecureSourceManagerClient { request, Options opts = {}); + StatusOr DeleteRepository( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securesourcemanager::v1::DeleteRepositoryRequest const& + request, + Options opts = {}); + + future> + DeleteRepository(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Get IAM policy for a repository. 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..d5f5dfbf0caf7 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,59 @@ SecurityCenterConnectionImpl::BulkMuteFindings( polling_policy(*current), __func__); } +StatusOr +SecurityCenterConnectionImpl::BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +841,60 @@ SecurityCenterConnectionImpl::RunAssetDiscovery( polling_policy(*current), __func__); } +StatusOr +SecurityCenterConnectionImpl::RunAssetDiscovery( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..6603da7ad048c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request) + override; + + future> + BulkMuteFindings(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request) override; + + future> + RunAssetDiscovery(google::cloud::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..cfddd701b8db3 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,30 @@ SecurityCenterTracingConnection::BulkMuteFindings( return internal::EndSpan(std::move(span), child_->BulkMuteFindings(request)); } +StatusOr +SecurityCenterTracingConnection::BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityCenterTracingConnection::BulkMuteFindings( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SecurityCenterTracingConnection::CreateSecurityHealthAnalyticsCustomModule( google::cloud::securitycenter::v1:: @@ -350,6 +374,31 @@ SecurityCenterTracingConnection::RunAssetDiscovery( return internal::EndSpan(std::move(span), child_->RunAssetDiscovery(request)); } +StatusOr +SecurityCenterTracingConnection::RunAssetDiscovery( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityCenterTracingConnection::RunAssetDiscovery( + google::cloud::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(google::cloud::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..cb7402f14590c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request) + override; + + future> + BulkMuteFindings(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request) override; + + future> + RunAssetDiscovery(google::cloud::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..ce7475a5e1ebd 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkMuteFindings, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, @@ -224,6 +237,21 @@ class MockSecurityCenterConnection request), (override)); + MOCK_METHOD( + StatusOr, RunAssetDiscovery, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RunAssetDiscovery, + (google::cloud::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_client.cc b/google/cloud/securitycenter/v1/security_center_client.cc index f11228f824776..d4c078195b7ed 100644 --- a/google/cloud/securitycenter/v1/security_center_client.cc +++ b/google/cloud/securitycenter/v1/security_center_client.cc @@ -43,6 +43,16 @@ SecurityCenterClient::BulkMuteFindings(std::string const& parent, return connection_->BulkMuteFindings(request); } +StatusOr SecurityCenterClient::BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::securitycenter::v1::BulkMuteFindingsRequest request; + request.set_parent(parent); + return connection_->BulkMuteFindings(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecurityCenterClient::BulkMuteFindings( google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request, @@ -51,6 +61,24 @@ SecurityCenterClient::BulkMuteFindings( return connection_->BulkMuteFindings(request); } +StatusOr SecurityCenterClient::BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkMuteFindings(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityCenterClient::BulkMuteFindings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkMuteFindings(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SecurityCenterClient::CreateSecurityHealthAnalyticsCustomModule( std::string const& parent, @@ -540,6 +568,18 @@ SecurityCenterClient::RunAssetDiscovery(std::string const& parent, return connection_->RunAssetDiscovery(request); } +StatusOr +SecurityCenterClient::RunAssetDiscovery(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& parent, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest request; + request.set_parent(parent); + return connection_->RunAssetDiscovery(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecurityCenterClient::RunAssetDiscovery( google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& request, @@ -548,6 +588,25 @@ SecurityCenterClient::RunAssetDiscovery( return connection_->RunAssetDiscovery(request); } +StatusOr +SecurityCenterClient::RunAssetDiscovery( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunAssetDiscovery(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityCenterClient::RunAssetDiscovery( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunAssetDiscovery(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SecurityCenterClient::SetFindingState( std::string const& name, diff --git a/google/cloud/securitycenter/v1/security_center_client.h b/google/cloud/securitycenter/v1/security_center_client.h index 2cea471060dc3..285ba3ef26674 100644 --- a/google/cloud/securitycenter/v1/security_center_client.h +++ b/google/cloud/securitycenter/v1/security_center_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SECURITYCENTER_V1_SECURITY_CENTER_CLIENT_H #include "google/cloud/securitycenter/v1/security_center_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -125,6 +127,10 @@ class SecurityCenterClient { future> BulkMuteFindings(std::string const& parent, Options opts = {}); + StatusOr BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Kicks off an LRO to bulk mute findings for a parent based on a filter. The @@ -166,6 +172,16 @@ class SecurityCenterClient { google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request, Options opts = {}); + StatusOr BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::BulkMuteFindingsRequest const& request, + Options opts = {}); + + future> + BulkMuteFindings(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a resident SecurityHealthAnalyticsCustomModule at the scope of the @@ -1973,6 +1989,10 @@ class SecurityCenterClient { future> RunAssetDiscovery(std::string const& parent, Options opts = {}); + StatusOr RunAssetDiscovery( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Runs asset discovery. The discovery is tracked with a long-running @@ -2018,6 +2038,17 @@ class SecurityCenterClient { request, Options opts = {}); + StatusOr RunAssetDiscovery( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v1::RunAssetDiscoveryRequest const& + request, + Options opts = {}); + + future> + RunAssetDiscovery(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the state of a finding. 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..eb05a1fcc0ad7 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,59 @@ SecurityCenterConnectionImpl::BulkMuteFindings( polling_policy(*current), __func__); } +StatusOr +SecurityCenterConnectionImpl::BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..279231af92935 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request) + override; + + future> + BulkMuteFindings(google::cloud::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..138fb6235a6a2 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,30 @@ SecurityCenterTracingConnection::BulkMuteFindings( return internal::EndSpan(std::move(span), child_->BulkMuteFindings(request)); } +StatusOr +SecurityCenterTracingConnection::BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SecurityCenterTracingConnection::BulkMuteFindings( + google::cloud::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(google::cloud::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..666dc46490ab4 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request) + override; + + future> + BulkMuteFindings(google::cloud::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..41a3d0ddd6bb5 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + BulkMuteFindings, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateBigQueryExport, diff --git a/google/cloud/securitycenter/v2/security_center_client.cc b/google/cloud/securitycenter/v2/security_center_client.cc index e64a6df7beded..085486feda7ee 100644 --- a/google/cloud/securitycenter/v2/security_center_client.cc +++ b/google/cloud/securitycenter/v2/security_center_client.cc @@ -68,6 +68,16 @@ SecurityCenterClient::BulkMuteFindings(std::string const& parent, return connection_->BulkMuteFindings(request); } +StatusOr SecurityCenterClient::BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::securitycenter::v2::BulkMuteFindingsRequest request; + request.set_parent(parent); + return connection_->BulkMuteFindings(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SecurityCenterClient::BulkMuteFindings( google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request, @@ -76,6 +86,24 @@ SecurityCenterClient::BulkMuteFindings( return connection_->BulkMuteFindings(request); } +StatusOr SecurityCenterClient::BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkMuteFindings(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SecurityCenterClient::BulkMuteFindings( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BulkMuteFindings(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SecurityCenterClient::CreateBigQueryExport( std::string const& parent, diff --git a/google/cloud/securitycenter/v2/security_center_client.h b/google/cloud/securitycenter/v2/security_center_client.h index cf3e91b16a199..819631de96675 100644 --- a/google/cloud/securitycenter/v2/security_center_client.h +++ b/google/cloud/securitycenter/v2/security_center_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SECURITYCENTER_V2_SECURITY_CENTER_CLIENT_H #include "google/cloud/securitycenter/v2/security_center_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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,6 +204,10 @@ class SecurityCenterClient { future> BulkMuteFindings(std::string const& parent, Options opts = {}); + StatusOr BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Kicks off an LRO to bulk mute findings for a parent based on a filter. If @@ -244,6 +250,16 @@ class SecurityCenterClient { google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request, Options opts = {}); + StatusOr BulkMuteFindings( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::securitycenter::v2::BulkMuteFindingsRequest const& request, + Options opts = {}); + + future> + BulkMuteFindings(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a BigQuery export. 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_client.h b/google/cloud/securitycentermanagement/v1/security_center_management_client.h index 125999758bbef..ca66abd64a094 100644 --- a/google/cloud/securitycentermanagement/v1/security_center_management_client.h +++ b/google/cloud/securitycentermanagement/v1/security_center_management_client.h @@ -21,6 +21,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SECURITYCENTERMANAGEMENT_V1_SECURITY_CENTER_MANAGEMENT_CLIENT_H #include "google/cloud/securitycentermanagement/v1/security_center_management_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/servicecontrol/v1/quota_controller_client.h index 71b13d24c7f40..a6fa6e7e7075d 100644 --- a/google/cloud/servicecontrol/v1/quota_controller_client.h +++ b/google/cloud/servicecontrol/v1/quota_controller_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SERVICECONTROL_V1_QUOTA_CONTROLLER_CLIENT_H #include "google/cloud/servicecontrol/v1/quota_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/servicecontrol/v1/service_controller_client.h index cc268ed242827..11f3cb6fb31f9 100644 --- a/google/cloud/servicecontrol/v1/service_controller_client.h +++ b/google/cloud/servicecontrol/v1/service_controller_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SERVICECONTROL_V1_SERVICE_CONTROLLER_CLIENT_H #include "google/cloud/servicecontrol/v1/service_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/servicecontrol/v2/service_controller_client.h index 064d46fa40deb..445b9ff2e6a95 100644 --- a/google/cloud/servicecontrol/v2/service_controller_client.h +++ b/google/cloud/servicecontrol/v2/service_controller_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SERVICECONTROL_V2_SERVICE_CONTROLLER_CLIENT_H #include "google/cloud/servicecontrol/v2/service_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/servicedirectory/v1/lookup_client.h index a5f60e8ac8973..c13a4c7486582 100644 --- a/google/cloud/servicedirectory/v1/lookup_client.h +++ b/google/cloud/servicedirectory/v1/lookup_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SERVICEDIRECTORY_V1_LOOKUP_CLIENT_H #include "google/cloud/servicedirectory/v1/lookup_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/servicedirectory/v1/registration_client.h index 7e60a01c3cfd7..c77f07189bad6 100644 --- a/google/cloud/servicedirectory/v1/registration_client.h +++ b/google/cloud/servicedirectory/v1/registration_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SERVICEDIRECTORY_V1_REGISTRATION_CLIENT_H #include "google/cloud/servicedirectory/v1/registration_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/servicehealth/v1/service_health_client.h index 1383907a752be..1d6eb88299ad1 100644 --- a/google/cloud/servicehealth/v1/service_health_client.h +++ b/google/cloud/servicehealth/v1/service_health_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SERVICEHEALTH_V1_SERVICE_HEALTH_CLIENT_H #include "google/cloud/servicehealth/v1/service_health_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..1de32667ace3d 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,61 @@ ServiceManagerConnectionImpl::CreateService( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::CreateService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +253,61 @@ ServiceManagerConnectionImpl::DeleteService( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +348,61 @@ ServiceManagerConnectionImpl::UndeleteService( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::UndeleteService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +510,63 @@ ServiceManagerConnectionImpl::SubmitConfigSource( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::SubmitConfigSource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +659,63 @@ ServiceManagerConnectionImpl::CreateServiceRollout( polling_policy(*current), __func__); } +StatusOr +ServiceManagerConnectionImpl::CreateServiceRollout( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..7f07a4f29e4a7 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request) + override; + + future> + CreateService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService(google::api::servicemanagement::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request) + override; + + future> + DeleteService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request) override; + StatusOr UndeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& request) + override; + + future> + UndeleteService(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request) override; + + future< + StatusOr> + SubmitConfigSource(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request) override; + + future> + CreateServiceRollout( + google::cloud::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..61fa9ac9eb07c 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,30 @@ ServiceManagerTracingConnection::CreateService( return internal::EndSpan(std::move(span), child_->CreateService(request)); } +StatusOr +ServiceManagerTracingConnection::CreateService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::CreateService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ServiceManagerTracingConnection::DeleteService( google::api::servicemanagement::v1::DeleteServiceRequest const& request) { @@ -72,6 +96,30 @@ ServiceManagerTracingConnection::DeleteService( return internal::EndSpan(std::move(span), child_->DeleteService(request)); } +StatusOr +ServiceManagerTracingConnection::DeleteService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::DeleteService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ServiceManagerTracingConnection::UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request) { @@ -81,6 +129,30 @@ ServiceManagerTracingConnection::UndeleteService( return internal::EndSpan(std::move(span), child_->UndeleteService(request)); } +StatusOr +ServiceManagerTracingConnection::UndeleteService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::UndeleteService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ServiceManagerTracingConnection::ListServiceConfigs( google::api::servicemanagement::v1::ListServiceConfigsRequest request) { @@ -123,6 +195,31 @@ ServiceManagerTracingConnection::SubmitConfigSource( child_->SubmitConfigSource(request)); } +StatusOr +ServiceManagerTracingConnection::SubmitConfigSource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::SubmitConfigSource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange ServiceManagerTracingConnection::ListServiceRollouts( google::api::servicemanagement::v1::ListServiceRolloutsRequest request) { @@ -156,6 +253,31 @@ ServiceManagerTracingConnection::CreateServiceRollout( child_->CreateServiceRollout(request)); } +StatusOr +ServiceManagerTracingConnection::CreateServiceRollout( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceManagerTracingConnection::CreateServiceRollout( + google::cloud::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( + google::cloud::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..daec7a72440ee 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request) + override; + + future> + CreateService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteService(google::api::servicemanagement::v1::DeleteServiceRequest const& request) override; + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request) + override; + + future> + DeleteService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request) override; + StatusOr UndeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& request) + override; + + future> + UndeleteService(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request) override; + + future< + StatusOr> + SubmitConfigSource(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request) override; + + future> + CreateServiceRollout( + google::cloud::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..26e8fc9648823 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,38 @@ class MockServiceManagerConnection (google::api::servicemanagement::v1::CreateServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteService, (google::api::servicemanagement::v1::DeleteServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UndeleteService, @@ -76,6 +102,19 @@ class MockServiceManagerConnection request), (override)); + MOCK_METHOD(StatusOr, UndeleteService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeleteService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListServiceConfigs, (google::api::servicemanagement::v1::ListServiceConfigsRequest request), @@ -101,6 +140,21 @@ class MockServiceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, SubmitConfigSource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + SubmitConfigSource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListServiceRollouts, @@ -120,6 +174,19 @@ class MockServiceManagerConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateServiceRollout, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateServiceRollout, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr< google::api::servicemanagement::v1::GenerateConfigReportResponse>, diff --git a/google/cloud/servicemanagement/v1/service_manager_client.cc b/google/cloud/servicemanagement/v1/service_manager_client.cc index b97e36cb9ee3d..0b4c220092f57 100644 --- a/google/cloud/servicemanagement/v1/service_manager_client.cc +++ b/google/cloud/servicemanagement/v1/service_manager_client.cc @@ -67,6 +67,17 @@ ServiceManagerClient::CreateService( return connection_->CreateService(request); } +StatusOr ServiceManagerClient::CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::ManagedService const& service, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::api::servicemanagement::v1::CreateServiceRequest request; + *request.mutable_service() = service; + return connection_->CreateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ServiceManagerClient::CreateService( google::api::servicemanagement::v1::CreateServiceRequest const& request, @@ -75,6 +86,24 @@ ServiceManagerClient::CreateService( return connection_->CreateService(request); } +StatusOr ServiceManagerClient::CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceManagerClient::CreateService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateService(google::cloud::ExperimentalTag{}, + operation); +} + future> ServiceManagerClient::DeleteService(std::string const& service_name, Options opts) { @@ -84,6 +113,16 @@ ServiceManagerClient::DeleteService(std::string const& service_name, return connection_->DeleteService(request); } +StatusOr ServiceManagerClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service_name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::api::servicemanagement::v1::DeleteServiceRequest request; + request.set_service_name(service_name); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ServiceManagerClient::DeleteService( google::api::servicemanagement::v1::DeleteServiceRequest const& request, @@ -92,6 +131,24 @@ ServiceManagerClient::DeleteService( return connection_->DeleteService(request); } +StatusOr ServiceManagerClient::DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceManagerClient::DeleteService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteService(google::cloud::ExperimentalTag{}, + operation); +} + future> ServiceManagerClient::UndeleteService(std::string const& service_name, Options opts) { @@ -101,6 +158,16 @@ ServiceManagerClient::UndeleteService(std::string const& service_name, return connection_->UndeleteService(request); } +StatusOr ServiceManagerClient::UndeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service_name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::api::servicemanagement::v1::UndeleteServiceRequest request; + request.set_service_name(service_name); + return connection_->UndeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ServiceManagerClient::UndeleteService( google::api::servicemanagement::v1::UndeleteServiceRequest const& request, @@ -109,6 +176,24 @@ ServiceManagerClient::UndeleteService( return connection_->UndeleteService(request); } +StatusOr ServiceManagerClient::UndeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceManagerClient::UndeleteService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteService(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ServiceManagerClient::ListServiceConfigs( std::string const& service_name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -175,6 +260,21 @@ ServiceManagerClient::SubmitConfigSource( return connection_->SubmitConfigSource(request); } +StatusOr +ServiceManagerClient::SubmitConfigSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service_name, + google::api::servicemanagement::v1::ConfigSource const& config_source, + bool validate_only, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::api::servicemanagement::v1::SubmitConfigSourceRequest request; + request.set_service_name(service_name); + *request.mutable_config_source() = config_source; + request.set_validate_only(validate_only); + return connection_->SubmitConfigSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ServiceManagerClient::SubmitConfigSource( google::api::servicemanagement::v1::SubmitConfigSourceRequest const& @@ -184,6 +284,26 @@ ServiceManagerClient::SubmitConfigSource( return connection_->SubmitConfigSource(request); } +StatusOr +ServiceManagerClient::SubmitConfigSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SubmitConfigSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceManagerClient::SubmitConfigSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SubmitConfigSource(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange ServiceManagerClient::ListServiceRollouts(std::string const& service_name, std::string const& filter, @@ -233,6 +353,19 @@ ServiceManagerClient::CreateServiceRollout( return connection_->CreateServiceRollout(request); } +StatusOr +ServiceManagerClient::CreateServiceRollout( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service_name, + google::api::servicemanagement::v1::Rollout const& rollout, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::api::servicemanagement::v1::CreateServiceRolloutRequest request; + request.set_service_name(service_name); + *request.mutable_rollout() = rollout; + return connection_->CreateServiceRollout( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ServiceManagerClient::CreateServiceRollout( google::api::servicemanagement::v1::CreateServiceRolloutRequest const& @@ -242,6 +375,26 @@ ServiceManagerClient::CreateServiceRollout( return connection_->CreateServiceRollout(request); } +StatusOr +ServiceManagerClient::CreateServiceRollout( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServiceRollout( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceManagerClient::CreateServiceRollout( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateServiceRollout(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ServiceManagerClient::GenerateConfigReport( google::protobuf::Any const& new_config, diff --git a/google/cloud/servicemanagement/v1/service_manager_client.h b/google/cloud/servicemanagement/v1/service_manager_client.h index 6dffc89b68021..80e32448fb152 100644 --- a/google/cloud/servicemanagement/v1/service_manager_client.h +++ b/google/cloud/servicemanagement/v1/service_manager_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SERVICEMANAGEMENT_V1_SERVICE_MANAGER_CLIENT_H #include "google/cloud/servicemanagement/v1/service_manager_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -234,6 +236,11 @@ class ServiceManagerClient { google::api::servicemanagement::v1::ManagedService const& service, Options opts = {}); + StatusOr CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::ManagedService const& service, + Options opts = {}); + // clang-format off /// /// Creates a new managed service. @@ -283,6 +290,16 @@ class ServiceManagerClient { google::api::servicemanagement::v1::CreateServiceRequest const& request, Options opts = {}); + StatusOr CreateService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRequest const& request, + Options opts = {}); + + future> + CreateService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a managed service. This method will change the service to the @@ -325,6 +342,10 @@ class ServiceManagerClient { future> DeleteService(std::string const& service_name, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service_name, Options opts = {}); + // clang-format off /// /// Deletes a managed service. This method will change the service to the @@ -372,6 +393,16 @@ class ServiceManagerClient { google::api::servicemanagement::v1::DeleteServiceRequest const& request, Options opts = {}); + StatusOr DeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::DeleteServiceRequest const& request, + Options opts = {}); + + future> + DeleteService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Revives a previously deleted managed service. The method restores the @@ -411,6 +442,10 @@ class ServiceManagerClient { future> UndeleteService(std::string const& service_name, Options opts = {}); + StatusOr UndeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service_name, Options opts = {}); + // clang-format off /// /// Revives a previously deleted managed service. The method restores the @@ -455,6 +490,16 @@ class ServiceManagerClient { google::api::servicemanagement::v1::UndeleteServiceRequest const& request, Options opts = {}); + StatusOr UndeleteService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::UndeleteServiceRequest const& request, + Options opts = {}); + + future> + UndeleteService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the history of the service configuration for a managed service, @@ -734,6 +779,12 @@ class ServiceManagerClient { google::api::servicemanagement::v1::ConfigSource const& config_source, bool validate_only, Options opts = {}); + StatusOr SubmitConfigSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service_name, + google::api::servicemanagement::v1::ConfigSource const& config_source, + bool validate_only, Options opts = {}); + // clang-format off /// /// Creates a new service configuration (version) for a managed service based @@ -789,6 +840,18 @@ class ServiceManagerClient { request, Options opts = {}); + StatusOr SubmitConfigSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::SubmitConfigSourceRequest const& + request, + Options opts = {}); + + future< + StatusOr> + SubmitConfigSource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the history of the service configuration rollouts for a managed @@ -992,6 +1055,12 @@ class ServiceManagerClient { google::api::servicemanagement::v1::Rollout const& rollout, Options opts = {}); + StatusOr CreateServiceRollout( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& service_name, + google::api::servicemanagement::v1::Rollout const& rollout, + Options opts = {}); + // clang-format off /// /// Creates a new service configuration rollout. Based on rollout, the @@ -1045,6 +1114,17 @@ class ServiceManagerClient { request, Options opts = {}); + StatusOr CreateServiceRollout( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::servicemanagement::v1::CreateServiceRolloutRequest const& + request, + Options opts = {}); + + future> + CreateServiceRollout(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Generates and returns a report (errors, warnings and changes from 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..82025c0821bbb 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,60 @@ ServiceUsageConnectionImpl::EnableService( polling_policy(*current), __func__); } +StatusOr +ServiceUsageConnectionImpl::EnableService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +198,60 @@ ServiceUsageConnectionImpl::DisableService( polling_policy(*current), __func__); } +StatusOr +ServiceUsageConnectionImpl::DisableService( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +340,60 @@ ServiceUsageConnectionImpl::BatchEnableServices( polling_policy(*current), __func__); } +StatusOr +ServiceUsageConnectionImpl::BatchEnableServices( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..aae94c4083f1a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request) + override; + + future> + EnableService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableService(google::api::serviceusage::v1::DisableServiceRequest const& request) override; + StatusOr DisableService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request) + override; + + future> + DisableService(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request) + override; + + future> + BatchEnableServices(google::cloud::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..9e5653bc86228 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,30 @@ ServiceUsageTracingConnection::EnableService( return internal::EndSpan(std::move(span), child_->EnableService(request)); } +StatusOr +ServiceUsageTracingConnection::EnableService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceUsageTracingConnection::EnableService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ServiceUsageTracingConnection::DisableService( google::api::serviceusage::v1::DisableServiceRequest const& request) { @@ -51,6 +75,30 @@ ServiceUsageTracingConnection::DisableService( return internal::EndSpan(std::move(span), child_->DisableService(request)); } +StatusOr +ServiceUsageTracingConnection::DisableService( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceUsageTracingConnection::DisableService( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr ServiceUsageTracingConnection::GetService( google::api::serviceusage::v1::GetServiceRequest const& request) { @@ -81,6 +129,30 @@ ServiceUsageTracingConnection::BatchEnableServices( child_->BatchEnableServices(request)); } +StatusOr +ServiceUsageTracingConnection::BatchEnableServices( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ServiceUsageTracingConnection::BatchEnableServices( + google::cloud::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(google::cloud::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..093b5ca616bc6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request) + override; + + future> + EnableService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DisableService(google::api::serviceusage::v1::DisableServiceRequest const& request) override; + StatusOr DisableService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request) + override; + + future> + DisableService(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request) + override; + + future> + BatchEnableServices(google::cloud::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..9818c12e337f7 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,38 @@ class MockServiceUsageConnection (google::api::serviceusage::v1::EnableServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, EnableService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + EnableService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DisableService, (google::api::serviceusage::v1::DisableServiceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DisableService, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DisableService, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetService, (google::api::serviceusage::v1::GetServiceRequest const& request), (override)); @@ -76,6 +102,20 @@ class MockServiceUsageConnection request), (override)); + MOCK_METHOD(StatusOr, BatchEnableServices, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + BatchEnableServices, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, BatchGetServices, diff --git a/google/cloud/serviceusage/v1/service_usage_client.cc b/google/cloud/serviceusage/v1/service_usage_client.cc index b7fd417117b5d..bfcbe104e29bc 100644 --- a/google/cloud/serviceusage/v1/service_usage_client.cc +++ b/google/cloud/serviceusage/v1/service_usage_client.cc @@ -40,6 +40,24 @@ ServiceUsageClient::EnableService( return connection_->EnableService(request); } +StatusOr ServiceUsageClient::EnableService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceUsageClient::EnableService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->EnableService(google::cloud::ExperimentalTag{}, + operation); +} + future> ServiceUsageClient::DisableService( google::api::serviceusage::v1::DisableServiceRequest const& request, @@ -48,6 +66,24 @@ ServiceUsageClient::DisableService( return connection_->DisableService(request); } +StatusOr ServiceUsageClient::DisableService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableService(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceUsageClient::DisableService( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DisableService(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ServiceUsageClient::GetService( google::api::serviceusage::v1::GetServiceRequest const& request, Options opts) { @@ -70,6 +106,25 @@ ServiceUsageClient::BatchEnableServices( return connection_->BatchEnableServices(request); } +StatusOr +ServiceUsageClient::BatchEnableServices( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchEnableServices(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ServiceUsageClient::BatchEnableServices( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchEnableServices(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr ServiceUsageClient::BatchGetServices( google::api::serviceusage::v1::BatchGetServicesRequest const& request, diff --git a/google/cloud/serviceusage/v1/service_usage_client.h b/google/cloud/serviceusage/v1/service_usage_client.h index e7b74ae6405e3..9fc8b12a9fa38 100644 --- a/google/cloud/serviceusage/v1/service_usage_client.h +++ b/google/cloud/serviceusage/v1/service_usage_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SERVICEUSAGE_V1_SERVICE_USAGE_CLIENT_H #include "google/cloud/serviceusage/v1/service_usage_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -130,6 +132,16 @@ class ServiceUsageClient { google::api::serviceusage::v1::EnableServiceRequest const& request, Options opts = {}); + StatusOr EnableService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::EnableServiceRequest const& request, + Options opts = {}); + + future> + EnableService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Disable a service so that it can no longer be used with a project. @@ -175,6 +187,16 @@ class ServiceUsageClient { google::api::serviceusage::v1::DisableServiceRequest const& request, Options opts = {}); + StatusOr DisableService( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::DisableServiceRequest const& request, + Options opts = {}); + + future> + DisableService(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the service configuration and enabled state for a given service. @@ -299,6 +321,16 @@ class ServiceUsageClient { google::api::serviceusage::v1::BatchEnableServicesRequest const& request, Options opts = {}); + StatusOr BatchEnableServices( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::api::serviceusage::v1::BatchEnableServicesRequest const& request, + Options opts = {}); + + future> + BatchEnableServices(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the service configurations and enabled states for a given list of 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_client.cc b/google/cloud/shell/v1/cloud_shell_client.cc index ecebe467981ed..87980a887e6e0 100644 --- a/google/cloud/shell/v1/cloud_shell_client.cc +++ b/google/cloud/shell/v1/cloud_shell_client.cc @@ -56,6 +56,25 @@ CloudShellServiceClient::StartEnvironment( return connection_->StartEnvironment(request); } +StatusOr +CloudShellServiceClient::StartEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartEnvironment(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudShellServiceClient::StartEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudShellServiceClient::AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request, @@ -64,6 +83,25 @@ CloudShellServiceClient::AuthorizeEnvironment( return connection_->AuthorizeEnvironment(request); } +StatusOr +CloudShellServiceClient::AuthorizeEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AuthorizeEnvironment( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +CloudShellServiceClient::AuthorizeEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AuthorizeEnvironment(google::cloud::ExperimentalTag{}, + operation); +} + future> CloudShellServiceClient::AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const& request, @@ -72,6 +110,23 @@ CloudShellServiceClient::AddPublicKey( return connection_->AddPublicKey(request); } +StatusOr CloudShellServiceClient::AddPublicKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddPublicKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudShellServiceClient::AddPublicKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddPublicKey(google::cloud::ExperimentalTag{}, operation); +} + future> CloudShellServiceClient::RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request, @@ -80,6 +135,25 @@ CloudShellServiceClient::RemovePublicKey( return connection_->RemovePublicKey(request); } +StatusOr +CloudShellServiceClient::RemovePublicKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemovePublicKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +CloudShellServiceClient::RemovePublicKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemovePublicKey(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace shell_v1 } // namespace cloud diff --git a/google/cloud/shell/v1/cloud_shell_client.h b/google/cloud/shell/v1/cloud_shell_client.h index 45a9308883ce3..ee7c33baf0c81 100644 --- a/google/cloud/shell/v1/cloud_shell_client.h +++ b/google/cloud/shell/v1/cloud_shell_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SHELL_V1_CLOUD_SHELL_CLIENT_H #include "google/cloud/shell/v1/cloud_shell_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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 CloudShellServiceClient { google::cloud::shell::v1::StartEnvironmentRequest const& request, Options opts = {}); + StatusOr StartEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request, + Options opts = {}); + + future> + StartEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Sends OAuth credentials to a running environment on behalf of a user. When @@ -236,6 +248,16 @@ class CloudShellServiceClient { google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request, Options opts = {}); + StatusOr AuthorizeEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request, + Options opts = {}); + + future> + AuthorizeEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds a public SSH key to an environment, allowing clients with the @@ -276,6 +298,15 @@ class CloudShellServiceClient { google::cloud::shell::v1::AddPublicKeyRequest const& request, Options opts = {}); + StatusOr AddPublicKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request, + Options opts = {}); + + future> AddPublicKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Removes a public SSH key from an environment. Clients will no longer be @@ -318,6 +349,16 @@ class CloudShellServiceClient { google::cloud::shell::v1::RemovePublicKeyRequest const& request, Options opts = {}); + StatusOr RemovePublicKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request, + Options opts = {}); + + future> + RemovePublicKey(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..7de4cc0150502 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,59 @@ CloudShellServiceConnectionImpl::StartEnvironment( polling_policy(*current), __func__); } +StatusOr +CloudShellServiceConnectionImpl::StartEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +209,61 @@ CloudShellServiceConnectionImpl::AuthorizeEnvironment( polling_policy(*current), __func__); } +StatusOr +CloudShellServiceConnectionImpl::AuthorizeEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +303,59 @@ CloudShellServiceConnectionImpl::AddPublicKey( polling_policy(*current), __func__); } +StatusOr +CloudShellServiceConnectionImpl::AddPublicKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +395,59 @@ CloudShellServiceConnectionImpl::RemovePublicKey( polling_policy(*current), __func__); } +StatusOr +CloudShellServiceConnectionImpl::RemovePublicKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..30da6627a687d 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request) + override; + + future> + StartEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) override; + StatusOr AuthorizeEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) + override; + + future> + AuthorizeEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const& request) override; + StatusOr AddPublicKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request) override; + + future> AddPublicKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request) override; + StatusOr RemovePublicKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request) override; + + future> + RemovePublicKey(google::cloud::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..debb3d972be15 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,30 @@ CloudShellServiceTracingConnection::StartEnvironment( return internal::EndSpan(std::move(span), child_->StartEnvironment(request)); } +StatusOr +CloudShellServiceTracingConnection::StartEnvironment( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudShellServiceTracingConnection::StartEnvironment( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudShellServiceTracingConnection::AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) { @@ -60,6 +84,30 @@ CloudShellServiceTracingConnection::AuthorizeEnvironment( child_->AuthorizeEnvironment(request)); } +StatusOr +CloudShellServiceTracingConnection::AuthorizeEnvironment( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudShellServiceTracingConnection::AuthorizeEnvironment( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> CloudShellServiceTracingConnection::AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const& request) { @@ -69,6 +117,30 @@ CloudShellServiceTracingConnection::AddPublicKey( return internal::EndSpan(std::move(span), child_->AddPublicKey(request)); } +StatusOr +CloudShellServiceTracingConnection::AddPublicKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudShellServiceTracingConnection::AddPublicKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> CloudShellServiceTracingConnection::RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request) { @@ -78,6 +150,30 @@ CloudShellServiceTracingConnection::RemovePublicKey( return internal::EndSpan(std::move(span), child_->RemovePublicKey(request)); } +StatusOr +CloudShellServiceTracingConnection::RemovePublicKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +CloudShellServiceTracingConnection::RemovePublicKey( + google::cloud::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(google::cloud::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..f23f338a3e6a9 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request) + override; + + future> + StartEnvironment(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AuthorizeEnvironment( google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) override; + StatusOr AuthorizeEnvironment( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request) + override; + + future> + AuthorizeEnvironment( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddPublicKey( google::cloud::shell::v1::AddPublicKeyRequest const& request) override; + StatusOr AddPublicKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request) override; + + future> AddPublicKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemovePublicKey( google::cloud::shell::v1::RemovePublicKeyRequest const& request) override; + StatusOr RemovePublicKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request) override; + + future> + RemovePublicKey(google::cloud::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..73e5d302034be 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,71 @@ class MockCloudShellServiceConnection (google::cloud::shell::v1::StartEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::StartEnvironmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + StartEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, AuthorizeEnvironment, (google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AuthorizeEnvironment, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AuthorizeEnvironmentRequest const& request), + (override)); + + MOCK_METHOD( + future>, + AuthorizeEnvironment, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, AddPublicKey, (google::cloud::shell::v1::AddPublicKeyRequest const& request), (override)); + MOCK_METHOD(StatusOr, AddPublicKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::AddPublicKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + AddPublicKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, RemovePublicKey, (google::cloud::shell::v1::RemovePublicKeyRequest const& request), (override)); + + MOCK_METHOD(StatusOr, RemovePublicKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::shell::v1::RemovePublicKeyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + RemovePublicKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/spanner/admin/database_admin_client.cc b/google/cloud/spanner/admin/database_admin_client.cc index 17730c874b876..36188b93e6d51 100644 --- a/google/cloud/spanner/admin/database_admin_client.cc +++ b/google/cloud/spanner/admin/database_admin_client.cc @@ -61,6 +61,18 @@ DatabaseAdminClient::CreateDatabase(std::string const& parent, return connection_->CreateDatabase(request); } +StatusOr DatabaseAdminClient::CreateDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& create_statement, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::database::v1::CreateDatabaseRequest request; + request.set_parent(parent); + request.set_create_statement(create_statement); + return connection_->CreateDatabase(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatabaseAdminClient::CreateDatabase( google::spanner::admin::database::v1::CreateDatabaseRequest const& request, @@ -69,6 +81,24 @@ DatabaseAdminClient::CreateDatabase( return connection_->CreateDatabase(request); } +StatusOr DatabaseAdminClient::CreateDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDatabase(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatabaseAdminClient::CreateDatabase( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDatabase(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr DatabaseAdminClient::GetDatabase(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -96,6 +126,18 @@ DatabaseAdminClient::UpdateDatabase( return connection_->UpdateDatabase(request); } +StatusOr DatabaseAdminClient::UpdateDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::Database const& database, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::database::v1::UpdateDatabaseRequest request; + *request.mutable_database() = database; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDatabase(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatabaseAdminClient::UpdateDatabase( google::spanner::admin::database::v1::UpdateDatabaseRequest const& request, @@ -104,6 +146,24 @@ DatabaseAdminClient::UpdateDatabase( return connection_->UpdateDatabase(request); } +StatusOr DatabaseAdminClient::UpdateDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDatabase(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatabaseAdminClient::UpdateDatabase( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDatabase(google::cloud::ExperimentalTag{}, + operation); +} + future< StatusOr> DatabaseAdminClient::UpdateDatabaseDdl( @@ -116,6 +176,18 @@ DatabaseAdminClient::UpdateDatabaseDdl( return connection_->UpdateDatabaseDdl(request); } +StatusOr DatabaseAdminClient::UpdateDatabaseDdl( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& database, std::vector const& statements, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest request; + request.set_database(database); + *request.mutable_statements() = {statements.begin(), statements.end()}; + return connection_->UpdateDatabaseDdl(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future< StatusOr> DatabaseAdminClient::UpdateDatabaseDdl( @@ -126,6 +198,26 @@ DatabaseAdminClient::UpdateDatabaseDdl( return connection_->UpdateDatabaseDdl(request); } +StatusOr DatabaseAdminClient::UpdateDatabaseDdl( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDatabaseDdl(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future< + StatusOr> +DatabaseAdminClient::UpdateDatabaseDdl( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDatabaseDdl(google::cloud::ExperimentalTag{}, + operation); +} + Status DatabaseAdminClient::DropDatabase(std::string const& database, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -253,6 +345,20 @@ DatabaseAdminClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr DatabaseAdminClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::spanner::admin::database::v1::Backup const& backup, + std::string const& backup_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::database::v1::CreateBackupRequest request; + request.set_parent(parent); + *request.mutable_backup() = backup; + request.set_backup_id(backup_id); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatabaseAdminClient::CreateBackup( google::spanner::admin::database::v1::CreateBackupRequest const& request, @@ -261,6 +367,23 @@ DatabaseAdminClient::CreateBackup( return connection_->CreateBackup(request); } +StatusOr DatabaseAdminClient::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatabaseAdminClient::CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateBackup(google::cloud::ExperimentalTag{}, operation); +} + future> DatabaseAdminClient::CopyBackup(std::string const& parent, std::string const& backup_id, @@ -276,6 +399,21 @@ DatabaseAdminClient::CopyBackup(std::string const& parent, return connection_->CopyBackup(request); } +StatusOr DatabaseAdminClient::CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& backup_id, + std::string const& source_backup, + google::protobuf::Timestamp const& expire_time, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::database::v1::CopyBackupRequest request; + request.set_parent(parent); + request.set_backup_id(backup_id); + request.set_source_backup(source_backup); + *request.mutable_expire_time() = expire_time; + return connection_->CopyBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatabaseAdminClient::CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request, @@ -284,6 +422,23 @@ DatabaseAdminClient::CopyBackup( return connection_->CopyBackup(request); } +StatusOr DatabaseAdminClient::CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CopyBackup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatabaseAdminClient::CopyBackup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CopyBackup(google::cloud::ExperimentalTag{}, operation); +} + StatusOr DatabaseAdminClient::GetBackup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -362,6 +517,19 @@ DatabaseAdminClient::RestoreDatabase(std::string const& parent, return connection_->RestoreDatabase(request); } +StatusOr DatabaseAdminClient::RestoreDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& database_id, + std::string const& backup, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::database::v1::RestoreDatabaseRequest request; + request.set_parent(parent); + request.set_database_id(database_id); + request.set_backup(backup); + return connection_->RestoreDatabase(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> DatabaseAdminClient::RestoreDatabase( google::spanner::admin::database::v1::RestoreDatabaseRequest const& request, @@ -370,6 +538,24 @@ DatabaseAdminClient::RestoreDatabase( return connection_->RestoreDatabase(request); } +StatusOr DatabaseAdminClient::RestoreDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreDatabase(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +DatabaseAdminClient::RestoreDatabase( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RestoreDatabase(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange DatabaseAdminClient::ListDatabaseOperations(std::string const& parent, Options opts) { diff --git a/google/cloud/spanner/admin/database_admin_client.h b/google/cloud/spanner/admin/database_admin_client.h index e7ef8129e0308..a923350e9dcf0 100644 --- a/google/cloud/spanner/admin/database_admin_client.h +++ b/google/cloud/spanner/admin/database_admin_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SPANNER_ADMIN_DATABASE_ADMIN_CLIENT_H #include "google/cloud/spanner/admin/database_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -219,6 +221,11 @@ class DatabaseAdminClient { CreateDatabase(std::string const& parent, std::string const& create_statement, Options opts = {}); + StatusOr CreateDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& create_statement, + Options opts = {}); + // clang-format off /// /// Creates a new Cloud Spanner database and starts to prepare it for serving. @@ -270,6 +277,17 @@ class DatabaseAdminClient { request, Options opts = {}); + StatusOr CreateDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request, + Options opts = {}); + + future> + CreateDatabase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets the state of a Cloud Spanner database. @@ -406,6 +424,11 @@ class DatabaseAdminClient { google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::Database const& database, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a Cloud Spanner database. The returned @@ -487,6 +510,17 @@ class DatabaseAdminClient { request, Options opts = {}); + StatusOr UpdateDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request, + Options opts = {}); + + future> + UpdateDatabase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the schema of a Cloud Spanner database by @@ -532,6 +566,11 @@ class DatabaseAdminClient { std::vector const& statements, Options opts = {}); + StatusOr UpdateDatabaseDdl( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& database, std::vector const& statements, + Options opts = {}); + // clang-format off /// /// Updates the schema of a Cloud Spanner database by @@ -582,6 +621,18 @@ class DatabaseAdminClient { request, Options opts = {}); + StatusOr UpdateDatabaseDdl( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request, + Options opts = {}); + + future< + StatusOr> + UpdateDatabaseDdl(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Drops (aka deletes) a Cloud Spanner database. @@ -1014,6 +1065,12 @@ class DatabaseAdminClient { google::spanner::admin::database::v1::Backup const& backup, std::string const& backup_id, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::spanner::admin::database::v1::Backup const& backup, + std::string const& backup_id, Options opts = {}); + // clang-format off /// /// Starts creating a new Cloud Spanner Backup. @@ -1067,6 +1124,15 @@ class DatabaseAdminClient { google::spanner::admin::database::v1::CreateBackupRequest const& request, Options opts = {}); + StatusOr CreateBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request, + Options opts = {}); + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Starts copying a Cloud Spanner Backup. @@ -1132,6 +1198,12 @@ class DatabaseAdminClient { std::string const& source_backup, google::protobuf::Timestamp const& expire_time, Options opts = {}); + StatusOr CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& backup_id, + std::string const& source_backup, + google::protobuf::Timestamp const& expire_time, Options opts = {}); + // clang-format off /// /// Starts copying a Cloud Spanner Backup. @@ -1186,6 +1258,15 @@ class DatabaseAdminClient { google::spanner::admin::database::v1::CopyBackupRequest const& request, Options opts = {}); + StatusOr CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request, + Options opts = {}); + + future> CopyBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets metadata on a pending or completed @@ -1510,6 +1591,11 @@ class DatabaseAdminClient { RestoreDatabase(std::string const& parent, std::string const& database_id, std::string const& backup, Options opts = {}); + StatusOr RestoreDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& database_id, + std::string const& backup, Options opts = {}); + // clang-format off /// /// Create a new database by restoring from a completed backup. The new @@ -1570,6 +1656,17 @@ class DatabaseAdminClient { request, Options opts = {}); + StatusOr RestoreDatabase( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request, + Options opts = {}); + + future> + RestoreDatabase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists database [longrunning-operations][google.longrunning.Operation]. 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_client.cc b/google/cloud/spanner/admin/instance_admin_client.cc index 42fc63a4a8730..b351f33d91b8d 100644 --- a/google/cloud/spanner/admin/instance_admin_client.cc +++ b/google/cloud/spanner/admin/instance_admin_client.cc @@ -81,6 +81,21 @@ InstanceAdminClient::CreateInstanceConfig( return connection_->CreateInstanceConfig(request); } +StatusOr +InstanceAdminClient::CreateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::spanner::admin::instance::v1::InstanceConfig const& instance_config, + std::string const& instance_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::instance::v1::CreateInstanceConfigRequest request; + request.set_parent(parent); + *request.mutable_instance_config() = instance_config; + request.set_instance_config_id(instance_config_id); + return connection_->CreateInstanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceAdminClient::CreateInstanceConfig( google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& @@ -90,6 +105,26 @@ InstanceAdminClient::CreateInstanceConfig( return connection_->CreateInstanceConfig(request); } +StatusOr +InstanceAdminClient::CreateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceAdminClient::CreateInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstanceConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceAdminClient::UpdateInstanceConfig( google::spanner::admin::instance::v1::InstanceConfig const& instance_config, @@ -101,6 +136,19 @@ InstanceAdminClient::UpdateInstanceConfig( return connection_->UpdateInstanceConfig(request); } +StatusOr +InstanceAdminClient::UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::InstanceConfig const& instance_config, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest request; + *request.mutable_instance_config() = instance_config; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateInstanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceAdminClient::UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& @@ -110,6 +158,26 @@ InstanceAdminClient::UpdateInstanceConfig( return connection_->UpdateInstanceConfig(request); } +StatusOr +InstanceAdminClient::UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstanceConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceAdminClient::UpdateInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstanceConfig(google::cloud::ExperimentalTag{}, + operation); +} + Status InstanceAdminClient::DeleteInstanceConfig(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -207,6 +275,20 @@ InstanceAdminClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr InstanceAdminClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& instance_id, + google::spanner::admin::instance::v1::Instance const& instance, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::instance::v1::CreateInstanceRequest request; + request.set_parent(parent); + request.set_instance_id(instance_id); + *request.mutable_instance() = instance; + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceAdminClient::CreateInstance( google::spanner::admin::instance::v1::CreateInstanceRequest const& request, @@ -215,6 +297,24 @@ InstanceAdminClient::CreateInstance( return connection_->CreateInstance(request); } +StatusOr InstanceAdminClient::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceAdminClient::CreateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstance(google::cloud::ExperimentalTag{}, + operation); +} + future> InstanceAdminClient::UpdateInstance( google::spanner::admin::instance::v1::Instance const& instance, @@ -226,6 +326,18 @@ InstanceAdminClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr InstanceAdminClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::Instance const& instance, + google::protobuf::FieldMask const& field_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::instance::v1::UpdateInstanceRequest request; + *request.mutable_instance() = instance; + *request.mutable_field_mask() = field_mask; + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> InstanceAdminClient::UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& request, @@ -234,6 +346,24 @@ InstanceAdminClient::UpdateInstance( return connection_->UpdateInstance(request); } +StatusOr InstanceAdminClient::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceAdminClient::UpdateInstance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstance(google::cloud::ExperimentalTag{}, + operation); +} + Status InstanceAdminClient::DeleteInstance(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -364,6 +494,22 @@ InstanceAdminClient::CreateInstancePartition( return connection_->CreateInstancePartition(request); } +StatusOr +InstanceAdminClient::CreateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::spanner::admin::instance::v1::InstancePartition const& + instance_partition, + std::string const& instance_partition_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::instance::v1::CreateInstancePartitionRequest request; + request.set_parent(parent); + *request.mutable_instance_partition() = instance_partition; + request.set_instance_partition_id(instance_partition_id); + return connection_->CreateInstancePartition( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceAdminClient::CreateInstancePartition( google::spanner::admin::instance::v1::CreateInstancePartitionRequest const& @@ -373,6 +519,26 @@ InstanceAdminClient::CreateInstancePartition( return connection_->CreateInstancePartition(request); } +StatusOr +InstanceAdminClient::CreateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstancePartitionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstancePartition( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceAdminClient::CreateInstancePartition( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInstancePartition(google::cloud::ExperimentalTag{}, + operation); +} + Status InstanceAdminClient::DeleteInstancePartition(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -401,6 +567,20 @@ InstanceAdminClient::UpdateInstancePartition( return connection_->UpdateInstancePartition(request); } +StatusOr +InstanceAdminClient::UpdateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::InstancePartition const& + instance_partition, + google::protobuf::FieldMask const& field_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::spanner::admin::instance::v1::UpdateInstancePartitionRequest request; + *request.mutable_instance_partition() = instance_partition; + *request.mutable_field_mask() = field_mask; + return connection_->UpdateInstancePartition( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> InstanceAdminClient::UpdateInstancePartition( google::spanner::admin::instance::v1::UpdateInstancePartitionRequest const& @@ -410,6 +590,26 @@ InstanceAdminClient::UpdateInstancePartition( return connection_->UpdateInstancePartition(request); } +StatusOr +InstanceAdminClient::UpdateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstancePartitionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstancePartition( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +InstanceAdminClient::UpdateInstancePartition( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInstancePartition(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange InstanceAdminClient::ListInstancePartitionOperations(std::string const& parent, Options opts) { diff --git a/google/cloud/spanner/admin/instance_admin_client.h b/google/cloud/spanner/admin/instance_admin_client.h index d3420d5bdc65a..8eb4cb38870e3 100644 --- a/google/cloud/spanner/admin/instance_admin_client.h +++ b/google/cloud/spanner/admin/instance_admin_client.h @@ -20,9 +20,11 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SPANNER_ADMIN_INSTANCE_ADMIN_CLIENT_H #include "google/cloud/spanner/admin/instance_admin_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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" @@ -337,6 +339,13 @@ class InstanceAdminClient { instance_config, std::string const& instance_config_id, Options opts = {}); + StatusOr CreateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::spanner::admin::instance::v1::InstanceConfig const& + instance_config, + std::string const& instance_config_id, Options opts = {}); + // clang-format off /// /// Creates an instance config and begins preparing it to be used. The @@ -423,6 +432,17 @@ class InstanceAdminClient { request, Options opts = {}); + StatusOr CreateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request, + Options opts = {}); + + future> + CreateInstanceConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an instance config. The returned @@ -520,6 +540,12 @@ class InstanceAdminClient { instance_config, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::InstanceConfig const& + instance_config, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an instance config. The returned @@ -610,6 +636,17 @@ class InstanceAdminClient { request, Options opts = {}); + StatusOr UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request, + Options opts = {}); + + future> + UpdateInstanceConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the instance config. Deletion is only allowed when no @@ -1062,6 +1099,12 @@ class InstanceAdminClient { google::spanner::admin::instance::v1::Instance const& instance, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& instance_id, + google::spanner::admin::instance::v1::Instance const& instance, + Options opts = {}); + // clang-format off /// /// Creates an instance and begins preparing it to begin serving. The @@ -1139,6 +1182,17 @@ class InstanceAdminClient { request, Options opts = {}); + StatusOr CreateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request, + Options opts = {}); + + future> + CreateInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an instance, and begins allocating or releasing resources @@ -1227,6 +1281,11 @@ class InstanceAdminClient { google::protobuf::FieldMask const& field_mask, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::Instance const& instance, + google::protobuf::FieldMask const& field_mask, Options opts = {}); + // clang-format off /// /// Updates an instance, and begins allocating or releasing resources @@ -1312,6 +1371,17 @@ class InstanceAdminClient { request, Options opts = {}); + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request, + Options opts = {}); + + future> + UpdateInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes an instance. @@ -1760,6 +1830,13 @@ class InstanceAdminClient { instance_partition, std::string const& instance_partition_id, Options opts = {}); + StatusOr CreateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::spanner::admin::instance::v1::InstancePartition const& + instance_partition, + std::string const& instance_partition_id, Options opts = {}); + // clang-format off /// /// Creates an instance partition and begins preparing it to be used. The @@ -1839,6 +1916,17 @@ class InstanceAdminClient { CreateInstancePartitionRequest const& request, Options opts = {}); + StatusOr CreateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request, + Options opts = {}); + + future> + CreateInstancePartition(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes an existing instance partition. Requires that the @@ -1999,6 +2087,12 @@ class InstanceAdminClient { instance_partition, google::protobuf::FieldMask const& field_mask, Options opts = {}); + StatusOr UpdateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::InstancePartition const& + instance_partition, + google::protobuf::FieldMask const& field_mask, Options opts = {}); + // clang-format off /// /// Updates an instance partition, and begins allocating or releasing resources @@ -2087,6 +2181,17 @@ class InstanceAdminClient { UpdateInstancePartitionRequest const& request, Options opts = {}); + StatusOr UpdateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request, + Options opts = {}); + + future> + UpdateInstancePartition(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists instance partition [long-running 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/integration_tests/database_admin_integration_test.cc b/google/cloud/spanner/admin/integration_tests/database_admin_integration_test.cc index da0c4821ceec5..656e42fedbfd3 100644 --- a/google/cloud/spanner/admin/integration_tests/database_admin_integration_test.cc +++ b/google/cloud/spanner/admin/integration_tests/database_admin_integration_test.cc @@ -108,6 +108,37 @@ class DatabaseAdminClientTest std::string test_iam_service_account_; }; +TEST_F(DatabaseAdminClientTest, DatabaseStartAwaitSuccess) { + EXPECT_FALSE(DatabaseExists()) << "Database " << database_ + << " already exists, this is unexpected as " + "the database id is selected at random."; + + std::cout << __func__ << " StartCreateDatabase: " << database_.database_id() + << "\n"; + + auto operation = client_.CreateDatabase( + ExperimentalTag{}, NoAwaitTag{}, database_.instance().FullName(), + absl::StrCat("CREATE DATABASE `", database_.database_id(), "`")); + ASSERT_STATUS_OK(operation); + std::cout << __func__ << ": operation=" << operation->DebugString() << "\n"; + + std::cout << __func__ << " AwaitCreateBackup" << std::endl; + auto backup = client_.CreateBackup(ExperimentalTag{}, *operation).get(); + EXPECT_THAT(backup, StatusIs(StatusCode::kInvalidArgument)); + + std::cout << __func__ << " AwaitCreateDatabase\n"; + auto database = client_.CreateDatabase(ExperimentalTag{}, *operation).get(); + EXPECT_THAT(database->name(), EndsWith(database_.database_id())); + + EXPECT_TRUE(DatabaseExists()) << "Database " << database_; + std::cout << __func__ << ": database=" << database->DebugString() << "\n"; + + std::cout << __func__ << " DropDatabase\n"; + auto drop_status = client_.DropDatabase(database_.FullName()); + EXPECT_STATUS_OK(drop_status); + EXPECT_FALSE(DatabaseExists()) << "Database " << database_; +} + /// @test Verify the basic CRUD operations for databases work. TEST_F(DatabaseAdminClientTest, DatabaseBasicCRUD) { // We test Client::ListDatabases() by verifying that (a) it does not return diff --git a/google/cloud/spanner/admin/integration_tests/instance_admin_integration_test.cc b/google/cloud/spanner/admin/integration_tests/instance_admin_integration_test.cc index 491a9bf3c8af5..0ed4faa6214a9 100644 --- a/google/cloud/spanner/admin/integration_tests/instance_admin_integration_test.cc +++ b/google/cloud/spanner/admin/integration_tests/instance_admin_integration_test.cc @@ -214,6 +214,49 @@ TEST_F(InstanceAdminClientTest, InstanceCRUDOperations) { EXPECT_STATUS_OK(client_.DeleteInstance(in.FullName())); } +TEST_F(InstanceAdminClientTest, CreateInstanceStartAwait) { + if (!Emulator() && !RunSlowInstanceTests()) { + GTEST_SKIP() << "skipping slow instance tests; set " + << "GOOGLE_CLOUD_CPP_SPANNER_SLOW_INTEGRATION_TESTS=instance" + << " to override"; + } + + std::string instance_id = spanner_testing::RandomInstanceName(generator_); + Instance in(ProjectId(), instance_id); + ASSERT_FALSE(in.project_id().empty()); + ASSERT_FALSE(in.instance_id().empty()); + + auto config_name = spanner_testing::PickInstanceConfig( + in.project(), generator_, + [](google::spanner::admin::instance::v1::InstanceConfig const& config) { + return absl::StrContains(config.name(), "/regional-us-west"); + }); + ASSERT_FALSE(config_name.empty()) << "could not get an instance config"; + + auto operation = + client_.CreateInstance(ExperimentalTag{}, NoAwaitTag{}, + CreateInstanceRequestBuilder(in, config_name) + .SetDisplayName("test-display-name") + .SetNodeCount(1) + .SetLabels({{"label-key", "label-value"}}) + .Build()); + ASSERT_STATUS_OK(operation); + std::cout << __func__ << ": operation=" << operation->DebugString() << "\n"; + + std::cout << __func__ << " AwaitCreateInstanceConfig" << std::endl; + auto instance_config = + client_.CreateInstanceConfig(ExperimentalTag{}, *operation).get(); + EXPECT_THAT(instance_config, StatusIs(StatusCode::kInvalidArgument)); + + std::cout << __func__ << " AwaitCreateInstance\n"; + auto instance = client_.CreateInstance(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(instance); + EXPECT_THAT(instance->name(), Eq(in.FullName())); + EXPECT_EQ(instance->display_name(), "test-display-name"); + + EXPECT_STATUS_OK(client_.DeleteInstance(in.FullName())); +} + TEST_F(InstanceAdminClientTest, InstanceConfig) { auto project_id = ProjectId(); ASSERT_FALSE(project_id.empty()); diff --git a/google/cloud/spanner/admin/integration_tests/instance_admin_rest_integration_test.cc b/google/cloud/spanner/admin/integration_tests/instance_admin_rest_integration_test.cc index 032f22878b321..f723143dc5188 100644 --- a/google/cloud/spanner/admin/integration_tests/instance_admin_rest_integration_test.cc +++ b/google/cloud/spanner/admin/integration_tests/instance_admin_rest_integration_test.cc @@ -44,6 +44,7 @@ GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_BEGIN namespace { using ::google::cloud::testing_util::StatusIs; +using ::testing::Eq; std::string const& ProjectId() { static std::string project_id = @@ -257,6 +258,49 @@ TEST_F(InstanceAdminClientRestTest, InstanceCRUDOperations) { EXPECT_STATUS_OK(client_.DeleteInstance(in.FullName())); } +TEST_F(InstanceAdminClientRestTest, CreateInstanceStartAwait) { + if (!Emulator() && !RunSlowInstanceTests()) { + GTEST_SKIP() << "skipping slow instance tests; set " + << "GOOGLE_CLOUD_CPP_SPANNER_SLOW_INTEGRATION_TESTS=instance" + << " to override"; + } + + std::string instance_id = spanner_testing::RandomInstanceName(generator_); + Instance in(ProjectId(), instance_id); + ASSERT_FALSE(in.project_id().empty()); + ASSERT_FALSE(in.instance_id().empty()); + + auto config_name = spanner_testing::PickInstanceConfig( + in.project(), generator_, + [](google::spanner::admin::instance::v1::InstanceConfig const& config) { + return absl::StrContains(config.name(), "/regional-us-west"); + }); + ASSERT_FALSE(config_name.empty()) << "could not get an instance config"; + + auto operation = + client_.CreateInstance(ExperimentalTag{}, NoAwaitTag{}, + CreateInstanceRequestBuilder(in, config_name) + .SetDisplayName("test-display-name") + .SetNodeCount(1) + .SetLabels({{"label-key", "label-value"}}) + .Build()); + ASSERT_STATUS_OK(operation); + std::cout << __func__ << ": operation=" << operation->DebugString() << "\n"; + + std::cout << __func__ << " AwaitCreateInstanceConfig" << std::endl; + auto instance_config = + client_.CreateInstanceConfig(ExperimentalTag{}, *operation).get(); + EXPECT_THAT(instance_config, StatusIs(StatusCode::kInvalidArgument)); + + std::cout << __func__ << " AwaitCreateInstance\n"; + auto instance = client_.CreateInstance(ExperimentalTag{}, *operation).get(); + ASSERT_STATUS_OK(instance); + EXPECT_THAT(instance->name(), Eq(in.FullName())); + EXPECT_EQ(instance->display_name(), "test-display-name"); + + EXPECT_STATUS_OK(client_.DeleteInstance(in.FullName())); +} + } // namespace GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace spanner 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..b9d9764a96e71 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,62 @@ DatabaseAdminConnectionImpl::CreateDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::CreateDatabase( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +253,62 @@ DatabaseAdminConnectionImpl::UpdateDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::UpdateDatabase( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +351,64 @@ DatabaseAdminConnectionImpl::UpdateDatabaseDdl( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::UpdateDatabaseDdl( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +519,61 @@ DatabaseAdminConnectionImpl::CreateBackup( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +614,61 @@ DatabaseAdminConnectionImpl::CopyBackup( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::CopyBackup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +789,62 @@ DatabaseAdminConnectionImpl::RestoreDatabase( polling_policy(*current), __func__); } +StatusOr +DatabaseAdminConnectionImpl::RestoreDatabase( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..b515af40279d0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) override; + + future> + CreateDatabase(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) override; + + future> + UpdateDatabase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpdateDatabaseDdl( google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + StatusOr UpdateDatabaseDdl( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) override; + + future< + StatusOr> + UpdateDatabaseDdl(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request) + override; + + future> CopyBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) override; + + future> + RestoreDatabase(google::cloud::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..26dd98254478f 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,31 @@ DatabaseAdminTracingConnection::CreateDatabase( return internal::EndSpan(std::move(span), child_->CreateDatabase(request)); } +StatusOr +DatabaseAdminTracingConnection::CreateDatabase( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::CreateDatabase( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatabaseAdminTracingConnection::GetDatabase( google::spanner::admin::database::v1::GetDatabaseRequest const& request) { @@ -74,6 +99,31 @@ DatabaseAdminTracingConnection::UpdateDatabase( return internal::EndSpan(std::move(span), child_->UpdateDatabase(request)); } +StatusOr +DatabaseAdminTracingConnection::UpdateDatabase( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::UpdateDatabase( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future< StatusOr> DatabaseAdminTracingConnection::UpdateDatabaseDdl( @@ -85,6 +135,32 @@ DatabaseAdminTracingConnection::UpdateDatabaseDdl( return internal::EndSpan(std::move(span), child_->UpdateDatabaseDdl(request)); } +StatusOr +DatabaseAdminTracingConnection::UpdateDatabaseDdl( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future< + StatusOr> +DatabaseAdminTracingConnection::UpdateDatabaseDdl( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + Status DatabaseAdminTracingConnection::DropDatabase( google::spanner::admin::database::v1::DropDatabaseRequest const& request) { auto span = internal::MakeSpan( @@ -137,6 +213,30 @@ DatabaseAdminTracingConnection::CreateBackup( return internal::EndSpan(std::move(span), child_->CreateBackup(request)); } +StatusOr +DatabaseAdminTracingConnection::CreateBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::CreateBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> DatabaseAdminTracingConnection::CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) { @@ -146,6 +246,30 @@ DatabaseAdminTracingConnection::CopyBackup( return internal::EndSpan(std::move(span), child_->CopyBackup(request)); } +StatusOr +DatabaseAdminTracingConnection::CopyBackup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::CopyBackup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr DatabaseAdminTracingConnection::GetBackup( google::spanner::admin::database::v1::GetBackupRequest const& request) { @@ -194,6 +318,31 @@ DatabaseAdminTracingConnection::RestoreDatabase( return internal::EndSpan(std::move(span), child_->RestoreDatabase(request)); } +StatusOr +DatabaseAdminTracingConnection::RestoreDatabase( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +DatabaseAdminTracingConnection::RestoreDatabase( + google::cloud::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(google::cloud::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..5305723056456 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request) override; + + future> + CreateDatabase(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request) override; + + future> + UpdateDatabase(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> UpdateDatabaseDdl( google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& request) override; + StatusOr UpdateDatabaseDdl( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request) override; + + future< + StatusOr> + UpdateDatabaseDdl(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& request) + override; + + future> CreateBackup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CopyBackup( google::spanner::admin::database::v1::CopyBackupRequest const& request) override; + StatusOr CopyBackup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request) + override; + + future> CopyBackup( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request) override; + + future> + RestoreDatabase(google::cloud::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..a04770ab4e45f 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,62 @@ InstanceAdminConnectionImpl::CreateInstanceConfig( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::CreateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +253,62 @@ InstanceAdminConnectionImpl::UpdateInstanceConfig( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +490,62 @@ InstanceAdminConnectionImpl::CreateInstance( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +587,62 @@ InstanceAdminConnectionImpl::UpdateInstance( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +754,62 @@ InstanceAdminConnectionImpl::CreateInstancePartition( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::CreateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +865,62 @@ InstanceAdminConnectionImpl::UpdateInstancePartition( polling_policy(*current), __func__); } +StatusOr +InstanceAdminConnectionImpl::UpdateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..1b570420bca1a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request) override; + + future> + CreateInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request) override; + + future> + UpdateInstanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request) override; + + future> + CreateInstancePartition( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request) override; + + future> + UpdateInstancePartition( + google::cloud::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..b77281d3627de 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,31 @@ InstanceAdminTracingConnection::CreateInstanceConfig( child_->CreateInstanceConfig(request)); } +StatusOr +InstanceAdminTracingConnection::CreateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::CreateInstanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceAdminTracingConnection::UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& @@ -77,6 +102,31 @@ InstanceAdminTracingConnection::UpdateInstanceConfig( child_->UpdateInstanceConfig(request)); } +StatusOr +InstanceAdminTracingConnection::UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::UpdateInstanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status InstanceAdminTracingConnection::DeleteInstanceConfig( google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& request) { @@ -142,6 +192,31 @@ InstanceAdminTracingConnection::CreateInstance( return internal::EndSpan(std::move(span), child_->CreateInstance(request)); } +StatusOr +InstanceAdminTracingConnection::CreateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::CreateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> InstanceAdminTracingConnection::UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& @@ -152,6 +227,31 @@ InstanceAdminTracingConnection::UpdateInstance( return internal::EndSpan(std::move(span), child_->UpdateInstance(request)); } +StatusOr +InstanceAdminTracingConnection::UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::UpdateInstance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + Status InstanceAdminTracingConnection::DeleteInstance( google::spanner::admin::instance::v1::DeleteInstanceRequest const& request) { @@ -207,6 +307,31 @@ InstanceAdminTracingConnection::CreateInstancePartition( child_->CreateInstancePartition(request)); } +StatusOr +InstanceAdminTracingConnection::CreateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::CreateInstancePartition( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + Status InstanceAdminTracingConnection::DeleteInstancePartition( google::spanner::admin::instance::v1::DeleteInstancePartitionRequest const& request) { @@ -227,6 +352,31 @@ InstanceAdminTracingConnection::UpdateInstancePartition( child_->UpdateInstancePartition(request)); } +StatusOr +InstanceAdminTracingConnection::UpdateInstancePartition( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +InstanceAdminTracingConnection::UpdateInstancePartition( + google::cloud::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( + google::cloud::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..ab1355905cdce 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request) override; + + future> + CreateInstanceConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstanceConfig( google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& request) override; + StatusOr UpdateInstanceConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request) override; + + future> + UpdateInstanceConfig( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request) override; + + future> + CreateInstance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInstance( google::spanner::admin::instance::v1::UpdateInstanceRequest const& request) override; + StatusOr UpdateInstance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request) override; + + future> + UpdateInstance(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request) override; + + future> + CreateInstancePartition( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request) override; + + future> + UpdateInstancePartition( + google::cloud::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..8024d3134454d 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateDatabaseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateDatabase, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDatabase, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -80,6 +106,21 @@ class MockDatabaseAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateDatabaseDdl, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::UpdateDatabaseDdlRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateDatabaseDdl, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, DropDatabase, (google::spanner::admin::database::v1::DropDatabaseRequest const& request), @@ -111,12 +152,36 @@ class MockDatabaseAdminConnection request), (override)); + MOCK_METHOD(StatusOr, CreateBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CreateBackupRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CopyBackup, (google::spanner::admin::database::v1::CopyBackupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CopyBackup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::CopyBackupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CopyBackup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetBackup, (google::spanner::admin::database::v1::GetBackupRequest const& request), @@ -145,6 +210,19 @@ class MockDatabaseAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, RestoreDatabase, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::database::v1::RestoreDatabaseRequest const& + request), + (override)); + + MOCK_METHOD(future>, + RestoreDatabase, + (google::cloud::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..33f60d87ffdd2 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,20 @@ class MockInstanceAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateInstanceConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateInstanceConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstanceConfig, @@ -75,6 +89,20 @@ class MockInstanceAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstanceConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateInstanceConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteInstanceConfig, (google::spanner::admin::instance::v1::DeleteInstanceConfigRequest const& @@ -113,6 +141,19 @@ class MockInstanceAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::CreateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInstance, @@ -120,6 +161,19 @@ class MockInstanceAdminConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateInstance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1::UpdateInstanceRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateInstance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( Status, DeleteInstance, (google::spanner::admin::instance::v1::DeleteInstanceRequest const& @@ -153,6 +207,19 @@ class MockInstanceAdminConnection CreateInstancePartitionRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateInstancePartition, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1:: + CreateInstancePartitionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CreateInstancePartition, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, DeleteInstancePartition, (google::spanner::admin::instance::v1:: DeleteInstancePartitionRequest const& request), @@ -165,6 +232,19 @@ class MockInstanceAdminConnection UpdateInstancePartitionRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateInstancePartition, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::spanner::admin::instance::v1:: + UpdateInstancePartitionRequest const& request), + (override)); + + MOCK_METHOD( + future>, + UpdateInstancePartition, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListInstancePartitionOperations, (google::spanner::admin::instance::v1:: diff --git a/google/cloud/speech/README.md b/google/cloud/speech/README.md index 66fcd15d772e7..7cfdac4e0f887 100644 --- a/google/cloud/speech/README.md +++ b/google/cloud/speech/README.md @@ -48,23 +48,58 @@ int main(int argc, char* argv[]) try { auto const uri = std::string{argc == 4 ? argv[3] : kDefaultUri}; namespace speech = ::google::cloud::speech_v2; - std::shared_ptr connection; - google::cloud::speech::v2::RecognizeRequest request; - ConfigureRecognizer(request); - request.set_uri(uri); - request.set_recognizer("projects/" + project + "/locations/" + location + - "/recognizers/_"); - + // std::shared_ptr connection; + // google::cloud::speech::v2::RecognizeRequest request; + // ConfigureRecognizer(request); + // request.set_uri(uri); + // request.set_recognizer("projects/" + project + "/locations/" + location + + // "/recognizers/_"); + // if (location == "global") { // An empty location string indicates that the global endpoint of the // service should be used. - location = ""; + location = "global"; } + // + // auto client = + // speech::SpeechClient(speech::MakeSpeechConnection(location)); auto + // response = client.Recognize(request); if (!response) throw + // std::move(response).status(); std::cout << response->DebugString() << + // "\n"; + + auto client = speech::SpeechClient(speech::MakeSpeechConnection(location)); + google::cloud::speech::v2::BatchRecognizeRequest request; + request.set_recognizer("projects/" + project + "/locations/" + location + + "/recognizers/_"); + google::cloud::speech::v2::BatchRecognizeFileMetadata file_metadata; + file_metadata.set_uri(uri); + *request.add_files() = file_metadata; + + google::cloud::speech::v2::RecognitionOutputConfig output_config; + google::cloud::speech::v2::InlineOutputConfig inline_response_config; + *output_config.mutable_inline_response_config() = inline_response_config; + *request.mutable_recognition_output_config() = output_config; + + auto response = client.BatchRecognize(request).get(); + if (!response) throw std::move(response).status(); + std::cout << response->DebugString() << "\n"; +#if 0 + // Create Recognizer is unimplemented auto client = speech::SpeechClient(speech::MakeSpeechConnection(location)); - auto response = client.Recognize(request); + google::cloud::speech::v2::Recognizer recognizer; + *recognizer.mutable_default_recognition_config()->add_language_codes() = "en-US"; + recognizer.mutable_default_recognition_config()->set_model("short"); + *recognizer.mutable_default_recognition_config()->mutable_auto_decoding_config() = {}; + google::cloud::speech::v2::CreateRecognizerRequest request; + *request.mutable_recognizer() = recognizer; + request.set_validate_only(true); + request.set_recognizer_id("test-recognizer"); + request.set_parent("projects/" + project + "/locations/" + location); + auto response = client.CreateRecognizer(request).get(); if (!response) throw std::move(response).status(); std::cout << response->DebugString() << "\n"; +#endif return 0; } catch (google::cloud::Status const& status) { diff --git a/google/cloud/speech/quickstart/quickstart.cc b/google/cloud/speech/quickstart/quickstart.cc index 07c20f9d8dabf..19a69e594f94e 100644 --- a/google/cloud/speech/quickstart/quickstart.cc +++ b/google/cloud/speech/quickstart/quickstart.cc @@ -38,23 +38,58 @@ int main(int argc, char* argv[]) try { auto const uri = std::string{argc == 4 ? argv[3] : kDefaultUri}; namespace speech = ::google::cloud::speech_v2; - std::shared_ptr connection; - google::cloud::speech::v2::RecognizeRequest request; - ConfigureRecognizer(request); - request.set_uri(uri); - request.set_recognizer("projects/" + project + "/locations/" + location + - "/recognizers/_"); - + // std::shared_ptr connection; + // google::cloud::speech::v2::RecognizeRequest request; + // ConfigureRecognizer(request); + // request.set_uri(uri); + // request.set_recognizer("projects/" + project + "/locations/" + location + + // "/recognizers/_"); + // if (location == "global") { // An empty location string indicates that the global endpoint of the // service should be used. - location = ""; + location = "global"; } + // + // auto client = + // speech::SpeechClient(speech::MakeSpeechConnection(location)); auto + // response = client.Recognize(request); if (!response) throw + // std::move(response).status(); std::cout << response->DebugString() << + // "\n"; + + auto client = speech::SpeechClient(speech::MakeSpeechConnection(location)); + google::cloud::speech::v2::BatchRecognizeRequest request; + request.set_recognizer("projects/" + project + "/locations/" + location + + "/recognizers/_"); + google::cloud::speech::v2::BatchRecognizeFileMetadata file_metadata; + file_metadata.set_uri(uri); + *request.add_files() = file_metadata; + + google::cloud::speech::v2::RecognitionOutputConfig output_config; + google::cloud::speech::v2::InlineOutputConfig inline_response_config; + *output_config.mutable_inline_response_config() = inline_response_config; + *request.mutable_recognition_output_config() = output_config; + + auto response = client.BatchRecognize(request).get(); + if (!response) throw std::move(response).status(); + std::cout << response->DebugString() << "\n"; +#if 0 + // Create Recognizer is unimplemented auto client = speech::SpeechClient(speech::MakeSpeechConnection(location)); - auto response = client.Recognize(request); + google::cloud::speech::v2::Recognizer recognizer; + *recognizer.mutable_default_recognition_config()->add_language_codes() = "en-US"; + recognizer.mutable_default_recognition_config()->set_model("short"); + *recognizer.mutable_default_recognition_config()->mutable_auto_decoding_config() = {}; + google::cloud::speech::v2::CreateRecognizerRequest request; + *request.mutable_recognizer() = recognizer; + request.set_validate_only(true); + request.set_recognizer_id("test-recognizer"); + request.set_parent("projects/" + project + "/locations/" + location); + auto response = client.CreateRecognizer(request).get(); if (!response) throw std::move(response).status(); std::cout << response->DebugString() << "\n"; +#endif return 0; } catch (google::cloud::Status const& status) { diff --git a/google/cloud/speech/v1/adaptation_client.h b/google/cloud/speech/v1/adaptation_client.h index d426f6604360c..c8ada1cc8d2fb 100644 --- a/google/cloud/speech/v1/adaptation_client.h +++ b/google/cloud/speech/v1/adaptation_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SPEECH_V1_ADAPTATION_CLIENT_H #include "google/cloud/speech/v1/adaptation_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..c503490a32490 100644 --- a/google/cloud/speech/v1/internal/speech_connection_impl.cc +++ b/google/cloud/speech/v1/internal/speech_connection_impl.cc @@ -115,6 +115,61 @@ SpeechConnectionImpl::LongRunningRecognize( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::LongRunningRecognize( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..3b2badadd9696 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request) + override; + + future> + LongRunningRecognize( + google::cloud::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..afa2328eb0e48 100644 --- a/google/cloud/speech/v1/internal/speech_tracing_connection.cc +++ b/google/cloud/speech/v1/internal/speech_tracing_connection.cc @@ -50,6 +50,30 @@ SpeechTracingConnection::LongRunningRecognize( child_->LongRunningRecognize(request)); } +StatusOr +SpeechTracingConnection::LongRunningRecognize( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::LongRunningRecognize( + google::cloud::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( + google::cloud::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..c6fa37c81d993 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request) + override; + + future> + LongRunningRecognize( + google::cloud::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..b14c5ce7f6e0b 100644 --- a/google/cloud/speech/v1/mocks/mock_speech_connection.h +++ b/google/cloud/speech/v1/mocks/mock_speech_connection.h @@ -56,6 +56,19 @@ class MockSpeechConnection : public speech_v1::SpeechConnection { (google::cloud::speech::v1::LongRunningRecognizeRequest const& request), (override)); + MOCK_METHOD( + StatusOr, LongRunningRecognize, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request), + (override)); + + MOCK_METHOD( + future>, + LongRunningRecognize, + (google::cloud::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_client.cc b/google/cloud/speech/v1/speech_client.cc index dc913bee836a3..188c45080f332 100644 --- a/google/cloud/speech/v1/speech_client.cc +++ b/google/cloud/speech/v1/speech_client.cc @@ -59,6 +59,18 @@ SpeechClient::LongRunningRecognize( return connection_->LongRunningRecognize(request); } +StatusOr SpeechClient::LongRunningRecognize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v1::RecognitionConfig const& config, + google::cloud::speech::v1::RecognitionAudio const& audio, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v1::LongRunningRecognizeRequest request; + *request.mutable_config() = config; + *request.mutable_audio() = audio; + return connection_->LongRunningRecognize( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::LongRunningRecognize( google::cloud::speech::v1::LongRunningRecognizeRequest const& request, @@ -67,6 +79,24 @@ SpeechClient::LongRunningRecognize( return connection_->LongRunningRecognize(request); } +StatusOr SpeechClient::LongRunningRecognize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LongRunningRecognize( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::LongRunningRecognize( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->LongRunningRecognize(google::cloud::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/speech_client.h b/google/cloud/speech/v1/speech_client.h index cdc5e1b91dcf4..a16b32bfb3b9c 100644 --- a/google/cloud/speech/v1/speech_client.h +++ b/google/cloud/speech/v1/speech_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SPEECH_V1_SPEECH_CLIENT_H #include "google/cloud/speech/v1/speech_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,12 @@ class SpeechClient { google::cloud::speech::v1::RecognitionAudio const& audio, Options opts = {}); + StatusOr LongRunningRecognize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v1::RecognitionConfig const& config, + google::cloud::speech::v1::RecognitionAudio const& audio, + Options opts = {}); + // clang-format off /// /// Performs asynchronous speech recognition: receive results via the @@ -232,6 +240,16 @@ class SpeechClient { google::cloud::speech::v1::LongRunningRecognizeRequest const& request, Options opts = {}); + StatusOr LongRunningRecognize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v1::LongRunningRecognizeRequest const& request, + Options opts = {}); + + future> + LongRunningRecognize(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Performs bidirectional streaming speech recognition: receive results while 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..d49f9c5519eb9 100644 --- a/google/cloud/speech/v2/internal/speech_connection_impl.cc +++ b/google/cloud/speech/v2/internal/speech_connection_impl.cc @@ -101,6 +101,58 @@ SpeechConnectionImpl::CreateRecognizer( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::CreateRecognizer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +240,58 @@ SpeechConnectionImpl::UpdateRecognizer( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::UpdateRecognizer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +331,58 @@ SpeechConnectionImpl::DeleteRecognizer( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::DeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +422,59 @@ SpeechConnectionImpl::UndeleteRecognizer( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::UndeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +537,58 @@ SpeechConnectionImpl::BatchRecognize( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::BatchRecognize( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +654,59 @@ SpeechConnectionImpl::CreateCustomClass( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::CreateCustomClass( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +794,59 @@ SpeechConnectionImpl::UpdateCustomClass( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::UpdateCustomClass( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +886,59 @@ SpeechConnectionImpl::DeleteCustomClass( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::DeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +979,59 @@ SpeechConnectionImpl::UndeleteCustomClass( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::UndeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1071,57 @@ SpeechConnectionImpl::CreatePhraseSet( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::CreatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1209,57 @@ SpeechConnectionImpl::UpdatePhraseSet( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::UpdatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1299,57 @@ SpeechConnectionImpl::DeletePhraseSet( polling_policy(*current), __func__); } +StatusOr SpeechConnectionImpl::DeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1389,59 @@ SpeechConnectionImpl::UndeletePhraseSet( polling_policy(*current), __func__); } +StatusOr +SpeechConnectionImpl::UndeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..afc1e82525472 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request) + override; + + future> CreateRecognizer( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request) + override; + + future> UpdateRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request) override; + StatusOr DeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request) + override; + + future> DeleteRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request) override; + StatusOr UndeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request) + override; + + future> UndeleteRecognizer( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request) override; + + future> + BatchRecognize(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request) + override; + + future> CreateCustomClass( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request) + override; + + future> UpdateCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request) override; + StatusOr DeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request) + override; + + future> DeleteCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request) override; + StatusOr UndeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request) + override; + + future> UndeleteCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request) override; + StatusOr CreatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request) + override; + + future> CreatePhraseSet( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request) + override; + + future> UpdatePhraseSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request) override; + StatusOr DeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request) + override; + + future> DeletePhraseSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request) override; + StatusOr UndeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request) + override; + + future> UndeletePhraseSet( + google::cloud::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..64e9ea3b191b7 100644 --- a/google/cloud/speech/v2/internal/speech_tracing_connection.cc +++ b/google/cloud/speech/v2/internal/speech_tracing_connection.cc @@ -42,6 +42,30 @@ SpeechTracingConnection::CreateRecognizer( return internal::EndSpan(std::move(span), child_->CreateRecognizer(request)); } +StatusOr +SpeechTracingConnection::CreateRecognizer( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::CreateRecognizer( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SpeechTracingConnection::ListRecognizers( google::cloud::speech::v2::ListRecognizersRequest request) { @@ -70,6 +94,30 @@ SpeechTracingConnection::UpdateRecognizer( return internal::EndSpan(std::move(span), child_->UpdateRecognizer(request)); } +StatusOr +SpeechTracingConnection::UpdateRecognizer( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UpdateRecognizer( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request) { @@ -79,6 +127,30 @@ SpeechTracingConnection::DeleteRecognizer( return internal::EndSpan(std::move(span), child_->DeleteRecognizer(request)); } +StatusOr +SpeechTracingConnection::DeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::DeleteRecognizer( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request) { @@ -89,6 +161,30 @@ SpeechTracingConnection::UndeleteRecognizer( child_->UndeleteRecognizer(request)); } +StatusOr +SpeechTracingConnection::UndeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UndeleteRecognizer( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SpeechTracingConnection::Recognize( google::cloud::speech::v2::RecognizeRequest const& request) { @@ -112,6 +208,28 @@ SpeechTracingConnection::BatchRecognize( return internal::EndSpan(std::move(span), child_->BatchRecognize(request)); } +StatusOr +SpeechTracingConnection::BatchRecognize( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::BatchRecognize( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr SpeechTracingConnection::GetConfig( google::cloud::speech::v2::GetConfigRequest const& request) { auto span = internal::MakeSpan("speech_v2::SpeechConnection::GetConfig"); @@ -136,6 +254,30 @@ SpeechTracingConnection::CreateCustomClass( return internal::EndSpan(std::move(span), child_->CreateCustomClass(request)); } +StatusOr +SpeechTracingConnection::CreateCustomClass( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::CreateCustomClass( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SpeechTracingConnection::ListCustomClasses( google::cloud::speech::v2::ListCustomClassesRequest request) { @@ -164,6 +306,30 @@ SpeechTracingConnection::UpdateCustomClass( return internal::EndSpan(std::move(span), child_->UpdateCustomClass(request)); } +StatusOr +SpeechTracingConnection::UpdateCustomClass( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UpdateCustomClass( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request) { @@ -173,6 +339,30 @@ SpeechTracingConnection::DeleteCustomClass( return internal::EndSpan(std::move(span), child_->DeleteCustomClass(request)); } +StatusOr +SpeechTracingConnection::DeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::DeleteCustomClass( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request) { @@ -183,6 +373,30 @@ SpeechTracingConnection::UndeleteCustomClass( child_->UndeleteCustomClass(request)); } +StatusOr +SpeechTracingConnection::UndeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UndeleteCustomClass( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request) { @@ -192,6 +406,30 @@ SpeechTracingConnection::CreatePhraseSet( return internal::EndSpan(std::move(span), child_->CreatePhraseSet(request)); } +StatusOr +SpeechTracingConnection::CreatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::CreatePhraseSet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange SpeechTracingConnection::ListPhraseSets( google::cloud::speech::v2::ListPhraseSetsRequest request) { @@ -219,6 +457,30 @@ SpeechTracingConnection::UpdatePhraseSet( return internal::EndSpan(std::move(span), child_->UpdatePhraseSet(request)); } +StatusOr +SpeechTracingConnection::UpdatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UpdatePhraseSet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request) { @@ -228,6 +490,30 @@ SpeechTracingConnection::DeletePhraseSet( return internal::EndSpan(std::move(span), child_->DeletePhraseSet(request)); } +StatusOr +SpeechTracingConnection::DeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::DeletePhraseSet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> SpeechTracingConnection::UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request) { @@ -237,6 +523,30 @@ SpeechTracingConnection::UndeletePhraseSet( return internal::EndSpan(std::move(span), child_->UndeletePhraseSet(request)); } +StatusOr +SpeechTracingConnection::UndeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +SpeechTracingConnection::UndeletePhraseSet( + google::cloud::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(google::cloud::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..8cf6f41e6db34 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request) + override; + + future> CreateRecognizer( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request) + override; + + future> UpdateRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request) override; + StatusOr DeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request) + override; + + future> DeleteRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request) override; + StatusOr UndeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request) + override; + + future> UndeleteRecognizer( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request) override; + + future> + BatchRecognize(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request) + override; + + future> CreateCustomClass( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request) + override; + + future> UpdateCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request) override; + StatusOr DeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request) + override; + + future> DeleteCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request) override; + StatusOr UndeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request) + override; + + future> UndeleteCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request) override; + StatusOr CreatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request) + override; + + future> CreatePhraseSet( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request) + override; + + future> UpdatePhraseSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request) override; + StatusOr DeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request) + override; + + future> DeletePhraseSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request) override; + StatusOr UndeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request) + override; + + future> UndeletePhraseSet( + google::cloud::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..bfec7aa255d32 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateRecognizer, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateRecognizer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteRecognizer, (google::cloud::speech::v2::DeleteRecognizerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteRecognizer, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteRecognizer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeleteRecognizer, (google::cloud::speech::v2::UndeleteRecognizerRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeleteRecognizer, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeleteRecognizer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, Recognize, (google::cloud::speech::v2::RecognizeRequest const& request), (override)); @@ -91,6 +139,18 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::BatchRecognizeRequest const& request), (override)); + MOCK_METHOD(StatusOr, BatchRecognize, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchRecognize, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetConfig, (google::cloud::speech::v2::GetConfigRequest const& request), (override)); @@ -105,6 +165,18 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::CreateCustomClassRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCustomClass, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCustomClass, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCustomClasses, (google::cloud::speech::v2::ListCustomClassesRequest request), @@ -120,23 +192,71 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::UpdateCustomClassRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCustomClass, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCustomClass, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCustomClass, (google::cloud::speech::v2::DeleteCustomClassRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCustomClass, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteCustomClass, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeleteCustomClass, (google::cloud::speech::v2::UndeleteCustomClassRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UndeleteCustomClass, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeleteCustomClass, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreatePhraseSet, (google::cloud::speech::v2::CreatePhraseSetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreatePhraseSet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreatePhraseSet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListPhraseSets, (google::cloud::speech::v2::ListPhraseSetsRequest request), @@ -151,15 +271,51 @@ class MockSpeechConnection : public speech_v2::SpeechConnection { (google::cloud::speech::v2::UpdatePhraseSetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdatePhraseSet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdatePhraseSet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeletePhraseSet, (google::cloud::speech::v2::DeletePhraseSetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeletePhraseSet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeletePhraseSet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeletePhraseSet, (google::cloud::speech::v2::UndeletePhraseSetRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UndeletePhraseSet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request), + (override)); + + MOCK_METHOD(future>, + UndeletePhraseSet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/speech/v2/speech_client.cc b/google/cloud/speech/v2/speech_client.cc index b891295977dfb..c15eed39408ed 100644 --- a/google/cloud/speech/v2/speech_client.cc +++ b/google/cloud/speech/v2/speech_client.cc @@ -45,6 +45,20 @@ SpeechClient::CreateRecognizer( return connection_->CreateRecognizer(request); } +StatusOr SpeechClient::CreateRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::speech::v2::Recognizer const& recognizer, + std::string const& recognizer_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::CreateRecognizerRequest request; + request.set_parent(parent); + *request.mutable_recognizer() = recognizer; + request.set_recognizer_id(recognizer_id); + return connection_->CreateRecognizer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::CreateRecognizer( google::cloud::speech::v2::CreateRecognizerRequest const& request, @@ -53,6 +67,24 @@ SpeechClient::CreateRecognizer( return connection_->CreateRecognizer(request); } +StatusOr SpeechClient::CreateRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRecognizer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::CreateRecognizer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateRecognizer(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SpeechClient::ListRecognizers(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -94,6 +126,18 @@ SpeechClient::UpdateRecognizer( return connection_->UpdateRecognizer(request); } +StatusOr SpeechClient::UpdateRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::Recognizer const& recognizer, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::UpdateRecognizerRequest request; + *request.mutable_recognizer() = recognizer; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateRecognizer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::UpdateRecognizer( google::cloud::speech::v2::UpdateRecognizerRequest const& request, @@ -102,6 +146,24 @@ SpeechClient::UpdateRecognizer( return connection_->UpdateRecognizer(request); } +StatusOr SpeechClient::UpdateRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRecognizer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::UpdateRecognizer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateRecognizer(google::cloud::ExperimentalTag{}, + operation); +} + future> SpeechClient::DeleteRecognizer(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -110,6 +172,16 @@ SpeechClient::DeleteRecognizer(std::string const& name, Options opts) { return connection_->DeleteRecognizer(request); } +StatusOr SpeechClient::DeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::DeleteRecognizerRequest request; + request.set_name(name); + return connection_->DeleteRecognizer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::DeleteRecognizer( google::cloud::speech::v2::DeleteRecognizerRequest const& request, @@ -118,6 +190,24 @@ SpeechClient::DeleteRecognizer( return connection_->DeleteRecognizer(request); } +StatusOr SpeechClient::DeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRecognizer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::DeleteRecognizer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteRecognizer(google::cloud::ExperimentalTag{}, + operation); +} + future> SpeechClient::UndeleteRecognizer(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -126,6 +216,16 @@ SpeechClient::UndeleteRecognizer(std::string const& name, Options opts) { return connection_->UndeleteRecognizer(request); } +StatusOr SpeechClient::UndeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::UndeleteRecognizerRequest request; + request.set_name(name); + return connection_->UndeleteRecognizer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::UndeleteRecognizer( google::cloud::speech::v2::UndeleteRecognizerRequest const& request, @@ -134,6 +234,24 @@ SpeechClient::UndeleteRecognizer( return connection_->UndeleteRecognizer(request); } +StatusOr SpeechClient::UndeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteRecognizer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::UndeleteRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteRecognizer(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SpeechClient::Recognize( std::string const& recognizer, google::cloud::speech::v2::RecognitionConfig const& config, @@ -179,6 +297,24 @@ SpeechClient::BatchRecognize( return connection_->BatchRecognize(request); } +StatusOr SpeechClient::BatchRecognize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& recognizer, + google::cloud::speech::v2::RecognitionConfig const& config, + google::protobuf::FieldMask const& config_mask, + std::vector const& + files, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::BatchRecognizeRequest request; + request.set_recognizer(recognizer); + *request.mutable_config() = config; + *request.mutable_config_mask() = config_mask; + *request.mutable_files() = {files.begin(), files.end()}; + return connection_->BatchRecognize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::BatchRecognize( google::cloud::speech::v2::BatchRecognizeRequest const& request, @@ -187,6 +323,24 @@ SpeechClient::BatchRecognize( return connection_->BatchRecognize(request); } +StatusOr SpeechClient::BatchRecognize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchRecognize(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::BatchRecognize(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchRecognize(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr SpeechClient::GetConfig( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -231,6 +385,20 @@ SpeechClient::CreateCustomClass( return connection_->CreateCustomClass(request); } +StatusOr SpeechClient::CreateCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::speech::v2::CustomClass const& custom_class, + std::string const& custom_class_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::CreateCustomClassRequest request; + request.set_parent(parent); + *request.mutable_custom_class() = custom_class; + request.set_custom_class_id(custom_class_id); + return connection_->CreateCustomClass(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::CreateCustomClass( google::cloud::speech::v2::CreateCustomClassRequest const& request, @@ -239,6 +407,24 @@ SpeechClient::CreateCustomClass( return connection_->CreateCustomClass(request); } +StatusOr SpeechClient::CreateCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCustomClass(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::CreateCustomClass(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCustomClass(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SpeechClient::ListCustomClasses(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -280,6 +466,18 @@ SpeechClient::UpdateCustomClass( return connection_->UpdateCustomClass(request); } +StatusOr SpeechClient::UpdateCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CustomClass const& custom_class, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::UpdateCustomClassRequest request; + *request.mutable_custom_class() = custom_class; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCustomClass(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::UpdateCustomClass( google::cloud::speech::v2::UpdateCustomClassRequest const& request, @@ -288,6 +486,24 @@ SpeechClient::UpdateCustomClass( return connection_->UpdateCustomClass(request); } +StatusOr SpeechClient::UpdateCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCustomClass(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::UpdateCustomClass(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCustomClass(google::cloud::ExperimentalTag{}, + operation); +} + future> SpeechClient::DeleteCustomClass(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -296,6 +512,16 @@ SpeechClient::DeleteCustomClass(std::string const& name, Options opts) { return connection_->DeleteCustomClass(request); } +StatusOr SpeechClient::DeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::DeleteCustomClassRequest request; + request.set_name(name); + return connection_->DeleteCustomClass(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::DeleteCustomClass( google::cloud::speech::v2::DeleteCustomClassRequest const& request, @@ -304,6 +530,24 @@ SpeechClient::DeleteCustomClass( return connection_->DeleteCustomClass(request); } +StatusOr SpeechClient::DeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCustomClass(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::DeleteCustomClass(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCustomClass(google::cloud::ExperimentalTag{}, + operation); +} + future> SpeechClient::UndeleteCustomClass(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -312,6 +556,16 @@ SpeechClient::UndeleteCustomClass(std::string const& name, Options opts) { return connection_->UndeleteCustomClass(request); } +StatusOr SpeechClient::UndeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::UndeleteCustomClassRequest request; + request.set_name(name); + return connection_->UndeleteCustomClass(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::UndeleteCustomClass( google::cloud::speech::v2::UndeleteCustomClassRequest const& request, @@ -320,6 +574,24 @@ SpeechClient::UndeleteCustomClass( return connection_->UndeleteCustomClass(request); } +StatusOr SpeechClient::UndeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteCustomClass(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::UndeleteCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeleteCustomClass(google::cloud::ExperimentalTag{}, + operation); +} + future> SpeechClient::CreatePhraseSet( std::string const& parent, @@ -333,6 +605,20 @@ SpeechClient::CreatePhraseSet( return connection_->CreatePhraseSet(request); } +StatusOr SpeechClient::CreatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::speech::v2::PhraseSet const& phrase_set, + std::string const& phrase_set_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::CreatePhraseSetRequest request; + request.set_parent(parent); + *request.mutable_phrase_set() = phrase_set; + request.set_phrase_set_id(phrase_set_id); + return connection_->CreatePhraseSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::CreatePhraseSet( google::cloud::speech::v2::CreatePhraseSetRequest const& request, @@ -341,6 +627,24 @@ SpeechClient::CreatePhraseSet( return connection_->CreatePhraseSet(request); } +StatusOr SpeechClient::CreatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePhraseSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::CreatePhraseSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePhraseSet(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange SpeechClient::ListPhraseSets( std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -381,6 +685,18 @@ SpeechClient::UpdatePhraseSet( return connection_->UpdatePhraseSet(request); } +StatusOr SpeechClient::UpdatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::PhraseSet const& phrase_set, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::UpdatePhraseSetRequest request; + *request.mutable_phrase_set() = phrase_set; + *request.mutable_update_mask() = update_mask; + return connection_->UpdatePhraseSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::UpdatePhraseSet( google::cloud::speech::v2::UpdatePhraseSetRequest const& request, @@ -389,6 +705,24 @@ SpeechClient::UpdatePhraseSet( return connection_->UpdatePhraseSet(request); } +StatusOr SpeechClient::UpdatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePhraseSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::UpdatePhraseSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePhraseSet(google::cloud::ExperimentalTag{}, + operation); +} + future> SpeechClient::DeletePhraseSet(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -397,6 +731,16 @@ SpeechClient::DeletePhraseSet(std::string const& name, Options opts) { return connection_->DeletePhraseSet(request); } +StatusOr SpeechClient::DeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::DeletePhraseSetRequest request; + request.set_name(name); + return connection_->DeletePhraseSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::DeletePhraseSet( google::cloud::speech::v2::DeletePhraseSetRequest const& request, @@ -405,6 +749,24 @@ SpeechClient::DeletePhraseSet( return connection_->DeletePhraseSet(request); } +StatusOr SpeechClient::DeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePhraseSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::DeletePhraseSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePhraseSet(google::cloud::ExperimentalTag{}, + operation); +} + future> SpeechClient::UndeletePhraseSet(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -413,6 +775,16 @@ SpeechClient::UndeletePhraseSet(std::string const& name, Options opts) { return connection_->UndeletePhraseSet(request); } +StatusOr SpeechClient::UndeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::speech::v2::UndeletePhraseSetRequest request; + request.set_name(name); + return connection_->UndeletePhraseSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> SpeechClient::UndeletePhraseSet( google::cloud::speech::v2::UndeletePhraseSetRequest const& request, @@ -421,6 +793,24 @@ SpeechClient::UndeletePhraseSet( return connection_->UndeletePhraseSet(request); } +StatusOr SpeechClient::UndeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeletePhraseSet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +SpeechClient::UndeletePhraseSet(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeletePhraseSet(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace speech_v2 } // namespace cloud diff --git a/google/cloud/speech/v2/speech_client.h b/google/cloud/speech/v2/speech_client.h index adee7f22e1ba6..990feaf94a87c 100644 --- a/google/cloud/speech/v2/speech_client.h +++ b/google/cloud/speech/v2/speech_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SPEECH_V2_SPEECH_CLIENT_H #include "google/cloud/speech/v2/speech_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,12 @@ class SpeechClient { google::cloud::speech::v2::Recognizer const& recognizer, std::string const& recognizer_id, Options opts = {}); + StatusOr CreateRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::speech::v2::Recognizer const& recognizer, + std::string const& recognizer_id, Options opts = {}); + // clang-format off /// /// Creates a [Recognizer][google.cloud.speech.v2.Recognizer]. @@ -164,6 +172,15 @@ class SpeechClient { google::cloud::speech::v2::CreateRecognizerRequest const& request, Options opts = {}); + StatusOr CreateRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateRecognizerRequest const& request, + Options opts = {}); + + future> CreateRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists Recognizers. @@ -340,6 +357,11 @@ class SpeechClient { google::cloud::speech::v2::Recognizer const& recognizer, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::Recognizer const& recognizer, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the [Recognizer][google.cloud.speech.v2.Recognizer]. @@ -378,6 +400,15 @@ class SpeechClient { google::cloud::speech::v2::UpdateRecognizerRequest const& request, Options opts = {}); + StatusOr UpdateRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateRecognizerRequest const& request, + Options opts = {}); + + future> UpdateRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes the [Recognizer][google.cloud.speech.v2.Recognizer]. @@ -411,6 +442,10 @@ class SpeechClient { future> DeleteRecognizer( std::string const& name, Options opts = {}); + StatusOr DeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the [Recognizer][google.cloud.speech.v2.Recognizer]. @@ -449,6 +484,15 @@ class SpeechClient { google::cloud::speech::v2::DeleteRecognizerRequest const& request, Options opts = {}); + StatusOr DeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteRecognizerRequest const& request, + Options opts = {}); + + future> DeleteRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Undeletes the [Recognizer][google.cloud.speech.v2.Recognizer]. @@ -482,6 +526,10 @@ class SpeechClient { future> UndeleteRecognizer( std::string const& name, Options opts = {}); + StatusOr UndeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Undeletes the [Recognizer][google.cloud.speech.v2.Recognizer]. @@ -520,6 +568,15 @@ class SpeechClient { google::cloud::speech::v2::UndeleteRecognizerRequest const& request, Options opts = {}); + StatusOr UndeleteRecognizer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteRecognizerRequest const& request, + Options opts = {}); + + future> UndeleteRecognizer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Performs synchronous Speech recognition: receive results after all audio @@ -709,6 +766,15 @@ class SpeechClient { files, Options opts = {}); + StatusOr BatchRecognize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& recognizer, + google::cloud::speech::v2::RecognitionConfig const& config, + google::protobuf::FieldMask const& config_mask, + std::vector const& + files, + Options opts = {}); + // clang-format off /// /// Performs batch asynchronous speech recognition: send a request with N @@ -750,6 +816,16 @@ class SpeechClient { google::cloud::speech::v2::BatchRecognizeRequest const& request, Options opts = {}); + StatusOr BatchRecognize( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::BatchRecognizeRequest const& request, + Options opts = {}); + + future> + BatchRecognize(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the requested [Config][google.cloud.speech.v2.Config]. @@ -910,6 +986,12 @@ class SpeechClient { google::cloud::speech::v2::CustomClass const& custom_class, std::string const& custom_class_id, Options opts = {}); + StatusOr CreateCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::speech::v2::CustomClass const& custom_class, + std::string const& custom_class_id, Options opts = {}); + // clang-format off /// /// Creates a [CustomClass][google.cloud.speech.v2.CustomClass]. @@ -948,6 +1030,15 @@ class SpeechClient { google::cloud::speech::v2::CreateCustomClassRequest const& request, Options opts = {}); + StatusOr CreateCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreateCustomClassRequest const& request, + Options opts = {}); + + future> CreateCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists CustomClasses. @@ -1121,6 +1212,11 @@ class SpeechClient { google::cloud::speech::v2::CustomClass const& custom_class, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CustomClass const& custom_class, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the [CustomClass][google.cloud.speech.v2.CustomClass]. @@ -1159,6 +1255,15 @@ class SpeechClient { google::cloud::speech::v2::UpdateCustomClassRequest const& request, Options opts = {}); + StatusOr UpdateCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdateCustomClassRequest const& request, + Options opts = {}); + + future> UpdateCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes the [CustomClass][google.cloud.speech.v2.CustomClass]. @@ -1193,6 +1298,10 @@ class SpeechClient { future> DeleteCustomClass( std::string const& name, Options opts = {}); + StatusOr DeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the [CustomClass][google.cloud.speech.v2.CustomClass]. @@ -1231,6 +1340,15 @@ class SpeechClient { google::cloud::speech::v2::DeleteCustomClassRequest const& request, Options opts = {}); + StatusOr DeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeleteCustomClassRequest const& request, + Options opts = {}); + + future> DeleteCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Undeletes the [CustomClass][google.cloud.speech.v2.CustomClass]. @@ -1265,6 +1383,10 @@ class SpeechClient { future> UndeleteCustomClass( std::string const& name, Options opts = {}); + StatusOr UndeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Undeletes the [CustomClass][google.cloud.speech.v2.CustomClass]. @@ -1303,6 +1425,15 @@ class SpeechClient { google::cloud::speech::v2::UndeleteCustomClassRequest const& request, Options opts = {}); + StatusOr UndeleteCustomClass( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeleteCustomClassRequest const& request, + Options opts = {}); + + future> UndeleteCustomClass( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a [PhraseSet][google.cloud.speech.v2.PhraseSet]. @@ -1344,6 +1475,12 @@ class SpeechClient { google::cloud::speech::v2::PhraseSet const& phrase_set, std::string const& phrase_set_id, Options opts = {}); + StatusOr CreatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::speech::v2::PhraseSet const& phrase_set, + std::string const& phrase_set_id, Options opts = {}); + // clang-format off /// /// Creates a [PhraseSet][google.cloud.speech.v2.PhraseSet]. @@ -1382,6 +1519,15 @@ class SpeechClient { google::cloud::speech::v2::CreatePhraseSetRequest const& request, Options opts = {}); + StatusOr CreatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::CreatePhraseSetRequest const& request, + Options opts = {}); + + future> CreatePhraseSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists PhraseSets. @@ -1554,6 +1700,11 @@ class SpeechClient { google::cloud::speech::v2::PhraseSet const& phrase_set, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::PhraseSet const& phrase_set, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the [PhraseSet][google.cloud.speech.v2.PhraseSet]. @@ -1592,6 +1743,15 @@ class SpeechClient { google::cloud::speech::v2::UpdatePhraseSetRequest const& request, Options opts = {}); + StatusOr UpdatePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UpdatePhraseSetRequest const& request, + Options opts = {}); + + future> UpdatePhraseSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes the [PhraseSet][google.cloud.speech.v2.PhraseSet]. @@ -1625,6 +1785,10 @@ class SpeechClient { future> DeletePhraseSet( std::string const& name, Options opts = {}); + StatusOr DeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the [PhraseSet][google.cloud.speech.v2.PhraseSet]. @@ -1663,6 +1827,15 @@ class SpeechClient { google::cloud::speech::v2::DeletePhraseSetRequest const& request, Options opts = {}); + StatusOr DeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::DeletePhraseSetRequest const& request, + Options opts = {}); + + future> DeletePhraseSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Undeletes the [PhraseSet][google.cloud.speech.v2.PhraseSet]. @@ -1696,6 +1869,10 @@ class SpeechClient { future> UndeletePhraseSet( std::string const& name, Options opts = {}); + StatusOr UndeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Undeletes the [PhraseSet][google.cloud.speech.v2.PhraseSet]. @@ -1734,6 +1911,15 @@ class SpeechClient { google::cloud::speech::v2::UndeletePhraseSetRequest const& request, Options opts = {}); + StatusOr UndeletePhraseSet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::speech::v2::UndeletePhraseSetRequest const& request, + Options opts = {}); + + future> UndeletePhraseSet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/sql/v1/sql_available_database_versions_client.h index 7b059b488c6b7..300796830bc00 100644 --- a/google/cloud/sql/v1/sql_available_database_versions_client.h +++ b/google/cloud/sql/v1/sql_available_database_versions_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_AVAILABLE_DATABASE_VERSIONS_CLIENT_H #include "google/cloud/sql/v1/sql_available_database_versions_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/sql/v1/sql_backup_runs_client.h index 5f3d93f44f143..75606c9d97b06 100644 --- a/google/cloud/sql/v1/sql_backup_runs_client.h +++ b/google/cloud/sql/v1/sql_backup_runs_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_BACKUP_RUNS_CLIENT_H #include "google/cloud/sql/v1/sql_backup_runs_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_connect_client.h index 16adcee2f1d93..c821b8d2e2b84 100644 --- a/google/cloud/sql/v1/sql_connect_client.h +++ b/google/cloud/sql/v1/sql_connect_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_CONNECT_CLIENT_H #include "google/cloud/sql/v1/sql_connect_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_databases_client.h index 3ed8bca37241d..d81d48773be22 100644 --- a/google/cloud/sql/v1/sql_databases_client.h +++ b/google/cloud/sql/v1/sql_databases_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_DATABASES_CLIENT_H #include "google/cloud/sql/v1/sql_databases_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_events_client.h index d3f0f34d48de7..a15d3a4dacbf2 100644 --- a/google/cloud/sql/v1/sql_events_client.h +++ b/google/cloud/sql/v1/sql_events_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_EVENTS_CLIENT_H #include "google/cloud/sql/v1/sql_events_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_flags_client.h index 2fe6747a95d21..1a877ffd53f1a 100644 --- a/google/cloud/sql/v1/sql_flags_client.h +++ b/google/cloud/sql/v1/sql_flags_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_FLAGS_CLIENT_H #include "google/cloud/sql/v1/sql_flags_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_iam_policies_client.h index fec6567765916..c7aa1dc84438d 100644 --- a/google/cloud/sql/v1/sql_iam_policies_client.h +++ b/google/cloud/sql/v1/sql_iam_policies_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_IAM_POLICIES_CLIENT_H #include "google/cloud/sql/v1/sql_iam_policies_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_instance_names_client.h index c991d8013a15c..99ebe7f75022c 100644 --- a/google/cloud/sql/v1/sql_instance_names_client.h +++ b/google/cloud/sql/v1/sql_instance_names_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_INSTANCE_NAMES_CLIENT_H #include "google/cloud/sql/v1/sql_instance_names_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_instances_client.h index b5b901c042126..c37c7dcc698a6 100644 --- a/google/cloud/sql/v1/sql_instances_client.h +++ b/google/cloud/sql/v1/sql_instances_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_INSTANCES_CLIENT_H #include "google/cloud/sql/v1/sql_instances_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_operations_client.h index ee5598a9a9d37..f35bc040ca522 100644 --- a/google/cloud/sql/v1/sql_operations_client.h +++ b/google/cloud/sql/v1/sql_operations_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_OPERATIONS_CLIENT_H #include "google/cloud/sql/v1/sql_operations_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_regions_client.h index 873131a3cde90..37efd61b2ef13 100644 --- a/google/cloud/sql/v1/sql_regions_client.h +++ b/google/cloud/sql/v1/sql_regions_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_REGIONS_CLIENT_H #include "google/cloud/sql/v1/sql_regions_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_ssl_certs_client.h index 2ac37a958b4b3..2b3df343a1f90 100644 --- a/google/cloud/sql/v1/sql_ssl_certs_client.h +++ b/google/cloud/sql/v1/sql_ssl_certs_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_SSL_CERTS_CLIENT_H #include "google/cloud/sql/v1/sql_ssl_certs_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_tiers_client.h index ccad6cbdf1b71..ef2ac7f457a3f 100644 --- a/google/cloud/sql/v1/sql_tiers_client.h +++ b/google/cloud/sql/v1/sql_tiers_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_TIERS_CLIENT_H #include "google/cloud/sql/v1/sql_tiers_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/sql/v1/sql_users_client.h index 1348809ba038f..9595feabd5e87 100644 --- a/google/cloud/sql/v1/sql_users_client.h +++ b/google/cloud/sql/v1/sql_users_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SQL_V1_SQL_USERS_CLIENT_H #include "google/cloud/sql/v1/sql_users_rest_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..83d68658228db 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,58 @@ StorageControlConnectionImpl::RenameFolder( polling_policy(*current), __func__); } +StatusOr +StorageControlConnectionImpl::RenameFolder( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..61f63ab933d5b 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request) + override; + + future> RenameFolder( + google::cloud::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..0cd00be0a800c 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,30 @@ StorageControlTracingConnection::RenameFolder( return internal::EndSpan(std::move(span), child_->RenameFolder(request)); } +StatusOr +StorageControlTracingConnection::RenameFolder( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +StorageControlTracingConnection::RenameFolder( + google::cloud::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(google::cloud::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..3a5accd7c412c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request) + override; + + future> RenameFolder( + google::cloud::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..505281fbd164d 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request), + (override)); + + MOCK_METHOD(future>, + RenameFolder, + (google::cloud::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_client.cc b/google/cloud/storagecontrol/v2/storage_control_client.cc index 3ab7e48731e7b..4d6f2a11f05ba 100644 --- a/google/cloud/storagecontrol/v2/storage_control_client.cc +++ b/google/cloud/storagecontrol/v2/storage_control_client.cc @@ -109,6 +109,18 @@ StorageControlClient::RenameFolder(std::string const& name, return connection_->RenameFolder(request); } +StatusOr StorageControlClient::RenameFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& destination_folder_id, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::storage::control::v2::RenameFolderRequest request; + request.set_name(name); + request.set_destination_folder_id(destination_folder_id); + return connection_->RenameFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> StorageControlClient::RenameFolder( google::storage::control::v2::RenameFolderRequest const& request, @@ -117,6 +129,23 @@ StorageControlClient::RenameFolder( return connection_->RenameFolder(request); } +StatusOr StorageControlClient::RenameFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RenameFolder(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +StorageControlClient::RenameFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RenameFolder(google::cloud::ExperimentalTag{}, operation); +} + StatusOr StorageControlClient::GetStorageLayout(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/storagecontrol/v2/storage_control_client.h b/google/cloud/storagecontrol/v2/storage_control_client.h index c483fb1076a83..9a2b052be5651 100644 --- a/google/cloud/storagecontrol/v2/storage_control_client.h +++ b/google/cloud/storagecontrol/v2/storage_control_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGECONTROL_V2_STORAGE_CONTROL_CLIENT_H #include "google/cloud/storagecontrol/v2/storage_control_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -391,6 +393,11 @@ class StorageControlClient { std::string const& name, std::string const& destination_folder_id, Options opts = {}); + StatusOr RenameFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, std::string const& destination_folder_id, + Options opts = {}); + // clang-format off /// /// Renames a source folder to a destination folder. This operation is only @@ -433,6 +440,15 @@ class StorageControlClient { google::storage::control::v2::RenameFolderRequest const& request, Options opts = {}); + StatusOr RenameFolder( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storage::control::v2::RenameFolderRequest const& request, + Options opts = {}); + + future> RenameFolder( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns the storage layout configuration for a given bucket. 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_client.h b/google/cloud/storageinsights/v1/storage_insights_client.h index 143a2edd1602c..1586816579d58 100644 --- a/google/cloud/storageinsights/v1/storage_insights_client.h +++ b/google/cloud/storageinsights/v1/storage_insights_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGEINSIGHTS_V1_STORAGE_INSIGHTS_CLIENT_H #include "google/cloud/storageinsights/v1/storage_insights_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..7cdeb650a70af 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,60 @@ StorageTransferServiceConnectionImpl::RunTransferJob( polling_policy(*current), __func__); } +StatusOr +StorageTransferServiceConnectionImpl::RunTransferJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..334b50ca33211 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request) + override; + + future> + RunTransferJob(google::cloud::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..0781efc926e03 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,30 @@ StorageTransferServiceTracingConnection::RunTransferJob( return internal::EndSpan(std::move(span), child_->RunTransferJob(request)); } +StatusOr +StorageTransferServiceTracingConnection::RunTransferJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +StorageTransferServiceTracingConnection::RunTransferJob( + google::cloud::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(google::cloud::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..dbfd1b8da0fe3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request) + override; + + future> + RunTransferJob(google::cloud::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..122bc8ee14817 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + RunTransferJob, + (google::cloud::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_client.cc b/google/cloud/storagetransfer/v1/storage_transfer_client.cc index f7f95e7299ce7..b73df96fdb435 100644 --- a/google/cloud/storagetransfer/v1/storage_transfer_client.cc +++ b/google/cloud/storagetransfer/v1/storage_transfer_client.cc @@ -94,6 +94,25 @@ StorageTransferServiceClient::RunTransferJob( return connection_->RunTransferJob(request); } +StatusOr +StorageTransferServiceClient::RunTransferJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunTransferJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +StorageTransferServiceClient::RunTransferJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RunTransferJob(google::cloud::ExperimentalTag{}, + operation); +} + Status StorageTransferServiceClient::DeleteTransferJob( google::storagetransfer::v1::DeleteTransferJobRequest const& request, Options opts) { diff --git a/google/cloud/storagetransfer/v1/storage_transfer_client.h b/google/cloud/storagetransfer/v1/storage_transfer_client.h index 6610739794bec..8d8c478de2685 100644 --- a/google/cloud/storagetransfer/v1/storage_transfer_client.h +++ b/google/cloud/storagetransfer/v1/storage_transfer_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_STORAGETRANSFER_V1_STORAGE_TRANSFER_CLIENT_H #include "google/cloud/storagetransfer/v1/storage_transfer_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -374,6 +376,16 @@ class StorageTransferServiceClient { google::storagetransfer::v1::RunTransferJobRequest const& request, Options opts = {}); + StatusOr RunTransferJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::storagetransfer::v1::RunTransferJobRequest const& request, + Options opts = {}); + + future> + RunTransferJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a transfer job. Deleting a transfer job sets its status to 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_client.h b/google/cloud/support/v2/case_attachment_client.h index 46015833b32fb..a227b8cd4f6da 100644 --- a/google/cloud/support/v2/case_attachment_client.h +++ b/google/cloud/support/v2/case_attachment_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SUPPORT_V2_CASE_ATTACHMENT_CLIENT_H #include "google/cloud/support/v2/case_attachment_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/support/v2/case_client.h index 2dc7678bfd1f1..164351c906520 100644 --- a/google/cloud/support/v2/case_client.h +++ b/google/cloud/support/v2/case_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SUPPORT_V2_CASE_CLIENT_H #include "google/cloud/support/v2/case_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/support/v2/comment_client.h index 38c4486fe3f42..a77ed3db439ea 100644 --- a/google/cloud/support/v2/comment_client.h +++ b/google/cloud/support/v2/comment_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_SUPPORT_V2_COMMENT_CLIENT_H #include "google/cloud/support/v2/comment_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/talent/v4/company_client.h index 451694a90ffea..a65de54d762b9 100644 --- a/google/cloud/talent/v4/company_client.h +++ b/google/cloud/talent/v4/company_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TALENT_V4_COMPANY_CLIENT_H #include "google/cloud/talent/v4/company_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/talent/v4/completion_client.h index e5dd2b3066d41..a0073afe90358 100644 --- a/google/cloud/talent/v4/completion_client.h +++ b/google/cloud/talent/v4/completion_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TALENT_V4_COMPLETION_CLIENT_H #include "google/cloud/talent/v4/completion_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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_client.h b/google/cloud/talent/v4/event_client.h index 6f6bdac8358c3..4bc5183e1ae50 100644 --- a/google/cloud/talent/v4/event_client.h +++ b/google/cloud/talent/v4/event_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TALENT_V4_EVENT_CLIENT_H #include "google/cloud/talent/v4/event_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..b73fda7543a51 100644 --- a/google/cloud/talent/v4/internal/job_connection_impl.cc +++ b/google/cloud/talent/v4/internal/job_connection_impl.cc @@ -114,6 +114,59 @@ JobServiceConnectionImpl::BatchCreateJobs( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::BatchCreateJobs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +232,59 @@ JobServiceConnectionImpl::BatchUpdateJobs( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::BatchUpdateJobs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +337,59 @@ JobServiceConnectionImpl::BatchDeleteJobs( polling_policy(*current), __func__); } +StatusOr +JobServiceConnectionImpl::BatchDeleteJobs( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..76dade93cd41f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request) + override; + + future> + BatchCreateJobs(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request) + override; + + future> + BatchUpdateJobs(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request) + override; + + future> + BatchDeleteJobs(google::cloud::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..53bcb3e8b4f56 100644 --- a/google/cloud/talent/v4/internal/job_tracing_connection.cc +++ b/google/cloud/talent/v4/internal/job_tracing_connection.cc @@ -49,6 +49,30 @@ JobServiceTracingConnection::BatchCreateJobs( return internal::EndSpan(std::move(span), child_->BatchCreateJobs(request)); } +StatusOr +JobServiceTracingConnection::BatchCreateJobs( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::BatchCreateJobs( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr JobServiceTracingConnection::GetJob( google::cloud::talent::v4::GetJobRequest const& request) { auto span = internal::MakeSpan("talent_v4::JobServiceConnection::GetJob"); @@ -72,6 +96,30 @@ JobServiceTracingConnection::BatchUpdateJobs( return internal::EndSpan(std::move(span), child_->BatchUpdateJobs(request)); } +StatusOr +JobServiceTracingConnection::BatchUpdateJobs( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::BatchUpdateJobs( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + Status JobServiceTracingConnection::DeleteJob( google::cloud::talent::v4::DeleteJobRequest const& request) { auto span = internal::MakeSpan("talent_v4::JobServiceConnection::DeleteJob"); @@ -88,6 +136,30 @@ JobServiceTracingConnection::BatchDeleteJobs( return internal::EndSpan(std::move(span), child_->BatchDeleteJobs(request)); } +StatusOr +JobServiceTracingConnection::BatchDeleteJobs( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +JobServiceTracingConnection::BatchDeleteJobs( + google::cloud::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(google::cloud::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..6ec9db01f5b6a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request) + override; + + future> + BatchCreateJobs(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request) + override; + + future> + BatchUpdateJobs(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request) + override; + + future> + BatchDeleteJobs(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + StreamRange ListJobs( google::cloud::talent::v4::ListJobsRequest request) override; diff --git a/google/cloud/talent/v4/job_client.cc b/google/cloud/talent/v4/job_client.cc index ad836cadb1ee6..23a9998f0a440 100644 --- a/google/cloud/talent/v4/job_client.cc +++ b/google/cloud/talent/v4/job_client.cc @@ -59,6 +59,18 @@ JobServiceClient::BatchCreateJobs( return connection_->BatchCreateJobs(request); } +StatusOr JobServiceClient::BatchCreateJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& jobs, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::talent::v4::BatchCreateJobsRequest request; + request.set_parent(parent); + *request.mutable_jobs() = {jobs.begin(), jobs.end()}; + return connection_->BatchCreateJobs(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::BatchCreateJobs( google::cloud::talent::v4::BatchCreateJobsRequest const& request, @@ -67,6 +79,24 @@ JobServiceClient::BatchCreateJobs( return connection_->BatchCreateJobs(request); } +StatusOr JobServiceClient::BatchCreateJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateJobs(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::BatchCreateJobs( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchCreateJobs(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr JobServiceClient::GetJob( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -108,6 +138,18 @@ JobServiceClient::BatchUpdateJobs( return connection_->BatchUpdateJobs(request); } +StatusOr JobServiceClient::BatchUpdateJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& jobs, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::talent::v4::BatchUpdateJobsRequest request; + request.set_parent(parent); + *request.mutable_jobs() = {jobs.begin(), jobs.end()}; + return connection_->BatchUpdateJobs(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::BatchUpdateJobs( google::cloud::talent::v4::BatchUpdateJobsRequest const& request, @@ -116,6 +158,24 @@ JobServiceClient::BatchUpdateJobs( return connection_->BatchUpdateJobs(request); } +StatusOr JobServiceClient::BatchUpdateJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchUpdateJobs(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::BatchUpdateJobs( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchUpdateJobs(google::cloud::ExperimentalTag{}, + operation); +} + Status JobServiceClient::DeleteJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); google::cloud::talent::v4::DeleteJobRequest request; @@ -140,6 +200,18 @@ JobServiceClient::BatchDeleteJobs(std::string const& parent, return connection_->BatchDeleteJobs(request); } +StatusOr JobServiceClient::BatchDeleteJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& names, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::talent::v4::BatchDeleteJobsRequest request; + request.set_parent(parent); + *request.mutable_names() = {names.begin(), names.end()}; + return connection_->BatchDeleteJobs(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> JobServiceClient::BatchDeleteJobs( google::cloud::talent::v4::BatchDeleteJobsRequest const& request, @@ -148,6 +220,24 @@ JobServiceClient::BatchDeleteJobs( return connection_->BatchDeleteJobs(request); } +StatusOr JobServiceClient::BatchDeleteJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteJobs(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +JobServiceClient::BatchDeleteJobs( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchDeleteJobs(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange JobServiceClient::ListJobs( std::string const& parent, std::string const& filter, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/talent/v4/job_client.h b/google/cloud/talent/v4/job_client.h index 14c404f4b9776..1daeb90983e42 100644 --- a/google/cloud/talent/v4/job_client.h +++ b/google/cloud/talent/v4/job_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TALENT_V4_JOB_CLIENT_H #include "google/cloud/talent/v4/job_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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,12 @@ class JobServiceClient { std::vector const& jobs, Options opts = {}); + StatusOr BatchCreateJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& jobs, + Options opts = {}); + // clang-format off /// /// Begins executing a batch create jobs operation. @@ -231,6 +239,16 @@ class JobServiceClient { google::cloud::talent::v4::BatchCreateJobsRequest const& request, Options opts = {}); + StatusOr BatchCreateJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request, + Options opts = {}); + + future> + BatchCreateJobs(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves the specified job, whose status is OPEN or recently EXPIRED @@ -406,6 +424,12 @@ class JobServiceClient { std::vector const& jobs, Options opts = {}); + StatusOr BatchUpdateJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + std::vector const& jobs, + Options opts = {}); + // clang-format off /// /// Begins executing a batch update jobs operation. @@ -445,6 +469,16 @@ class JobServiceClient { google::cloud::talent::v4::BatchUpdateJobsRequest const& request, Options opts = {}); + StatusOr BatchUpdateJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request, + Options opts = {}); + + future> + BatchUpdateJobs(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified job. @@ -547,6 +581,11 @@ class JobServiceClient { BatchDeleteJobs(std::string const& parent, std::vector const& names, Options opts = {}); + StatusOr BatchDeleteJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::vector const& names, + Options opts = {}); + // clang-format off /// /// Begins executing a batch delete jobs operation. @@ -586,6 +625,16 @@ class JobServiceClient { google::cloud::talent::v4::BatchDeleteJobsRequest const& request, Options opts = {}); + StatusOr BatchDeleteJobs( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request, + Options opts = {}); + + future> + BatchDeleteJobs(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists jobs by filter. 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..227734a43cc12 100644 --- a/google/cloud/talent/v4/mocks/mock_job_connection.h +++ b/google/cloud/talent/v4/mocks/mock_job_connection.h @@ -56,6 +56,19 @@ class MockJobServiceConnection : public talent_v4::JobServiceConnection { (google::cloud::talent::v4::BatchCreateJobsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchCreateJobs, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchCreateJobsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchCreateJobs, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetJob, (google::cloud::talent::v4::GetJobRequest const& request), (override)); @@ -70,6 +83,19 @@ class MockJobServiceConnection : public talent_v4::JobServiceConnection { (google::cloud::talent::v4::BatchUpdateJobsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchUpdateJobs, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchUpdateJobsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchUpdateJobs, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(Status, DeleteJob, (google::cloud::talent::v4::DeleteJobRequest const& request), (override)); @@ -80,6 +106,19 @@ class MockJobServiceConnection : public talent_v4::JobServiceConnection { (google::cloud::talent::v4::BatchDeleteJobsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, BatchDeleteJobs, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::talent::v4::BatchDeleteJobsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + BatchDeleteJobs, + (google::cloud::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_client.h b/google/cloud/talent/v4/tenant_client.h index 3dbb75fee2644..5dea1513db706 100644 --- a/google/cloud/talent/v4/tenant_client.h +++ b/google/cloud/talent/v4/tenant_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TALENT_V4_TENANT_CLIENT_H #include "google/cloud/talent/v4/tenant_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/tasks/v2/cloud_tasks_client.h index f1caf9f9a5a35..2519e6deffb9a 100644 --- a/google/cloud/tasks/v2/cloud_tasks_client.h +++ b/google/cloud/tasks/v2/cloud_tasks_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TASKS_V2_CLOUD_TASKS_CLIENT_H #include "google/cloud/tasks/v2/cloud_tasks_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/iam_updater.h" #include "google/cloud/internal/make_status.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..80ff38d7ca527 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,62 @@ TelcoAutomationConnectionImpl::CreateOrchestrationCluster( polling_policy(*current), __func__); } +StatusOr +TelcoAutomationConnectionImpl::CreateOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +258,62 @@ TelcoAutomationConnectionImpl::DeleteOrchestrationCluster( polling_policy(*current), __func__); } +StatusOr +TelcoAutomationConnectionImpl::DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +404,61 @@ TelcoAutomationConnectionImpl::CreateEdgeSlm( polling_policy(*current), __func__); } +StatusOr +TelcoAutomationConnectionImpl::CreateEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +499,61 @@ TelcoAutomationConnectionImpl::DeleteEdgeSlm( polling_policy(*current), __func__); } +StatusOr +TelcoAutomationConnectionImpl::DeleteEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..4b8ac4cb631e1 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request) override; + + future> + CreateOrchestrationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteOrchestrationCluster( google::cloud::telcoautomation::v1:: DeleteOrchestrationClusterRequest const& request) override; + StatusOr DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request) override; + + future> + DeleteOrchestrationCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request) + override; + + future> CreateEdgeSlm( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEdgeSlm(google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) override; + StatusOr DeleteEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) + override; + + future> + DeleteEdgeSlm(google::cloud::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..4275dbbcb06ae 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,33 @@ TelcoAutomationTracingConnection::CreateOrchestrationCluster( child_->CreateOrchestrationCluster(request)); } +StatusOr +TelcoAutomationTracingConnection::CreateOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TelcoAutomationTracingConnection::CreateOrchestrationCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> TelcoAutomationTracingConnection::DeleteOrchestrationCluster( google::cloud::telcoautomation::v1::DeleteOrchestrationClusterRequest const& @@ -81,6 +108,33 @@ TelcoAutomationTracingConnection::DeleteOrchestrationCluster( child_->DeleteOrchestrationCluster(request)); } +StatusOr +TelcoAutomationTracingConnection::DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TelcoAutomationTracingConnection::DeleteOrchestrationCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TelcoAutomationTracingConnection::ListEdgeSlms( google::cloud::telcoautomation::v1::ListEdgeSlmsRequest request) { @@ -111,6 +165,30 @@ TelcoAutomationTracingConnection::CreateEdgeSlm( return internal::EndSpan(std::move(span), child_->CreateEdgeSlm(request)); } +StatusOr +TelcoAutomationTracingConnection::CreateEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TelcoAutomationTracingConnection::CreateEdgeSlm( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TelcoAutomationTracingConnection::DeleteEdgeSlm( google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) { @@ -120,6 +198,30 @@ TelcoAutomationTracingConnection::DeleteEdgeSlm( return internal::EndSpan(std::move(span), child_->DeleteEdgeSlm(request)); } +StatusOr +TelcoAutomationTracingConnection::DeleteEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TelcoAutomationTracingConnection::DeleteEdgeSlm( + google::cloud::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(google::cloud::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..35930b2b7c18a 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request) override; + + future> + CreateOrchestrationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteOrchestrationCluster( google::cloud::telcoautomation::v1:: DeleteOrchestrationClusterRequest const& request) override; + StatusOr DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request) override; + + future> + DeleteOrchestrationCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request) + override; + + future> CreateEdgeSlm( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteEdgeSlm(google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) override; + StatusOr DeleteEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request) + override; + + future> + DeleteEdgeSlm(google::cloud::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..87ec46bbcfda3 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,21 @@ class MockTelcoAutomationConnection CreateOrchestrationClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateOrchestrationCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateOrchestrationCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteOrchestrationCluster, @@ -76,6 +91,20 @@ class MockTelcoAutomationConnection DeleteOrchestrationClusterRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteOrchestrationCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteOrchestrationCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListEdgeSlms, (google::cloud::telcoautomation::v1::ListEdgeSlmsRequest request), @@ -92,12 +121,37 @@ class MockTelcoAutomationConnection (google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateEdgeSlm, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateEdgeSlm, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteEdgeSlm, (google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteEdgeSlm, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteEdgeSlm, + (google::cloud::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_client.cc b/google/cloud/telcoautomation/v1/telco_automation_client.cc index 38f902bcac5f6..7d8aa715edbcf 100644 --- a/google/cloud/telcoautomation/v1/telco_automation_client.cc +++ b/google/cloud/telcoautomation/v1/telco_automation_client.cc @@ -82,6 +82,22 @@ TelcoAutomationClient::CreateOrchestrationCluster( return connection_->CreateOrchestrationCluster(request); } +StatusOr +TelcoAutomationClient::CreateOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::telcoautomation::v1::OrchestrationCluster const& + orchestration_cluster, + std::string const& orchestration_cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::telcoautomation::v1::CreateOrchestrationClusterRequest request; + request.set_parent(parent); + *request.mutable_orchestration_cluster() = orchestration_cluster; + request.set_orchestration_cluster_id(orchestration_cluster_id); + return connection_->CreateOrchestrationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TelcoAutomationClient::CreateOrchestrationCluster( google::cloud::telcoautomation::v1::CreateOrchestrationClusterRequest const& @@ -91,6 +107,26 @@ TelcoAutomationClient::CreateOrchestrationCluster( return connection_->CreateOrchestrationCluster(request); } +StatusOr +TelcoAutomationClient::CreateOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::CreateOrchestrationClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateOrchestrationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TelcoAutomationClient::CreateOrchestrationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateOrchestrationCluster( + google::cloud::ExperimentalTag{}, operation); +} + future> TelcoAutomationClient::DeleteOrchestrationCluster(std::string const& name, Options opts) { @@ -100,6 +136,17 @@ TelcoAutomationClient::DeleteOrchestrationCluster(std::string const& name, return connection_->DeleteOrchestrationCluster(request); } +StatusOr +TelcoAutomationClient::DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::telcoautomation::v1::DeleteOrchestrationClusterRequest request; + request.set_name(name); + return connection_->DeleteOrchestrationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TelcoAutomationClient::DeleteOrchestrationCluster( google::cloud::telcoautomation::v1::DeleteOrchestrationClusterRequest const& @@ -109,6 +156,26 @@ TelcoAutomationClient::DeleteOrchestrationCluster( return connection_->DeleteOrchestrationCluster(request); } +StatusOr +TelcoAutomationClient::DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteOrchestrationClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteOrchestrationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TelcoAutomationClient::DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteOrchestrationCluster( + google::cloud::ExperimentalTag{}, operation); +} + StreamRange TelcoAutomationClient::ListEdgeSlms(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -154,6 +221,20 @@ TelcoAutomationClient::CreateEdgeSlm( return connection_->CreateEdgeSlm(request); } +StatusOr TelcoAutomationClient::CreateEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::telcoautomation::v1::EdgeSlm const& edge_slm, + std::string const& edge_slm_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest request; + request.set_parent(parent); + *request.mutable_edge_slm() = edge_slm; + request.set_edge_slm_id(edge_slm_id); + return connection_->CreateEdgeSlm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TelcoAutomationClient::CreateEdgeSlm( google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request, @@ -162,6 +243,24 @@ TelcoAutomationClient::CreateEdgeSlm( return connection_->CreateEdgeSlm(request); } +StatusOr TelcoAutomationClient::CreateEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEdgeSlm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TelcoAutomationClient::CreateEdgeSlm( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateEdgeSlm(google::cloud::ExperimentalTag{}, + operation); +} + future> TelcoAutomationClient::DeleteEdgeSlm(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -170,6 +269,16 @@ TelcoAutomationClient::DeleteEdgeSlm(std::string const& name, Options opts) { return connection_->DeleteEdgeSlm(request); } +StatusOr TelcoAutomationClient::DeleteEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest request; + request.set_name(name); + return connection_->DeleteEdgeSlm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TelcoAutomationClient::DeleteEdgeSlm( google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request, @@ -178,6 +287,24 @@ TelcoAutomationClient::DeleteEdgeSlm( return connection_->DeleteEdgeSlm(request); } +StatusOr TelcoAutomationClient::DeleteEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEdgeSlm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TelcoAutomationClient::DeleteEdgeSlm( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteEdgeSlm(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TelcoAutomationClient::CreateBlueprint( std::string const& parent, diff --git a/google/cloud/telcoautomation/v1/telco_automation_client.h b/google/cloud/telcoautomation/v1/telco_automation_client.h index 90cef69cfaca8..5c3d3d50e5d3d 100644 --- a/google/cloud/telcoautomation/v1/telco_automation_client.h +++ b/google/cloud/telcoautomation/v1/telco_automation_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TELCOAUTOMATION_V1_TELCO_AUTOMATION_CLIENT_H #include "google/cloud/telcoautomation/v1/telco_automation_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -265,6 +267,13 @@ class TelcoAutomationClient { orchestration_cluster, std::string const& orchestration_cluster_id, Options opts = {}); + StatusOr CreateOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::telcoautomation::v1::OrchestrationCluster const& + orchestration_cluster, + std::string const& orchestration_cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new OrchestrationCluster in a given project and location. @@ -305,6 +314,17 @@ class TelcoAutomationClient { CreateOrchestrationClusterRequest const& request, Options opts = {}); + StatusOr CreateOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1:: + CreateOrchestrationClusterRequest const& request, + Options opts = {}); + + future> + CreateOrchestrationCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single OrchestrationCluster. @@ -337,6 +357,10 @@ class TelcoAutomationClient { future> DeleteOrchestrationCluster(std::string const& name, Options opts = {}); + StatusOr DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single OrchestrationCluster. @@ -377,6 +401,17 @@ class TelcoAutomationClient { DeleteOrchestrationClusterRequest const& request, Options opts = {}); + StatusOr DeleteOrchestrationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1:: + DeleteOrchestrationClusterRequest const& request, + Options opts = {}); + + future> + DeleteOrchestrationCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists EdgeSlms in a given project and location. @@ -545,6 +580,12 @@ class TelcoAutomationClient { google::cloud::telcoautomation::v1::EdgeSlm const& edge_slm, std::string const& edge_slm_id, Options opts = {}); + StatusOr CreateEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::telcoautomation::v1::EdgeSlm const& edge_slm, + std::string const& edge_slm_id, Options opts = {}); + // clang-format off /// /// Creates a new EdgeSlm in a given project and location. @@ -583,6 +624,15 @@ class TelcoAutomationClient { google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request, Options opts = {}); + StatusOr CreateEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::CreateEdgeSlmRequest const& request, + Options opts = {}); + + future> CreateEdgeSlm( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single EdgeSlm. @@ -615,6 +665,10 @@ class TelcoAutomationClient { future> DeleteEdgeSlm(std::string const& name, Options opts = {}); + StatusOr DeleteEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single EdgeSlm. @@ -654,6 +708,16 @@ class TelcoAutomationClient { google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request, Options opts = {}); + StatusOr DeleteEdgeSlm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::telcoautomation::v1::DeleteEdgeSlmRequest const& request, + Options opts = {}); + + future> + DeleteEdgeSlm(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a blueprint. 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_client.h b/google/cloud/texttospeech/v1/text_to_speech_client.h index b17472780c155..37f1a027689af 100644 --- a/google/cloud/texttospeech/v1/text_to_speech_client.h +++ b/google/cloud/texttospeech/v1/text_to_speech_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TEXTTOSPEECH_V1_TEXT_TO_SPEECH_CLIENT_H #include "google/cloud/texttospeech/v1/text_to_speech_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/timeseriesinsights/v1/timeseries_insights_controller_client.h index aae3d5ec3703e..0ca44f5d28842 100644 --- a/google/cloud/timeseriesinsights/v1/timeseries_insights_controller_client.h +++ b/google/cloud/timeseriesinsights/v1/timeseries_insights_controller_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TIMESERIESINSIGHTS_V1_TIMESERIES_INSIGHTS_CONTROLLER_CLIENT_H #include "google/cloud/timeseriesinsights/v1/timeseries_insights_controller_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..5ab6d092e88d3 100644 --- a/google/cloud/tpu/v1/internal/tpu_connection_impl.cc +++ b/google/cloud/tpu/v1/internal/tpu_connection_impl.cc @@ -140,6 +140,56 @@ future> TpuConnectionImpl::CreateNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::CreateNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +227,56 @@ future> TpuConnectionImpl::DeleteNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::DeleteNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +315,56 @@ future> TpuConnectionImpl::ReimageNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::ReimageNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +401,56 @@ future> TpuConnectionImpl::StopNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::StopNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +487,56 @@ future> TpuConnectionImpl::StartNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::StartNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..2f972f3e257a0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request) override; + + future> CreateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request) override; + StatusOr DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request) override; + + future> DeleteNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request) override; + StatusOr ReimageNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request) override; + + future> ReimageNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopNode( google::cloud::tpu::v1::StopNodeRequest const& request) override; + StatusOr StopNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request) override; + + future> StopNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNode( google::cloud::tpu::v1::StartNodeRequest const& request) override; + StatusOr StartNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request) override; + + future> StartNode( + google::cloud::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..0529f7374a19d 100644 --- a/google/cloud/tpu/v1/internal/tpu_tracing_connection.cc +++ b/google/cloud/tpu/v1/internal/tpu_tracing_connection.cc @@ -56,6 +56,26 @@ future> TpuTracingConnection::CreateNode( return internal::EndSpan(std::move(span), child_->CreateNode(request)); } +StatusOr TpuTracingConnection::CreateNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::CreateNode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v1::TpuConnection::DeleteNode"); @@ -63,6 +83,26 @@ future> TpuTracingConnection::DeleteNode( return internal::EndSpan(std::move(span), child_->DeleteNode(request)); } +StatusOr TpuTracingConnection::DeleteNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::DeleteNode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request) { @@ -71,6 +111,27 @@ TpuTracingConnection::ReimageNode( return internal::EndSpan(std::move(span), child_->ReimageNode(request)); } +StatusOr TpuTracingConnection::ReimageNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TpuTracingConnection::ReimageNode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::StopNode( google::cloud::tpu::v1::StopNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v1::TpuConnection::StopNode"); @@ -78,6 +139,26 @@ future> TpuTracingConnection::StopNode( return internal::EndSpan(std::move(span), child_->StopNode(request)); } +StatusOr TpuTracingConnection::StopNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::StopNode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::StartNode( google::cloud::tpu::v1::StartNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v1::TpuConnection::StartNode"); @@ -85,6 +166,26 @@ future> TpuTracingConnection::StartNode( return internal::EndSpan(std::move(span), child_->StartNode(request)); } +StatusOr TpuTracingConnection::StartNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::StartNode( + google::cloud::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(google::cloud::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..dd211068a0359 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request) override; + + future> CreateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request) override; + StatusOr DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request) override; + + future> DeleteNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request) override; + StatusOr ReimageNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request) override; + + future> ReimageNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopNode( google::cloud::tpu::v1::StopNodeRequest const& request) override; + StatusOr StopNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request) override; + + future> StopNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNode( google::cloud::tpu::v1::StartNodeRequest const& request) override; + StatusOr StartNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request) override; + + future> StartNode( + google::cloud::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..d62ea3cabfe2c 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteNode, (google::cloud::tpu::v1::DeleteNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteNode, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, DeleteNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, ReimageNode, (google::cloud::tpu::v1::ReimageNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, ReimageNode, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, ReimageNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopNode, (google::cloud::tpu::v1::StopNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StopNode, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, StopNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartNode, (google::cloud::tpu::v1::StartNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StartNode, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, StartNode, + (google::cloud::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_client.cc b/google/cloud/tpu/v1/tpu_client.cc index b56e5781010a3..90a67399eb2ef 100644 --- a/google/cloud/tpu/v1/tpu_client.cc +++ b/google/cloud/tpu/v1/tpu_client.cc @@ -70,12 +70,40 @@ future> TpuClient::CreateNode( return connection_->CreateNode(request); } +StatusOr TpuClient::CreateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::tpu::v1::Node const& node, + std::string const& node_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::tpu::v1::CreateNodeRequest request; + request.set_parent(parent); + *request.mutable_node() = node; + request.set_node_id(node_id); + return connection_->CreateNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TpuClient::CreateNode( google::cloud::tpu::v1::CreateNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreateNode(request); } +StatusOr TpuClient::CreateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::CreateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNode(google::cloud::ExperimentalTag{}, operation); +} + future> TpuClient::DeleteNode( std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -84,30 +112,100 @@ future> TpuClient::DeleteNode( return connection_->DeleteNode(request); } +StatusOr TpuClient::DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::tpu::v1::DeleteNodeRequest request; + request.set_name(name); + return connection_->DeleteNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TpuClient::DeleteNode( google::cloud::tpu::v1::DeleteNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->DeleteNode(request); } +StatusOr TpuClient::DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::DeleteNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNode(google::cloud::ExperimentalTag{}, operation); +} + future> TpuClient::ReimageNode( google::cloud::tpu::v1::ReimageNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->ReimageNode(request); } +StatusOr TpuClient::ReimageNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReimageNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::ReimageNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ReimageNode(google::cloud::ExperimentalTag{}, operation); +} + future> TpuClient::StopNode( google::cloud::tpu::v1::StopNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->StopNode(request); } +StatusOr TpuClient::StopNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::StopNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopNode(google::cloud::ExperimentalTag{}, operation); +} + future> TpuClient::StartNode( google::cloud::tpu::v1::StartNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->StartNode(request); } +StatusOr TpuClient::StartNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::StartNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartNode(google::cloud::ExperimentalTag{}, operation); +} + StreamRange TpuClient::ListTensorFlowVersions(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); diff --git a/google/cloud/tpu/v1/tpu_client.h b/google/cloud/tpu/v1/tpu_client.h index 6e177344928ea..064b09ee7d0cc 100644 --- a/google/cloud/tpu/v1/tpu_client.h +++ b/google/cloud/tpu/v1/tpu_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TPU_V1_TPU_CLIENT_H #include "google/cloud/tpu/v1/tpu_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -250,6 +252,11 @@ class TpuClient { std::string const& parent, google::cloud::tpu::v1::Node const& node, std::string const& node_id, Options opts = {}); + StatusOr CreateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::tpu::v1::Node const& node, + std::string const& node_id, Options opts = {}); + // clang-format off /// /// Creates a node. @@ -288,6 +295,15 @@ class TpuClient { google::cloud::tpu::v1::CreateNodeRequest const& request, Options opts = {}); + StatusOr CreateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::CreateNodeRequest const& request, + Options opts = {}); + + future> CreateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a node. @@ -320,6 +336,10 @@ class TpuClient { future> DeleteNode( std::string const& name, Options opts = {}); + StatusOr DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a node. @@ -358,6 +378,15 @@ class TpuClient { google::cloud::tpu::v1::DeleteNodeRequest const& request, Options opts = {}); + StatusOr DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::DeleteNodeRequest const& request, + Options opts = {}); + + future> DeleteNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Reimages a node's OS. @@ -396,6 +425,15 @@ class TpuClient { google::cloud::tpu::v1::ReimageNodeRequest const& request, Options opts = {}); + StatusOr ReimageNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::ReimageNodeRequest const& request, + Options opts = {}); + + future> ReimageNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Stops a node, this operation is only available with single TPU nodes. @@ -434,6 +472,15 @@ class TpuClient { google::cloud::tpu::v1::StopNodeRequest const& request, Options opts = {}); + StatusOr StopNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StopNodeRequest const& request, + Options opts = {}); + + future> StopNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Starts a node. @@ -472,6 +519,15 @@ class TpuClient { google::cloud::tpu::v1::StartNodeRequest const& request, Options opts = {}); + StatusOr StartNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v1::StartNodeRequest const& request, + Options opts = {}); + + future> StartNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// List TensorFlow versions supported by this API. 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..ba382602b6b02 100644 --- a/google/cloud/tpu/v2/internal/tpu_connection_impl.cc +++ b/google/cloud/tpu/v2/internal/tpu_connection_impl.cc @@ -140,6 +140,56 @@ future> TpuConnectionImpl::CreateNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::CreateNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +228,57 @@ TpuConnectionImpl::DeleteNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::DeleteNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +315,56 @@ future> TpuConnectionImpl::StopNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::StopNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +401,56 @@ future> TpuConnectionImpl::StartNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::StartNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +488,56 @@ future> TpuConnectionImpl::UpdateNode( polling_policy(*current), __func__); } +StatusOr TpuConnectionImpl::UpdateNode( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..54f3170b38eea 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request) override; + + future> CreateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNode( google::cloud::tpu::v2::DeleteNodeRequest const& request) override; + StatusOr DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request) override; + + future> DeleteNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopNode( google::cloud::tpu::v2::StopNodeRequest const& request) override; + StatusOr StopNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request) override; + + future> StopNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNode( google::cloud::tpu::v2::StartNodeRequest const& request) override; + StatusOr StartNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request) override; + + future> StartNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request) override; + StatusOr UpdateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request) override; + + future> UpdateNode( + google::cloud::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..2025ed23e9c62 100644 --- a/google/cloud/tpu/v2/internal/tpu_tracing_connection.cc +++ b/google/cloud/tpu/v2/internal/tpu_tracing_connection.cc @@ -56,6 +56,26 @@ future> TpuTracingConnection::CreateNode( return internal::EndSpan(std::move(span), child_->CreateNode(request)); } +StatusOr TpuTracingConnection::CreateNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::CreateNode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::DeleteNode( google::cloud::tpu::v2::DeleteNodeRequest const& request) { @@ -64,6 +84,27 @@ TpuTracingConnection::DeleteNode( return internal::EndSpan(std::move(span), child_->DeleteNode(request)); } +StatusOr TpuTracingConnection::DeleteNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TpuTracingConnection::DeleteNode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::StopNode( google::cloud::tpu::v2::StopNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v2::TpuConnection::StopNode"); @@ -71,6 +112,26 @@ future> TpuTracingConnection::StopNode( return internal::EndSpan(std::move(span), child_->StopNode(request)); } +StatusOr TpuTracingConnection::StopNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::StopNode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::StartNode( google::cloud::tpu::v2::StartNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v2::TpuConnection::StartNode"); @@ -78,6 +139,26 @@ future> TpuTracingConnection::StartNode( return internal::EndSpan(std::move(span), child_->StartNode(request)); } +StatusOr TpuTracingConnection::StartNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::StartNode( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TpuTracingConnection::UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request) { auto span = internal::MakeSpan("tpu_v2::TpuConnection::UpdateNode"); @@ -85,6 +166,26 @@ future> TpuTracingConnection::UpdateNode( return internal::EndSpan(std::move(span), child_->UpdateNode(request)); } +StatusOr TpuTracingConnection::UpdateNode( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> TpuTracingConnection::UpdateNode( + google::cloud::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(google::cloud::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..a0dce8bbd6fde 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request) override; + + future> CreateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNode( google::cloud::tpu::v2::DeleteNodeRequest const& request) override; + StatusOr DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request) override; + + future> DeleteNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopNode( google::cloud::tpu::v2::StopNodeRequest const& request) override; + StatusOr StopNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request) override; + + future> StopNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartNode( google::cloud::tpu::v2::StartNodeRequest const& request) override; + StatusOr StartNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request) override; + + future> StartNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request) override; + StatusOr UpdateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request) override; + + future> UpdateNode( + google::cloud::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..097ce5ef81d00 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, CreateNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteNode, (google::cloud::tpu::v2::DeleteNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteNode, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StopNode, (google::cloud::tpu::v2::StopNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StopNode, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, StopNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, StartNode, (google::cloud::tpu::v2::StartNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, StartNode, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, StartNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateNode, (google::cloud::tpu::v2::UpdateNodeRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateNode, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request), + (override)); + + MOCK_METHOD(future>, UpdateNode, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateServiceIdentity, diff --git a/google/cloud/tpu/v2/tpu_client.cc b/google/cloud/tpu/v2/tpu_client.cc index c3ed084dd8c5f..05b3d7f89f6f6 100644 --- a/google/cloud/tpu/v2/tpu_client.cc +++ b/google/cloud/tpu/v2/tpu_client.cc @@ -70,12 +70,40 @@ future> TpuClient::CreateNode( return connection_->CreateNode(request); } +StatusOr TpuClient::CreateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::tpu::v2::Node const& node, + std::string const& node_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::tpu::v2::CreateNodeRequest request; + request.set_parent(parent); + *request.mutable_node() = node; + request.set_node_id(node_id); + return connection_->CreateNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TpuClient::CreateNode( google::cloud::tpu::v2::CreateNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->CreateNode(request); } +StatusOr TpuClient::CreateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::CreateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNode(google::cloud::ExperimentalTag{}, operation); +} + future> TpuClient::DeleteNode(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -84,6 +112,16 @@ TpuClient::DeleteNode(std::string const& name, Options opts) { return connection_->DeleteNode(request); } +StatusOr TpuClient::DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::tpu::v2::DeleteNodeRequest request; + request.set_name(name); + return connection_->DeleteNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TpuClient::DeleteNode(google::cloud::tpu::v2::DeleteNodeRequest const& request, Options opts) { @@ -91,18 +129,64 @@ TpuClient::DeleteNode(google::cloud::tpu::v2::DeleteNodeRequest const& request, return connection_->DeleteNode(request); } +StatusOr TpuClient::DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TpuClient::DeleteNode(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNode(google::cloud::ExperimentalTag{}, operation); +} + future> TpuClient::StopNode( google::cloud::tpu::v2::StopNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->StopNode(request); } +StatusOr TpuClient::StopNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::StopNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopNode(google::cloud::ExperimentalTag{}, operation); +} + future> TpuClient::StartNode( google::cloud::tpu::v2::StartNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->StartNode(request); } +StatusOr TpuClient::StartNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::StartNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartNode(google::cloud::ExperimentalTag{}, operation); +} + future> TpuClient::UpdateNode( google::cloud::tpu::v2::Node const& node, google::protobuf::FieldMask const& update_mask, Options opts) { @@ -113,12 +197,39 @@ future> TpuClient::UpdateNode( return connection_->UpdateNode(request); } +StatusOr TpuClient::UpdateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::Node const& node, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::tpu::v2::UpdateNodeRequest request; + *request.mutable_node() = node; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TpuClient::UpdateNode( google::cloud::tpu::v2::UpdateNodeRequest const& request, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->UpdateNode(request); } +StatusOr TpuClient::UpdateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNode(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> TpuClient::UpdateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNode(google::cloud::ExperimentalTag{}, operation); +} + StatusOr TpuClient::GenerateServiceIdentity( google::cloud::tpu::v2::GenerateServiceIdentityRequest const& request, diff --git a/google/cloud/tpu/v2/tpu_client.h b/google/cloud/tpu/v2/tpu_client.h index 503d9a699a601..7d1093bff7eb5 100644 --- a/google/cloud/tpu/v2/tpu_client.h +++ b/google/cloud/tpu/v2/tpu_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TPU_V2_TPU_CLIENT_H #include "google/cloud/tpu/v2/tpu_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -250,6 +252,11 @@ class TpuClient { std::string const& parent, google::cloud::tpu::v2::Node const& node, std::string const& node_id, Options opts = {}); + StatusOr CreateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, google::cloud::tpu::v2::Node const& node, + std::string const& node_id, Options opts = {}); + // clang-format off /// /// Creates a node. @@ -288,6 +295,15 @@ class TpuClient { google::cloud::tpu::v2::CreateNodeRequest const& request, Options opts = {}); + StatusOr CreateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::CreateNodeRequest const& request, + Options opts = {}); + + future> CreateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a node. @@ -320,6 +336,10 @@ class TpuClient { future> DeleteNode( std::string const& name, Options opts = {}); + StatusOr DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a node. @@ -358,6 +378,15 @@ class TpuClient { google::cloud::tpu::v2::DeleteNodeRequest const& request, Options opts = {}); + StatusOr DeleteNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::DeleteNodeRequest const& request, + Options opts = {}); + + future> DeleteNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Stops a node. This operation is only available with single TPU nodes. @@ -396,6 +425,15 @@ class TpuClient { google::cloud::tpu::v2::StopNodeRequest const& request, Options opts = {}); + StatusOr StopNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StopNodeRequest const& request, + Options opts = {}); + + future> StopNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Starts a node. @@ -434,6 +472,15 @@ class TpuClient { google::cloud::tpu::v2::StartNodeRequest const& request, Options opts = {}); + StatusOr StartNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::StartNodeRequest const& request, + Options opts = {}); + + future> StartNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the configurations of a node. @@ -470,6 +517,11 @@ class TpuClient { google::cloud::tpu::v2::Node const& node, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::Node const& node, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the configurations of a node. @@ -508,6 +560,15 @@ class TpuClient { google::cloud::tpu::v2::UpdateNodeRequest const& request, Options opts = {}); + StatusOr UpdateNode( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::tpu::v2::UpdateNodeRequest const& request, + Options opts = {}); + + future> UpdateNode( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Generates the Cloud TPU service identity for the project. 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_client.h b/google/cloud/trace/v1/trace_client.h index 3f520f97393b9..ca9a0635fb1db 100644 --- a/google/cloud/trace/v1/trace_client.h +++ b/google/cloud/trace/v1/trace_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TRACE_V1_TRACE_CLIENT_H #include "google/cloud/trace/v1/trace_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/trace/v2/trace_client.h index e37ea856ef9b0..cbed9d592aa5f 100644 --- a/google/cloud/trace/v2/trace_client.h +++ b/google/cloud/trace/v2/trace_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TRACE_V2_TRACE_CLIENT_H #include "google/cloud/trace/v2/trace_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..49de7c580472f 100644 --- a/google/cloud/translate/v3/internal/translation_connection_impl.cc +++ b/google/cloud/translate/v3/internal/translation_connection_impl.cc @@ -168,6 +168,61 @@ TranslationServiceConnectionImpl::BatchTranslateText( polling_policy(*current), __func__); } +StatusOr +TranslationServiceConnectionImpl::BatchTranslateText( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +264,63 @@ TranslationServiceConnectionImpl::BatchTranslateDocument( polling_policy(*current), __func__); } +StatusOr +TranslationServiceConnectionImpl::BatchTranslateDocument( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +361,61 @@ TranslationServiceConnectionImpl::CreateGlossary( polling_policy(*current), __func__); } +StatusOr +TranslationServiceConnectionImpl::CreateGlossary( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +505,61 @@ TranslationServiceConnectionImpl::DeleteGlossary( polling_policy(*current), __func__); } +StatusOr +TranslationServiceConnectionImpl::DeleteGlossary( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..0ebfdca68ec3f 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request) + override; + + future> + BatchTranslateText(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& request) override; + StatusOr BatchTranslateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request) override; + + future< + StatusOr> + BatchTranslateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request) override; + StatusOr CreateGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request) + override; + + future> CreateGlossary( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request) + override; + + future> + DeleteGlossary(google::cloud::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..0389cacb68d5d 100644 --- a/google/cloud/translate/v3/internal/translation_tracing_connection.cc +++ b/google/cloud/translate/v3/internal/translation_tracing_connection.cc @@ -80,6 +80,30 @@ TranslationServiceTracingConnection::BatchTranslateText( child_->BatchTranslateText(request)); } +StatusOr +TranslationServiceTracingConnection::BatchTranslateText( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TranslationServiceTracingConnection::BatchTranslateText( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> TranslationServiceTracingConnection::BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& @@ -91,6 +115,31 @@ TranslationServiceTracingConnection::BatchTranslateDocument( child_->BatchTranslateDocument(request)); } +StatusOr +TranslationServiceTracingConnection::BatchTranslateDocument( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TranslationServiceTracingConnection::BatchTranslateDocument( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> TranslationServiceTracingConnection::CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request) { @@ -100,6 +149,30 @@ TranslationServiceTracingConnection::CreateGlossary( return internal::EndSpan(std::move(span), child_->CreateGlossary(request)); } +StatusOr +TranslationServiceTracingConnection::CreateGlossary( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TranslationServiceTracingConnection::CreateGlossary( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange TranslationServiceTracingConnection::ListGlossaries( google::cloud::translation::v3::ListGlossariesRequest request) { @@ -129,6 +202,30 @@ TranslationServiceTracingConnection::DeleteGlossary( return internal::EndSpan(std::move(span), child_->DeleteGlossary(request)); } +StatusOr +TranslationServiceTracingConnection::DeleteGlossary( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +TranslationServiceTracingConnection::DeleteGlossary( + google::cloud::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(google::cloud::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..ffaebdccc50bc 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request) + override; + + future> + BatchTranslateText(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& request) override; + StatusOr BatchTranslateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request) override; + + future< + StatusOr> + BatchTranslateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request) override; + StatusOr CreateGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request) + override; + + future> CreateGlossary( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request) + override; + + future> + DeleteGlossary(google::cloud::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..bfed6a37752e1 100644 --- a/google/cloud/translate/v3/mocks/mock_translation_connection.h +++ b/google/cloud/translate/v3/mocks/mock_translation_connection.h @@ -79,6 +79,19 @@ class MockTranslationServiceConnection request), (override)); + MOCK_METHOD(StatusOr, BatchTranslateText, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchTranslateText, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -87,12 +100,39 @@ class MockTranslationServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, BatchTranslateDocument, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + BatchTranslateDocument, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateGlossary, (google::cloud::translation::v3::CreateGlossaryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGlossary, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGlossary, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListGlossaries, (google::cloud::translation::v3::ListGlossariesRequest request), @@ -109,6 +149,19 @@ class MockTranslationServiceConnection (google::cloud::translation::v3::DeleteGlossaryRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGlossary, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGlossary, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateAdaptiveMtDataset, diff --git a/google/cloud/translate/v3/translation_client.cc b/google/cloud/translate/v3/translation_client.cc index d30127bdcef9c..b884703ab4ba4 100644 --- a/google/cloud/translate/v3/translation_client.cc +++ b/google/cloud/translate/v3/translation_client.cc @@ -128,6 +128,25 @@ TranslationServiceClient::BatchTranslateText( return connection_->BatchTranslateText(request); } +StatusOr +TranslationServiceClient::BatchTranslateText( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchTranslateText(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TranslationServiceClient::BatchTranslateText( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchTranslateText(google::cloud::ExperimentalTag{}, + operation); +} + future> TranslationServiceClient::BatchTranslateDocument( std::string const& parent, std::string const& source_language_code, @@ -149,6 +168,29 @@ TranslationServiceClient::BatchTranslateDocument( return connection_->BatchTranslateDocument(request); } +StatusOr +TranslationServiceClient::BatchTranslateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& source_language_code, + std::vector const& target_language_codes, + std::vector const& + input_configs, + google::cloud::translation::v3::BatchDocumentOutputConfig const& + output_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::translation::v3::BatchTranslateDocumentRequest request; + request.set_parent(parent); + request.set_source_language_code(source_language_code); + *request.mutable_target_language_codes() = {target_language_codes.begin(), + target_language_codes.end()}; + *request.mutable_input_configs() = {input_configs.begin(), + input_configs.end()}; + *request.mutable_output_config() = output_config; + return connection_->BatchTranslateDocument( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> TranslationServiceClient::BatchTranslateDocument( google::cloud::translation::v3::BatchTranslateDocumentRequest const& @@ -158,6 +200,26 @@ TranslationServiceClient::BatchTranslateDocument( return connection_->BatchTranslateDocument(request); } +StatusOr +TranslationServiceClient::BatchTranslateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchTranslateDocument( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +TranslationServiceClient::BatchTranslateDocument( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->BatchTranslateDocument(google::cloud::ExperimentalTag{}, + operation); +} + future> TranslationServiceClient::CreateGlossary( std::string const& parent, @@ -169,6 +231,19 @@ TranslationServiceClient::CreateGlossary( return connection_->CreateGlossary(request); } +StatusOr +TranslationServiceClient::CreateGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::translation::v3::Glossary const& glossary, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::translation::v3::CreateGlossaryRequest request; + request.set_parent(parent); + *request.mutable_glossary() = glossary; + return connection_->CreateGlossary(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TranslationServiceClient::CreateGlossary( google::cloud::translation::v3::CreateGlossaryRequest const& request, @@ -177,6 +252,25 @@ TranslationServiceClient::CreateGlossary( return connection_->CreateGlossary(request); } +StatusOr +TranslationServiceClient::CreateGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGlossary(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TranslationServiceClient::CreateGlossary( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGlossary(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange TranslationServiceClient::ListGlossaries(std::string const& parent, Options opts) { @@ -219,6 +313,18 @@ TranslationServiceClient::DeleteGlossary(std::string const& name, return connection_->DeleteGlossary(request); } +StatusOr +TranslationServiceClient::DeleteGlossary(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::translation::v3::DeleteGlossaryRequest request; + request.set_name(name); + return connection_->DeleteGlossary(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> TranslationServiceClient::DeleteGlossary( google::cloud::translation::v3::DeleteGlossaryRequest const& request, @@ -227,6 +333,25 @@ TranslationServiceClient::DeleteGlossary( return connection_->DeleteGlossary(request); } +StatusOr +TranslationServiceClient::DeleteGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGlossary(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +TranslationServiceClient::DeleteGlossary( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGlossary(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr TranslationServiceClient::CreateAdaptiveMtDataset( std::string const& parent, diff --git a/google/cloud/translate/v3/translation_client.h b/google/cloud/translate/v3/translation_client.h index 9f49c6121de20..ff46ec074cc69 100644 --- a/google/cloud/translate/v3/translation_client.h +++ b/google/cloud/translate/v3/translation_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_TRANSLATE_V3_TRANSLATION_CLIENT_H #include "google/cloud/translate/v3/translation_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -477,6 +479,16 @@ class TranslationServiceClient { google::cloud::translation::v3::BatchTranslateTextRequest const& request, Options opts = {}); + StatusOr BatchTranslateText( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateTextRequest const& request, + Options opts = {}); + + future> + BatchTranslateText(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Translates a large volume of document in asynchronous batch mode. @@ -544,6 +556,17 @@ class TranslationServiceClient { output_config, Options opts = {}); + StatusOr BatchTranslateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& source_language_code, + std::vector const& target_language_codes, + std::vector< + google::cloud::translation::v3::BatchDocumentInputConfig> const& + input_configs, + google::cloud::translation::v3::BatchDocumentOutputConfig const& + output_config, + Options opts = {}); + // clang-format off /// /// Translates a large volume of document in asynchronous batch mode. @@ -591,6 +614,18 @@ class TranslationServiceClient { request, Options opts = {}); + StatusOr BatchTranslateDocument( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::BatchTranslateDocumentRequest const& + request, + Options opts = {}); + + future< + StatusOr> + BatchTranslateDocument(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a glossary and returns the long-running operation. Returns @@ -627,6 +662,12 @@ class TranslationServiceClient { google::cloud::translation::v3::Glossary const& glossary, Options opts = {}); + StatusOr CreateGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::translation::v3::Glossary const& glossary, + Options opts = {}); + // clang-format off /// /// Creates a glossary and returns the long-running operation. Returns @@ -666,6 +707,15 @@ class TranslationServiceClient { google::cloud::translation::v3::CreateGlossaryRequest const& request, Options opts = {}); + StatusOr CreateGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::CreateGlossaryRequest const& request, + Options opts = {}); + + future> CreateGlossary( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists glossaries in a project. Returns NOT_FOUND, if the project doesn't @@ -834,6 +884,10 @@ class TranslationServiceClient { future> DeleteGlossary(std::string const& name, Options opts = {}); + StatusOr DeleteGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a glossary, or cancels glossary construction @@ -875,6 +929,16 @@ class TranslationServiceClient { google::cloud::translation::v3::DeleteGlossaryRequest const& request, Options opts = {}); + StatusOr DeleteGlossary( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::translation::v3::DeleteGlossaryRequest const& request, + Options opts = {}); + + future> + DeleteGlossary(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates an Adaptive MT dataset. 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..ace4d1a1bb384 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,61 @@ LivestreamServiceConnectionImpl::CreateChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::CreateChannel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +257,61 @@ LivestreamServiceConnectionImpl::DeleteChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +352,61 @@ LivestreamServiceConnectionImpl::UpdateChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +447,61 @@ LivestreamServiceConnectionImpl::StartChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::StartChannel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +542,61 @@ LivestreamServiceConnectionImpl::StopChannel( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::StopChannel( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +637,61 @@ LivestreamServiceConnectionImpl::CreateInput( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::CreateInput( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +783,61 @@ LivestreamServiceConnectionImpl::DeleteInput( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::DeleteInput( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +878,61 @@ LivestreamServiceConnectionImpl::UpdateInput( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::UpdateInput( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1053,61 @@ LivestreamServiceConnectionImpl::CreateAsset( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::CreateAsset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1148,61 @@ LivestreamServiceConnectionImpl::DeleteAsset( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1309,61 @@ LivestreamServiceConnectionImpl::UpdatePool( polling_policy(*current), __func__); } +StatusOr +LivestreamServiceConnectionImpl::UpdatePool( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..6ac3707baded9 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& request) + override; + + future> CreateChannel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& request) + override; + + future> + DeleteChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request) override; + StatusOr UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& request) + override; + + future> UpdateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> StartChannel(google::cloud::video::livestream::v1::StartChannelRequest const& request) override; + StatusOr StartChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request) + override; + + future< + StatusOr> + StartChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> StopChannel(google::cloud::video::livestream::v1::StopChannelRequest const& request) override; + StatusOr StopChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request) + override; + + future< + StatusOr> + StopChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request) override; + StatusOr CreateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request) + override; + + future> CreateInput( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request) + override; + + future> + DeleteInput(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request) override; + StatusOr UpdateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request) + override; + + future> UpdateInput( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request) + override; + + future> CreateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAsset(google::cloud::video::livestream::v1::DeleteAssetRequest const& request) override; + StatusOr DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request) + override; + + future> + DeleteAsset(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request) + override; + + future> UpdatePool( + google::cloud::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..a1bc11924ad16 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,30 @@ LivestreamServiceTracingConnection::CreateChannel( return internal::EndSpan(std::move(span), child_->CreateChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::CreateChannel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::CreateChannel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange LivestreamServiceTracingConnection::ListChannels( google::cloud::video::livestream::v1::ListChannelsRequest request) { @@ -72,6 +96,30 @@ LivestreamServiceTracingConnection::DeleteChannel( return internal::EndSpan(std::move(span), child_->DeleteChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::DeleteChannel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request) { @@ -81,6 +129,30 @@ LivestreamServiceTracingConnection::UpdateChannel( return internal::EndSpan(std::move(span), child_->UpdateChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::UpdateChannel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::StartChannel( google::cloud::video::livestream::v1::StartChannelRequest const& request) { @@ -90,6 +162,30 @@ LivestreamServiceTracingConnection::StartChannel( return internal::EndSpan(std::move(span), child_->StartChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::StartChannel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::StartChannel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::StopChannel( google::cloud::video::livestream::v1::StopChannelRequest const& request) { @@ -99,6 +195,30 @@ LivestreamServiceTracingConnection::StopChannel( return internal::EndSpan(std::move(span), child_->StopChannel(request)); } +StatusOr +LivestreamServiceTracingConnection::StopChannel( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::StopChannel( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request) { @@ -108,6 +228,30 @@ LivestreamServiceTracingConnection::CreateInput( return internal::EndSpan(std::move(span), child_->CreateInput(request)); } +StatusOr +LivestreamServiceTracingConnection::CreateInput( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::CreateInput( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange LivestreamServiceTracingConnection::ListInputs( google::cloud::video::livestream::v1::ListInputsRequest request) { @@ -138,6 +282,30 @@ LivestreamServiceTracingConnection::DeleteInput( return internal::EndSpan(std::move(span), child_->DeleteInput(request)); } +StatusOr +LivestreamServiceTracingConnection::DeleteInput( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::DeleteInput( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request) { @@ -147,6 +315,30 @@ LivestreamServiceTracingConnection::UpdateInput( return internal::EndSpan(std::move(span), child_->UpdateInput(request)); } +StatusOr +LivestreamServiceTracingConnection::UpdateInput( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::UpdateInput( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr LivestreamServiceTracingConnection::CreateEvent( google::cloud::video::livestream::v1::CreateEventRequest const& request) { @@ -194,6 +386,30 @@ LivestreamServiceTracingConnection::CreateAsset( return internal::EndSpan(std::move(span), child_->CreateAsset(request)); } +StatusOr +LivestreamServiceTracingConnection::CreateAsset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::CreateAsset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> LivestreamServiceTracingConnection::DeleteAsset( google::cloud::video::livestream::v1::DeleteAssetRequest const& request) { @@ -203,6 +419,30 @@ LivestreamServiceTracingConnection::DeleteAsset( return internal::EndSpan(std::move(span), child_->DeleteAsset(request)); } +StatusOr +LivestreamServiceTracingConnection::DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::DeleteAsset( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr LivestreamServiceTracingConnection::GetAsset( google::cloud::video::livestream::v1::GetAssetRequest const& request) { @@ -242,6 +482,30 @@ LivestreamServiceTracingConnection::UpdatePool( return internal::EndSpan(std::move(span), child_->UpdatePool(request)); } +StatusOr +LivestreamServiceTracingConnection::UpdatePool( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +LivestreamServiceTracingConnection::UpdatePool( + google::cloud::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(google::cloud::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..c389d084f4967 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& request) + override; + + future> CreateChannel( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& request) + override; + + future> + DeleteChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request) override; + StatusOr UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& request) + override; + + future> UpdateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> StartChannel(google::cloud::video::livestream::v1::StartChannelRequest const& request) override; + StatusOr StartChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request) + override; + + future< + StatusOr> + StartChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future< StatusOr> StopChannel(google::cloud::video::livestream::v1::StopChannelRequest const& request) override; + StatusOr StopChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request) + override; + + future< + StatusOr> + StopChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request) override; + StatusOr CreateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request) + override; + + future> CreateInput( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request) + override; + + future> + DeleteInput(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request) override; + StatusOr UpdateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request) + override; + + future> UpdateInput( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request) + override; + + future> CreateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteAsset(google::cloud::video::livestream::v1::DeleteAssetRequest const& request) override; + StatusOr DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request) + override; + + future> + DeleteAsset(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request) + override; + + future> UpdatePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + private: std::shared_ptr child_; }; diff --git a/google/cloud/video/livestream/v1/livestream_client.cc b/google/cloud/video/livestream/v1/livestream_client.cc index 16cd9ae9e1396..ec97be8ad8057 100644 --- a/google/cloud/video/livestream/v1/livestream_client.cc +++ b/google/cloud/video/livestream/v1/livestream_client.cc @@ -45,6 +45,20 @@ LivestreamServiceClient::CreateChannel( return connection_->CreateChannel(request); } +StatusOr LivestreamServiceClient::CreateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::livestream::v1::Channel const& channel, + std::string const& channel_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::CreateChannelRequest request; + request.set_parent(parent); + *request.mutable_channel() = channel; + request.set_channel_id(channel_id); + return connection_->CreateChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::CreateChannel( google::cloud::video::livestream::v1::CreateChannelRequest const& request, @@ -53,6 +67,24 @@ LivestreamServiceClient::CreateChannel( return connection_->CreateChannel(request); } +StatusOr LivestreamServiceClient::CreateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::CreateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateChannel(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange LivestreamServiceClient::ListChannels(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -93,6 +125,16 @@ LivestreamServiceClient::DeleteChannel(std::string const& name, Options opts) { return connection_->DeleteChannel(request); } +StatusOr LivestreamServiceClient::DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::DeleteChannelRequest request; + request.set_name(name); + return connection_->DeleteChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::DeleteChannel( google::cloud::video::livestream::v1::DeleteChannelRequest const& request, @@ -101,6 +143,24 @@ LivestreamServiceClient::DeleteChannel( return connection_->DeleteChannel(request); } +StatusOr LivestreamServiceClient::DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::DeleteChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteChannel(google::cloud::ExperimentalTag{}, + operation); +} + future> LivestreamServiceClient::UpdateChannel( google::cloud::video::livestream::v1::Channel const& channel, @@ -112,6 +172,18 @@ LivestreamServiceClient::UpdateChannel( return connection_->UpdateChannel(request); } +StatusOr LivestreamServiceClient::UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::Channel const& channel, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::UpdateChannelRequest request; + *request.mutable_channel() = channel; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::UpdateChannel( google::cloud::video::livestream::v1::UpdateChannelRequest const& request, @@ -120,6 +192,24 @@ LivestreamServiceClient::UpdateChannel( return connection_->UpdateChannel(request); } +StatusOr LivestreamServiceClient::UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::UpdateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateChannel(google::cloud::ExperimentalTag{}, + operation); +} + future> LivestreamServiceClient::StartChannel(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -128,6 +218,16 @@ LivestreamServiceClient::StartChannel(std::string const& name, Options opts) { return connection_->StartChannel(request); } +StatusOr LivestreamServiceClient::StartChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::StartChannelRequest request; + request.set_name(name); + return connection_->StartChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::StartChannel( google::cloud::video::livestream::v1::StartChannelRequest const& request, @@ -136,6 +236,23 @@ LivestreamServiceClient::StartChannel( return connection_->StartChannel(request); } +StatusOr LivestreamServiceClient::StartChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::StartChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartChannel(google::cloud::ExperimentalTag{}, operation); +} + future> LivestreamServiceClient::StopChannel(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -144,6 +261,16 @@ LivestreamServiceClient::StopChannel(std::string const& name, Options opts) { return connection_->StopChannel(request); } +StatusOr LivestreamServiceClient::StopChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::StopChannelRequest request; + request.set_name(name); + return connection_->StopChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::StopChannel( google::cloud::video::livestream::v1::StopChannelRequest const& request, @@ -152,6 +279,23 @@ LivestreamServiceClient::StopChannel( return connection_->StopChannel(request); } +StatusOr LivestreamServiceClient::StopChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopChannel(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::StopChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopChannel(google::cloud::ExperimentalTag{}, operation); +} + future> LivestreamServiceClient::CreateInput( std::string const& parent, @@ -165,6 +309,20 @@ LivestreamServiceClient::CreateInput( return connection_->CreateInput(request); } +StatusOr LivestreamServiceClient::CreateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::livestream::v1::Input const& input, + std::string const& input_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::CreateInputRequest request; + request.set_parent(parent); + *request.mutable_input() = input; + request.set_input_id(input_id); + return connection_->CreateInput(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::CreateInput( google::cloud::video::livestream::v1::CreateInputRequest const& request, @@ -173,6 +331,23 @@ LivestreamServiceClient::CreateInput( return connection_->CreateInput(request); } +StatusOr LivestreamServiceClient::CreateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInput(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::CreateInput( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateInput(google::cloud::ExperimentalTag{}, operation); +} + StreamRange LivestreamServiceClient::ListInputs(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -213,6 +388,16 @@ LivestreamServiceClient::DeleteInput(std::string const& name, Options opts) { return connection_->DeleteInput(request); } +StatusOr LivestreamServiceClient::DeleteInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::DeleteInputRequest request; + request.set_name(name); + return connection_->DeleteInput(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::DeleteInput( google::cloud::video::livestream::v1::DeleteInputRequest const& request, @@ -221,6 +406,23 @@ LivestreamServiceClient::DeleteInput( return connection_->DeleteInput(request); } +StatusOr LivestreamServiceClient::DeleteInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInput(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::DeleteInput( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteInput(google::cloud::ExperimentalTag{}, operation); +} + future> LivestreamServiceClient::UpdateInput( google::cloud::video::livestream::v1::Input const& input, @@ -232,6 +434,18 @@ LivestreamServiceClient::UpdateInput( return connection_->UpdateInput(request); } +StatusOr LivestreamServiceClient::UpdateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::Input const& input, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::UpdateInputRequest request; + *request.mutable_input() = input; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateInput(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::UpdateInput( google::cloud::video::livestream::v1::UpdateInputRequest const& request, @@ -240,6 +454,23 @@ LivestreamServiceClient::UpdateInput( return connection_->UpdateInput(request); } +StatusOr LivestreamServiceClient::UpdateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInput(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::UpdateInput( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateInput(google::cloud::ExperimentalTag{}, operation); +} + StatusOr LivestreamServiceClient::CreateEvent( std::string const& parent, @@ -321,6 +552,20 @@ LivestreamServiceClient::CreateAsset( return connection_->CreateAsset(request); } +StatusOr LivestreamServiceClient::CreateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::livestream::v1::Asset const& asset, + std::string const& asset_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::CreateAssetRequest request; + request.set_parent(parent); + *request.mutable_asset() = asset; + request.set_asset_id(asset_id); + return connection_->CreateAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::CreateAsset( google::cloud::video::livestream::v1::CreateAssetRequest const& request, @@ -329,6 +574,23 @@ LivestreamServiceClient::CreateAsset( return connection_->CreateAsset(request); } +StatusOr LivestreamServiceClient::CreateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::CreateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateAsset(google::cloud::ExperimentalTag{}, operation); +} + future> LivestreamServiceClient::DeleteAsset(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -337,6 +599,16 @@ LivestreamServiceClient::DeleteAsset(std::string const& name, Options opts) { return connection_->DeleteAsset(request); } +StatusOr LivestreamServiceClient::DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::DeleteAssetRequest request; + request.set_name(name); + return connection_->DeleteAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::DeleteAsset( google::cloud::video::livestream::v1::DeleteAssetRequest const& request, @@ -345,6 +617,23 @@ LivestreamServiceClient::DeleteAsset( return connection_->DeleteAsset(request); } +StatusOr LivestreamServiceClient::DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAsset(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::DeleteAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteAsset(google::cloud::ExperimentalTag{}, operation); +} + StatusOr LivestreamServiceClient::GetAsset(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -404,6 +693,18 @@ LivestreamServiceClient::UpdatePool( return connection_->UpdatePool(request); } +StatusOr LivestreamServiceClient::UpdatePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::Pool const& pool, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::livestream::v1::UpdatePoolRequest request; + *request.mutable_pool() = pool; + *request.mutable_update_mask() = update_mask; + return connection_->UpdatePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> LivestreamServiceClient::UpdatePool( google::cloud::video::livestream::v1::UpdatePoolRequest const& request, @@ -412,6 +713,23 @@ LivestreamServiceClient::UpdatePool( return connection_->UpdatePool(request); } +StatusOr LivestreamServiceClient::UpdatePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePool(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +LivestreamServiceClient::UpdatePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePool(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace video_livestream_v1 } // namespace cloud diff --git a/google/cloud/video/livestream/v1/livestream_client.h b/google/cloud/video/livestream/v1/livestream_client.h index 4081a2da0afba..ad652e5c50c9a 100644 --- a/google/cloud/video/livestream/v1/livestream_client.h +++ b/google/cloud/video/livestream/v1/livestream_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VIDEO_LIVESTREAM_V1_LIVESTREAM_CLIENT_H #include "google/cloud/video/livestream/v1/livestream_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -132,6 +134,12 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::Channel const& channel, std::string const& channel_id, Options opts = {}); + StatusOr CreateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::livestream::v1::Channel const& channel, + std::string const& channel_id, Options opts = {}); + // clang-format off /// /// Creates a channel with the provided unique ID in the specified @@ -171,6 +179,15 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::CreateChannelRequest const& request, Options opts = {}); + StatusOr CreateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& request, + Options opts = {}); + + future> CreateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns a list of all channels in the specified region. @@ -336,6 +353,10 @@ class LivestreamServiceClient { future> DeleteChannel(std::string const& name, Options opts = {}); + StatusOr DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified channel. @@ -375,6 +396,16 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::DeleteChannelRequest const& request, Options opts = {}); + StatusOr DeleteChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& request, + Options opts = {}); + + future> + DeleteChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified channel. @@ -428,6 +459,11 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::Channel const& channel, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::Channel const& channel, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified channel. @@ -466,6 +502,15 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::UpdateChannelRequest const& request, Options opts = {}); + StatusOr UpdateChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& request, + Options opts = {}); + + future> UpdateChannel( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Starts the specified channel. Part of the video pipeline will be created @@ -501,6 +546,10 @@ class LivestreamServiceClient { StatusOr> StartChannel(std::string const& name, Options opts = {}); + StatusOr StartChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Starts the specified channel. Part of the video pipeline will be created @@ -542,6 +591,17 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::StartChannelRequest const& request, Options opts = {}); + StatusOr StartChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& request, + Options opts = {}); + + future< + StatusOr> + StartChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stops the specified channel. Part of the video pipeline will be released @@ -577,6 +637,10 @@ class LivestreamServiceClient { StatusOr> StopChannel(std::string const& name, Options opts = {}); + StatusOr StopChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Stops the specified channel. Part of the video pipeline will be released @@ -618,6 +682,17 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::StopChannelRequest const& request, Options opts = {}); + StatusOr StopChannel( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request, + Options opts = {}); + + future< + StatusOr> + StopChannel(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates an input with the provided unique ID in the specified region. @@ -657,6 +732,12 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::Input const& input, std::string const& input_id, Options opts = {}); + StatusOr CreateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::livestream::v1::Input const& input, + std::string const& input_id, Options opts = {}); + // clang-format off /// /// Creates an input with the provided unique ID in the specified region. @@ -695,6 +776,15 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::CreateInputRequest const& request, Options opts = {}); + StatusOr CreateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request, + Options opts = {}); + + future> CreateInput( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Returns a list of all inputs in the specified region. @@ -860,6 +950,10 @@ class LivestreamServiceClient { future> DeleteInput(std::string const& name, Options opts = {}); + StatusOr DeleteInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified input. @@ -899,6 +993,16 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::DeleteInputRequest const& request, Options opts = {}); + StatusOr DeleteInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request, + Options opts = {}); + + future> + DeleteInput(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified input. @@ -944,6 +1048,11 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::Input const& input, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::Input const& input, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified input. @@ -982,6 +1091,15 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::UpdateInputRequest const& request, Options opts = {}); + StatusOr UpdateInput( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request, + Options opts = {}); + + future> UpdateInput( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates an event with the provided unique ID in the specified channel. @@ -1267,6 +1385,12 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::Asset const& asset, std::string const& asset_id, Options opts = {}); + StatusOr CreateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::livestream::v1::Asset const& asset, + std::string const& asset_id, Options opts = {}); + // clang-format off /// /// Creates a Asset with the provided unique ID in the specified @@ -1306,6 +1430,15 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::CreateAssetRequest const& request, Options opts = {}); + StatusOr CreateAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request, + Options opts = {}); + + future> CreateAsset( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes the specified asset if it is not used. @@ -1339,6 +1472,10 @@ class LivestreamServiceClient { future> DeleteAsset(std::string const& name, Options opts = {}); + StatusOr DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified asset if it is not used. @@ -1378,6 +1515,16 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::DeleteAssetRequest const& request, Options opts = {}); + StatusOr DeleteAsset( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request, + Options opts = {}); + + future> + DeleteAsset(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the specified asset. @@ -1607,6 +1754,11 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::Pool const& pool, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdatePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::Pool const& pool, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified pool. @@ -1645,6 +1797,15 @@ class LivestreamServiceClient { google::cloud::video::livestream::v1::UpdatePoolRequest const& request, Options opts = {}); + StatusOr UpdatePool( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request, + Options opts = {}); + + future> UpdatePool( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..f1b0b3df1ed10 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateChannelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateChannel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListChannels, @@ -71,12 +83,37 @@ class MockLivestreamServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteChannel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteChannelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteChannel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateChannel, (google::cloud::video::livestream::v1::UpdateChannelRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateChannel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateChannelRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateChannel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -85,6 +122,20 @@ class MockLivestreamServiceConnection request), (override)); + MOCK_METHOD(StatusOr, StartChannel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StartChannelRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + StartChannel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -92,12 +143,38 @@ class MockLivestreamServiceConnection (google::cloud::video::livestream::v1::StopChannelRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopChannel, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::StopChannelRequest const& request), + (override)); + + MOCK_METHOD( + future>, + StopChannel, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateInput, (google::cloud::video::livestream::v1::CreateInputRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateInput, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateInputRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateInput, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListInputs, (google::cloud::video::livestream::v1::ListInputsRequest request), @@ -114,12 +191,37 @@ class MockLivestreamServiceConnection (google::cloud::video::livestream::v1::DeleteInputRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteInput, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteInputRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteInput, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateInput, (google::cloud::video::livestream::v1::UpdateInputRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateInput, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdateInputRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateInput, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateEvent, (google::cloud::video::livestream::v1::CreateEventRequest const& request), @@ -146,12 +248,37 @@ class MockLivestreamServiceConnection (google::cloud::video::livestream::v1::CreateAssetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateAsset, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::CreateAssetRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateAsset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteAsset, (google::cloud::video::livestream::v1::DeleteAssetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteAsset, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::DeleteAssetRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteAsset, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetAsset, (google::cloud::video::livestream::v1::GetAssetRequest const& request), @@ -171,6 +298,18 @@ class MockLivestreamServiceConnection future>, UpdatePool, (google::cloud::video::livestream::v1::UpdatePoolRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdatePool, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::livestream::v1::UpdatePoolRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdatePool, + (google::cloud::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..ed178de53444a 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,61 @@ VideoStitcherServiceConnectionImpl::CreateCdnKey( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::CreateCdnKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +257,61 @@ VideoStitcherServiceConnectionImpl::DeleteCdnKey( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::DeleteCdnKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +352,61 @@ VideoStitcherServiceConnectionImpl::UpdateCdnKey( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::UpdateCdnKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +638,61 @@ VideoStitcherServiceConnectionImpl::CreateSlate( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::CreateSlate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +783,61 @@ VideoStitcherServiceConnectionImpl::UpdateSlate( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::UpdateSlate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +878,61 @@ VideoStitcherServiceConnectionImpl::DeleteSlate( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::DeleteSlate( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1005,62 @@ VideoStitcherServiceConnectionImpl::CreateLiveConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::CreateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1152,62 @@ VideoStitcherServiceConnectionImpl::DeleteLiveConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::DeleteLiveConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1249,62 @@ VideoStitcherServiceConnectionImpl::UpdateLiveConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::UpdateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1345,61 @@ VideoStitcherServiceConnectionImpl::CreateVodConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::CreateVodConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1491,61 @@ VideoStitcherServiceConnectionImpl::DeleteVodConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::DeleteVodConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1586,61 @@ VideoStitcherServiceConnectionImpl::UpdateVodConfig( polling_policy(*current), __func__); } +StatusOr +VideoStitcherServiceConnectionImpl::UpdateVodConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..883f4911af961 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request) + override; + + future> CreateCdnKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request) + override; + + future> + DeleteCdnKey(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) override; + StatusOr UpdateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) + override; + + future> UpdateCdnKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request) + override; + + future> CreateSlate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request) + override; + + future> UpdateSlate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSlate(google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) override; + StatusOr DeleteSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) + override; + + future> + DeleteSlate(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request) override; + + future> + CreateLiveConfig(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request) override; + + future> + DeleteLiveConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& request) override; + StatusOr UpdateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request) override; + + future> + UpdateLiveConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) override; + StatusOr CreateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) + override; + + future> + CreateVodConfig(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request) + override; + + future> + DeleteVodConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) override; + StatusOr UpdateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) + override; + + future> + UpdateVodConfig(google::cloud::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..980b8ee378291 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,30 @@ VideoStitcherServiceTracingConnection::CreateCdnKey( return internal::EndSpan(std::move(span), child_->CreateCdnKey(request)); } +StatusOr +VideoStitcherServiceTracingConnection::CreateCdnKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::CreateCdnKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VideoStitcherServiceTracingConnection::ListCdnKeys( google::cloud::video::stitcher::v1::ListCdnKeysRequest request) { @@ -72,6 +96,30 @@ VideoStitcherServiceTracingConnection::DeleteCdnKey( return internal::EndSpan(std::move(span), child_->DeleteCdnKey(request)); } +StatusOr +VideoStitcherServiceTracingConnection::DeleteCdnKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::DeleteCdnKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) { @@ -81,6 +129,30 @@ VideoStitcherServiceTracingConnection::UpdateCdnKey( return internal::EndSpan(std::move(span), child_->UpdateCdnKey(request)); } +StatusOr +VideoStitcherServiceTracingConnection::UpdateCdnKey( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::UpdateCdnKey( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VideoStitcherServiceTracingConnection::CreateVodSession( google::cloud::video::stitcher::v1::CreateVodSessionRequest const& @@ -177,6 +249,30 @@ VideoStitcherServiceTracingConnection::CreateSlate( return internal::EndSpan(std::move(span), child_->CreateSlate(request)); } +StatusOr +VideoStitcherServiceTracingConnection::CreateSlate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::CreateSlate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VideoStitcherServiceTracingConnection::ListSlates( google::cloud::video::stitcher::v1::ListSlatesRequest request) { @@ -207,6 +303,30 @@ VideoStitcherServiceTracingConnection::UpdateSlate( return internal::EndSpan(std::move(span), child_->UpdateSlate(request)); } +StatusOr +VideoStitcherServiceTracingConnection::UpdateSlate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::UpdateSlate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::DeleteSlate( google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) { @@ -216,6 +336,30 @@ VideoStitcherServiceTracingConnection::DeleteSlate( return internal::EndSpan(std::move(span), child_->DeleteSlate(request)); } +StatusOr +VideoStitcherServiceTracingConnection::DeleteSlate( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::DeleteSlate( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VideoStitcherServiceTracingConnection::CreateLiveSession( google::cloud::video::stitcher::v1::CreateLiveSessionRequest const& @@ -245,6 +389,31 @@ VideoStitcherServiceTracingConnection::CreateLiveConfig( return internal::EndSpan(std::move(span), child_->CreateLiveConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::CreateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::CreateLiveConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VideoStitcherServiceTracingConnection::ListLiveConfigs( google::cloud::video::stitcher::v1::ListLiveConfigsRequest request) { @@ -276,6 +445,31 @@ VideoStitcherServiceTracingConnection::DeleteLiveConfig( return internal::EndSpan(std::move(span), child_->DeleteLiveConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::DeleteLiveConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::DeleteLiveConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& @@ -286,6 +480,31 @@ VideoStitcherServiceTracingConnection::UpdateLiveConfig( return internal::EndSpan(std::move(span), child_->UpdateLiveConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::UpdateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::UpdateLiveConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) { @@ -295,6 +514,30 @@ VideoStitcherServiceTracingConnection::CreateVodConfig( return internal::EndSpan(std::move(span), child_->CreateVodConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::CreateVodConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::CreateVodConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VideoStitcherServiceTracingConnection::ListVodConfigs( google::cloud::video::stitcher::v1::ListVodConfigsRequest request) { @@ -325,6 +568,30 @@ VideoStitcherServiceTracingConnection::DeleteVodConfig( return internal::EndSpan(std::move(span), child_->DeleteVodConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::DeleteVodConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::DeleteVodConfig( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VideoStitcherServiceTracingConnection::UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) { @@ -334,6 +601,30 @@ VideoStitcherServiceTracingConnection::UpdateVodConfig( return internal::EndSpan(std::move(span), child_->UpdateVodConfig(request)); } +StatusOr +VideoStitcherServiceTracingConnection::UpdateVodConfig( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoStitcherServiceTracingConnection::UpdateVodConfig( + google::cloud::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(google::cloud::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..fa9f4fb898422 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request) + override; + + future> CreateCdnKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request) + override; + + future> + DeleteCdnKey(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) override; + StatusOr UpdateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request) + override; + + future> UpdateCdnKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request) + override; + + future> CreateSlate( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request) + override; + + future> UpdateSlate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSlate(google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) override; + StatusOr DeleteSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request) + override; + + future> + DeleteSlate(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request) override; + + future> + CreateLiveConfig(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request) override; + + future> + DeleteLiveConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& request) override; + StatusOr UpdateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request) override; + + future> + UpdateLiveConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) override; + StatusOr CreateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request) + override; + + future> + CreateVodConfig(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request) + override; + + future> + DeleteVodConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) override; + StatusOr UpdateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request) + override; + + future> + UpdateVodConfig(google::cloud::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..2a8dd10e02a63 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCdnKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCdnKeys, (google::cloud::video::stitcher::v1::ListCdnKeysRequest request), @@ -69,12 +81,37 @@ class MockVideoStitcherServiceConnection (google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCdnKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCdnKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCdnKey, (google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCdnKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCdnKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateVodSession, @@ -131,6 +168,18 @@ class MockVideoStitcherServiceConnection (google::cloud::video::stitcher::v1::CreateSlateRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSlate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSlate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSlates, (google::cloud::video::stitcher::v1::ListSlatesRequest request), @@ -146,12 +195,37 @@ class MockVideoStitcherServiceConnection (google::cloud::video::stitcher::v1::UpdateSlateRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSlate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSlate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSlate, (google::cloud::video::stitcher::v1::DeleteSlateRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSlate, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSlate, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, CreateLiveSession, @@ -172,6 +246,19 @@ class MockVideoStitcherServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateLiveConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateLiveConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListLiveConfigs, @@ -190,6 +277,20 @@ class MockVideoStitcherServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteLiveConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteLiveConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateLiveConfig, @@ -197,12 +298,37 @@ class MockVideoStitcherServiceConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateLiveConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateLiveConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, CreateVodConfig, (google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request), (override)); + MOCK_METHOD(StatusOr, CreateVodConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateVodConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListVodConfigs, @@ -221,11 +347,36 @@ class MockVideoStitcherServiceConnection request), (override)); + MOCK_METHOD(StatusOr, DeleteVodConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteVodConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateVodConfig, (google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request), (override)); + + MOCK_METHOD(StatusOr, UpdateVodConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateVodConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/video/stitcher/v1/video_stitcher_client.cc b/google/cloud/video/stitcher/v1/video_stitcher_client.cc index 7b5cd41760f96..b3cc637488592 100644 --- a/google/cloud/video/stitcher/v1/video_stitcher_client.cc +++ b/google/cloud/video/stitcher/v1/video_stitcher_client.cc @@ -45,6 +45,21 @@ VideoStitcherServiceClient::CreateCdnKey( return connection_->CreateCdnKey(request); } +StatusOr +VideoStitcherServiceClient::CreateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::stitcher::v1::CdnKey const& cdn_key, + std::string const& cdn_key_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::CreateCdnKeyRequest request; + request.set_parent(parent); + *request.mutable_cdn_key() = cdn_key; + request.set_cdn_key_id(cdn_key_id); + return connection_->CreateCdnKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::CreateCdnKey( google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request, @@ -53,6 +68,24 @@ VideoStitcherServiceClient::CreateCdnKey( return connection_->CreateCdnKey(request); } +StatusOr +VideoStitcherServiceClient::CreateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCdnKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::CreateCdnKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCdnKey(google::cloud::ExperimentalTag{}, operation); +} + StreamRange VideoStitcherServiceClient::ListCdnKeys(std::string const& parent, Options opts) { @@ -95,6 +128,18 @@ VideoStitcherServiceClient::DeleteCdnKey(std::string const& name, return connection_->DeleteCdnKey(request); } +StatusOr +VideoStitcherServiceClient::DeleteCdnKey(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest request; + request.set_name(name); + return connection_->DeleteCdnKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::DeleteCdnKey( google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request, @@ -103,6 +148,24 @@ VideoStitcherServiceClient::DeleteCdnKey( return connection_->DeleteCdnKey(request); } +StatusOr +VideoStitcherServiceClient::DeleteCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCdnKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::DeleteCdnKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCdnKey(google::cloud::ExperimentalTag{}, operation); +} + future> VideoStitcherServiceClient::UpdateCdnKey( google::cloud::video::stitcher::v1::CdnKey const& cdn_key, @@ -114,6 +177,19 @@ VideoStitcherServiceClient::UpdateCdnKey( return connection_->UpdateCdnKey(request); } +StatusOr +VideoStitcherServiceClient::UpdateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CdnKey const& cdn_key, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest request; + *request.mutable_cdn_key() = cdn_key; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCdnKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::UpdateCdnKey( google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request, @@ -122,6 +198,24 @@ VideoStitcherServiceClient::UpdateCdnKey( return connection_->UpdateCdnKey(request); } +StatusOr +VideoStitcherServiceClient::UpdateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCdnKey(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::UpdateCdnKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCdnKey(google::cloud::ExperimentalTag{}, operation); +} + StatusOr VideoStitcherServiceClient::CreateVodSession( std::string const& parent, @@ -276,6 +370,21 @@ VideoStitcherServiceClient::CreateSlate( return connection_->CreateSlate(request); } +StatusOr +VideoStitcherServiceClient::CreateSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::stitcher::v1::Slate const& slate, + std::string const& slate_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::CreateSlateRequest request; + request.set_parent(parent); + *request.mutable_slate() = slate; + request.set_slate_id(slate_id); + return connection_->CreateSlate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::CreateSlate( google::cloud::video::stitcher::v1::CreateSlateRequest const& request, @@ -284,6 +393,24 @@ VideoStitcherServiceClient::CreateSlate( return connection_->CreateSlate(request); } +StatusOr +VideoStitcherServiceClient::CreateSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSlate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::CreateSlate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSlate(google::cloud::ExperimentalTag{}, operation); +} + StreamRange VideoStitcherServiceClient::ListSlates(std::string const& parent, Options opts) { @@ -328,6 +455,19 @@ VideoStitcherServiceClient::UpdateSlate( return connection_->UpdateSlate(request); } +StatusOr +VideoStitcherServiceClient::UpdateSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::Slate const& slate, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::UpdateSlateRequest request; + *request.mutable_slate() = slate; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSlate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::UpdateSlate( google::cloud::video::stitcher::v1::UpdateSlateRequest const& request, @@ -336,6 +476,24 @@ VideoStitcherServiceClient::UpdateSlate( return connection_->UpdateSlate(request); } +StatusOr +VideoStitcherServiceClient::UpdateSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSlate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::UpdateSlate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSlate(google::cloud::ExperimentalTag{}, operation); +} + future> VideoStitcherServiceClient::DeleteSlate(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -344,6 +502,17 @@ VideoStitcherServiceClient::DeleteSlate(std::string const& name, Options opts) { return connection_->DeleteSlate(request); } +StatusOr +VideoStitcherServiceClient::DeleteSlate(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::DeleteSlateRequest request; + request.set_name(name); + return connection_->DeleteSlate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::DeleteSlate( google::cloud::video::stitcher::v1::DeleteSlateRequest const& request, @@ -352,6 +521,24 @@ VideoStitcherServiceClient::DeleteSlate( return connection_->DeleteSlate(request); } +StatusOr +VideoStitcherServiceClient::DeleteSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSlate(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::DeleteSlate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSlate(google::cloud::ExperimentalTag{}, operation); +} + StatusOr VideoStitcherServiceClient::CreateLiveSession( std::string const& parent, @@ -402,6 +589,21 @@ VideoStitcherServiceClient::CreateLiveConfig( return connection_->CreateLiveConfig(request); } +StatusOr +VideoStitcherServiceClient::CreateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::stitcher::v1::LiveConfig const& live_config, + std::string const& live_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::CreateLiveConfigRequest request; + request.set_parent(parent); + *request.mutable_live_config() = live_config; + request.set_live_config_id(live_config_id); + return connection_->CreateLiveConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::CreateLiveConfig( google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& request, @@ -410,6 +612,25 @@ VideoStitcherServiceClient::CreateLiveConfig( return connection_->CreateLiveConfig(request); } +StatusOr +VideoStitcherServiceClient::CreateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLiveConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::CreateLiveConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLiveConfig(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VideoStitcherServiceClient::ListLiveConfigs(std::string const& parent, Options opts) { @@ -453,6 +674,18 @@ VideoStitcherServiceClient::DeleteLiveConfig(std::string const& name, return connection_->DeleteLiveConfig(request); } +StatusOr +VideoStitcherServiceClient::DeleteLiveConfig(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest request; + request.set_name(name); + return connection_->DeleteLiveConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::DeleteLiveConfig( google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& request, @@ -461,6 +694,25 @@ VideoStitcherServiceClient::DeleteLiveConfig( return connection_->DeleteLiveConfig(request); } +StatusOr +VideoStitcherServiceClient::DeleteLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLiveConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::DeleteLiveConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLiveConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> VideoStitcherServiceClient::UpdateLiveConfig( google::cloud::video::stitcher::v1::LiveConfig const& live_config, @@ -472,6 +724,19 @@ VideoStitcherServiceClient::UpdateLiveConfig( return connection_->UpdateLiveConfig(request); } +StatusOr +VideoStitcherServiceClient::UpdateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::LiveConfig const& live_config, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest request; + *request.mutable_live_config() = live_config; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateLiveConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::UpdateLiveConfig( google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& request, @@ -480,6 +745,25 @@ VideoStitcherServiceClient::UpdateLiveConfig( return connection_->UpdateLiveConfig(request); } +StatusOr +VideoStitcherServiceClient::UpdateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLiveConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::UpdateLiveConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLiveConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> VideoStitcherServiceClient::CreateVodConfig( std::string const& parent, @@ -493,6 +777,21 @@ VideoStitcherServiceClient::CreateVodConfig( return connection_->CreateVodConfig(request); } +StatusOr +VideoStitcherServiceClient::CreateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::stitcher::v1::VodConfig const& vod_config, + std::string const& vod_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::CreateVodConfigRequest request; + request.set_parent(parent); + *request.mutable_vod_config() = vod_config; + request.set_vod_config_id(vod_config_id); + return connection_->CreateVodConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::CreateVodConfig( google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request, @@ -501,6 +800,25 @@ VideoStitcherServiceClient::CreateVodConfig( return connection_->CreateVodConfig(request); } +StatusOr +VideoStitcherServiceClient::CreateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVodConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::CreateVodConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVodConfig(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VideoStitcherServiceClient::ListVodConfigs(std::string const& parent, Options opts) { @@ -544,6 +862,18 @@ VideoStitcherServiceClient::DeleteVodConfig(std::string const& name, return connection_->DeleteVodConfig(request); } +StatusOr +VideoStitcherServiceClient::DeleteVodConfig(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::DeleteVodConfigRequest request; + request.set_name(name); + return connection_->DeleteVodConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::DeleteVodConfig( google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request, @@ -552,6 +882,25 @@ VideoStitcherServiceClient::DeleteVodConfig( return connection_->DeleteVodConfig(request); } +StatusOr +VideoStitcherServiceClient::DeleteVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVodConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::DeleteVodConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVodConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> VideoStitcherServiceClient::UpdateVodConfig( google::cloud::video::stitcher::v1::VodConfig const& vod_config, @@ -563,6 +912,19 @@ VideoStitcherServiceClient::UpdateVodConfig( return connection_->UpdateVodConfig(request); } +StatusOr +VideoStitcherServiceClient::UpdateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::VodConfig const& vod_config, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::video::stitcher::v1::UpdateVodConfigRequest request; + *request.mutable_vod_config() = vod_config; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateVodConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoStitcherServiceClient::UpdateVodConfig( google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request, @@ -571,6 +933,25 @@ VideoStitcherServiceClient::UpdateVodConfig( return connection_->UpdateVodConfig(request); } +StatusOr +VideoStitcherServiceClient::UpdateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVodConfig(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoStitcherServiceClient::UpdateVodConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVodConfig(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace video_stitcher_v1 } // namespace cloud diff --git a/google/cloud/video/stitcher/v1/video_stitcher_client.h b/google/cloud/video/stitcher/v1/video_stitcher_client.h index d9327abefa4e9..bffd6646cca2a 100644 --- a/google/cloud/video/stitcher/v1/video_stitcher_client.h +++ b/google/cloud/video/stitcher/v1/video_stitcher_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VIDEO_STITCHER_V1_VIDEO_STITCHER_CLIENT_H #include "google/cloud/video/stitcher/v1/video_stitcher_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -135,6 +137,12 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::CdnKey const& cdn_key, std::string const& cdn_key_id, Options opts = {}); + StatusOr CreateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::stitcher::v1::CdnKey const& cdn_key, + std::string const& cdn_key_id, Options opts = {}); + // clang-format off /// /// Creates a new CDN key. @@ -173,6 +181,15 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request, Options opts = {}); + StatusOr CreateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateCdnKeyRequest const& request, + Options opts = {}); + + future> CreateCdnKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists all CDN keys in the specified project and location. @@ -338,6 +355,10 @@ class VideoStitcherServiceClient { future> DeleteCdnKey(std::string const& name, Options opts = {}); + StatusOr DeleteCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified CDN key. @@ -377,6 +398,16 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request, Options opts = {}); + StatusOr DeleteCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteCdnKeyRequest const& request, + Options opts = {}); + + future> + DeleteCdnKey(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified CDN key. Only update fields specified @@ -414,6 +445,11 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::CdnKey const& cdn_key, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CdnKey const& cdn_key, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified CDN key. Only update fields specified @@ -453,6 +489,15 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request, Options opts = {}); + StatusOr UpdateCdnKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateCdnKeyRequest const& request, + Options opts = {}); + + future> UpdateCdnKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a client side playback VOD session and returns the full @@ -1024,6 +1069,12 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::Slate const& slate, std::string const& slate_id, Options opts = {}); + StatusOr CreateSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::stitcher::v1::Slate const& slate, + std::string const& slate_id, Options opts = {}); + // clang-format off /// /// Creates a slate. @@ -1062,6 +1113,15 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::CreateSlateRequest const& request, Options opts = {}); + StatusOr CreateSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateSlateRequest const& request, + Options opts = {}); + + future> CreateSlate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists all slates in the specified project and location. @@ -1228,6 +1288,11 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::Slate const& slate, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::Slate const& slate, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified slate. @@ -1266,6 +1331,15 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::UpdateSlateRequest const& request, Options opts = {}); + StatusOr UpdateSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateSlateRequest const& request, + Options opts = {}); + + future> UpdateSlate( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes the specified slate. @@ -1299,6 +1373,10 @@ class VideoStitcherServiceClient { future> DeleteSlate(std::string const& name, Options opts = {}); + StatusOr DeleteSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified slate. @@ -1338,6 +1416,16 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::DeleteSlateRequest const& request, Options opts = {}); + StatusOr DeleteSlate( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteSlateRequest const& request, + Options opts = {}); + + future> + DeleteSlate(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new live session. @@ -1495,6 +1583,12 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::LiveConfig const& live_config, std::string const& live_config_id, Options opts = {}); + StatusOr CreateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::stitcher::v1::LiveConfig const& live_config, + std::string const& live_config_id, Options opts = {}); + // clang-format off /// /// Registers the live config with the provided unique ID in @@ -1536,6 +1630,17 @@ class VideoStitcherServiceClient { request, Options opts = {}); + StatusOr CreateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateLiveConfigRequest const& + request, + Options opts = {}); + + future> + CreateLiveConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all live configs managed by the Video Stitcher that @@ -1706,6 +1811,10 @@ class VideoStitcherServiceClient { future> DeleteLiveConfig(std::string const& name, Options opts = {}); + StatusOr DeleteLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified live config. @@ -1746,6 +1855,17 @@ class VideoStitcherServiceClient { request, Options opts = {}); + StatusOr DeleteLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteLiveConfigRequest const& + request, + Options opts = {}); + + future> + DeleteLiveConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified LiveConfig. Only update fields specified @@ -1785,6 +1905,11 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::LiveConfig const& live_config, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::LiveConfig const& live_config, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified LiveConfig. Only update fields specified @@ -1826,6 +1951,17 @@ class VideoStitcherServiceClient { request, Options opts = {}); + StatusOr UpdateLiveConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateLiveConfigRequest const& + request, + Options opts = {}); + + future> + UpdateLiveConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Registers the VOD config with the provided unique ID in @@ -1865,6 +2001,12 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::VodConfig const& vod_config, std::string const& vod_config_id, Options opts = {}); + StatusOr CreateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::video::stitcher::v1::VodConfig const& vod_config, + std::string const& vod_config_id, Options opts = {}); + // clang-format off /// /// Registers the VOD config with the provided unique ID in @@ -1905,6 +2047,16 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request, Options opts = {}); + StatusOr CreateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::CreateVodConfigRequest const& request, + Options opts = {}); + + future> + CreateVodConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists all VOD configs managed by the Video Stitcher API that @@ -2074,6 +2226,10 @@ class VideoStitcherServiceClient { future> DeleteVodConfig(std::string const& name, Options opts = {}); + StatusOr DeleteVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified VOD config. @@ -2113,6 +2269,16 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request, Options opts = {}); + StatusOr DeleteVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::DeleteVodConfigRequest const& request, + Options opts = {}); + + future> + DeleteVodConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the specified VOD config. Only update fields specified @@ -2152,6 +2318,11 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::VodConfig const& vod_config, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::VodConfig const& vod_config, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the specified VOD config. Only update fields specified @@ -2192,6 +2363,16 @@ class VideoStitcherServiceClient { google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request, Options opts = {}); + StatusOr UpdateVodConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::video::stitcher::v1::UpdateVodConfigRequest const& request, + Options opts = {}); + + future> + UpdateVodConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/video/transcoder/v1/transcoder_client.h index 363d7e4e117dd..183dad9eb54ef 100644 --- a/google/cloud/video/transcoder/v1/transcoder_client.h +++ b/google/cloud/video/transcoder/v1/transcoder_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VIDEO_TRANSCODER_V1_TRANSCODER_CLIENT_H #include "google/cloud/video/transcoder/v1/transcoder_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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..4bd212c9668e4 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,61 @@ VideoIntelligenceServiceConnectionImpl::AnnotateVideo( polling_policy(*current), __func__); } +StatusOr +VideoIntelligenceServiceConnectionImpl::AnnotateVideo( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..fa5ec7b8d0df6 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& request) + override; + + future> + AnnotateVideo(google::cloud::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..63c4b9bc405de 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,32 @@ VideoIntelligenceServiceTracingConnection::AnnotateVideo( return internal::EndSpan(std::move(span), child_->AnnotateVideo(request)); } +StatusOr +VideoIntelligenceServiceTracingConnection::AnnotateVideo( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VideoIntelligenceServiceTracingConnection::AnnotateVideo( + google::cloud::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(google::cloud::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..f17bb296388ea 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& request) + override; + + future> + AnnotateVideo(google::cloud::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..a5c40001a019e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AnnotateVideo, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/videointelligence/v1/video_intelligence_client.cc b/google/cloud/videointelligence/v1/video_intelligence_client.cc index deff9aed043f6..2e2894189495b 100644 --- a/google/cloud/videointelligence/v1/video_intelligence_client.cc +++ b/google/cloud/videointelligence/v1/video_intelligence_client.cc @@ -45,6 +45,20 @@ VideoIntelligenceServiceClient::AnnotateVideo( return connection_->AnnotateVideo(request); } +StatusOr +VideoIntelligenceServiceClient::AnnotateVideo( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& input_uri, + std::vector const& features, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::videointelligence::v1::AnnotateVideoRequest request; + request.set_input_uri(input_uri); + *request.mutable_features() = {features.begin(), features.end()}; + return connection_->AnnotateVideo(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VideoIntelligenceServiceClient::AnnotateVideo( google::cloud::videointelligence::v1::AnnotateVideoRequest const& request, @@ -53,6 +67,25 @@ VideoIntelligenceServiceClient::AnnotateVideo( return connection_->AnnotateVideo(request); } +StatusOr +VideoIntelligenceServiceClient::AnnotateVideo( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AnnotateVideo(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VideoIntelligenceServiceClient::AnnotateVideo( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AnnotateVideo(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace videointelligence_v1 } // namespace cloud diff --git a/google/cloud/videointelligence/v1/video_intelligence_client.h b/google/cloud/videointelligence/v1/video_intelligence_client.h index 3d20f4f38710a..a0b8092ee07ba 100644 --- a/google/cloud/videointelligence/v1/video_intelligence_client.h +++ b/google/cloud/videointelligence/v1/video_intelligence_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VIDEOINTELLIGENCE_V1_VIDEO_INTELLIGENCE_CLIENT_H #include "google/cloud/videointelligence/v1/video_intelligence_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -140,6 +142,13 @@ class VideoIntelligenceServiceClient { features, Options opts = {}); + StatusOr AnnotateVideo( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& input_uri, + std::vector const& + features, + Options opts = {}); + // clang-format off /// /// Performs asynchronous video annotation. Progress and results can be @@ -182,6 +191,16 @@ class VideoIntelligenceServiceClient { google::cloud::videointelligence::v1::AnnotateVideoRequest const& request, Options opts = {}); + StatusOr AnnotateVideo( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::videointelligence::v1::AnnotateVideoRequest const& request, + Options opts = {}); + + future> + AnnotateVideo(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.cc b/google/cloud/vision/v1/image_annotator_client.cc index b040a7480ba0d..766d950b1bc62 100644 --- a/google/cloud/vision/v1/image_annotator_client.cc +++ b/google/cloud/vision/v1/image_annotator_client.cc @@ -82,6 +82,21 @@ ImageAnnotatorClient::AsyncBatchAnnotateImages( return connection_->AsyncBatchAnnotateImages(request); } +StatusOr +ImageAnnotatorClient::AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::vector const& + requests, + google::cloud::vision::v1::OutputConfig const& output_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest request; + *request.mutable_requests() = {requests.begin(), requests.end()}; + *request.mutable_output_config() = output_config; + return connection_->AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ImageAnnotatorClient::AsyncBatchAnnotateImages( google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request, @@ -90,6 +105,25 @@ ImageAnnotatorClient::AsyncBatchAnnotateImages( return connection_->AsyncBatchAnnotateImages(request); } +StatusOr +ImageAnnotatorClient::AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ImageAnnotatorClient::AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AsyncBatchAnnotateImages(google::cloud::ExperimentalTag{}, + operation); +} + future> ImageAnnotatorClient::AsyncBatchAnnotateFiles( std::vector const& @@ -101,6 +135,19 @@ ImageAnnotatorClient::AsyncBatchAnnotateFiles( return connection_->AsyncBatchAnnotateFiles(request); } +StatusOr +ImageAnnotatorClient::AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::vector const& + requests, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest request; + *request.mutable_requests() = {requests.begin(), requests.end()}; + return connection_->AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> ImageAnnotatorClient::AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request, @@ -109,6 +156,25 @@ ImageAnnotatorClient::AsyncBatchAnnotateFiles( return connection_->AsyncBatchAnnotateFiles(request); } +StatusOr +ImageAnnotatorClient::AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +ImageAnnotatorClient::AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AsyncBatchAnnotateFiles(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace vision_v1 } // namespace cloud diff --git a/google/cloud/vision/v1/image_annotator_client.h b/google/cloud/vision/v1/image_annotator_client.h index b27c64810ed98..56448acd0ea70 100644 --- a/google/cloud/vision/v1/image_annotator_client.h +++ b/google/cloud/vision/v1/image_annotator_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VISION_V1_IMAGE_ANNOTATOR_CLIENT_H #include "google/cloud/vision/v1/image_annotator_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -267,6 +269,13 @@ class ImageAnnotatorClient { google::cloud::vision::v1::OutputConfig const& output_config, Options opts = {}); + StatusOr AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::vector const& + requests, + google::cloud::vision::v1::OutputConfig const& output_config, + Options opts = {}); + // clang-format off /// /// Run asynchronous image detection and annotation for a list of images. @@ -314,6 +323,16 @@ class ImageAnnotatorClient { google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request, Options opts = {}); + StatusOr AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request, + Options opts = {}); + + future> + AsyncBatchAnnotateImages(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Run asynchronous image detection and annotation for a list of generic @@ -354,6 +373,12 @@ class ImageAnnotatorClient { requests, Options opts = {}); + StatusOr AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::vector const& + requests, + Options opts = {}); + // clang-format off /// /// Run asynchronous image detection and annotation for a list of generic @@ -398,6 +423,16 @@ class ImageAnnotatorClient { google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request, Options opts = {}); + StatusOr AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request, + Options opts = {}); + + future> + AsyncBatchAnnotateFiles(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..6eacd3b9d851d 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,60 @@ ImageAnnotatorConnectionImpl::AsyncBatchAnnotateImages( polling_policy(*current), __func__); } +StatusOr +ImageAnnotatorConnectionImpl::AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +227,60 @@ ImageAnnotatorConnectionImpl::AsyncBatchAnnotateFiles( polling_policy(*current), __func__); } +StatusOr +ImageAnnotatorConnectionImpl::AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..1ffa596e07879 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request) + override; + + future> + AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) override; + StatusOr AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) + override; + + future> + AsyncBatchAnnotateFiles( + google::cloud::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..82dde5d60d5be 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,30 @@ ImageAnnotatorTracingConnection::AsyncBatchAnnotateImages( child_->AsyncBatchAnnotateImages(request)); } +StatusOr +ImageAnnotatorTracingConnection::AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ImageAnnotatorTracingConnection::AsyncBatchAnnotateImages( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> ImageAnnotatorTracingConnection::AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) { @@ -70,6 +94,30 @@ ImageAnnotatorTracingConnection::AsyncBatchAnnotateFiles( child_->AsyncBatchAnnotateFiles(request)); } +StatusOr +ImageAnnotatorTracingConnection::AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ImageAnnotatorTracingConnection::AsyncBatchAnnotateFiles( + google::cloud::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( + google::cloud::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..56705b5d44412 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& request) + override; + + future> + AsyncBatchAnnotateImages( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AsyncBatchAnnotateFiles( google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) override; + StatusOr AsyncBatchAnnotateFiles( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request) + override; + + future> + AsyncBatchAnnotateFiles( + google::cloud::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..d65317c6f5ab3 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,60 @@ ProductSearchConnectionImpl::ImportProductSets( polling_policy(*current), __func__); } +StatusOr +ProductSearchConnectionImpl::ImportProductSets( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +520,59 @@ ProductSearchConnectionImpl::PurgeProducts( polling_policy(*current), __func__); } +StatusOr +ProductSearchConnectionImpl::PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..03713c25c4040 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request) + override; + + future> + ImportProductSets(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const& request) override; + StatusOr PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request) override; + + future> + PurgeProducts(google::cloud::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..53700d8e9f381 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,30 @@ ProductSearchTracingConnection::ImportProductSets( return internal::EndSpan(std::move(span), child_->ImportProductSets(request)); } +StatusOr +ProductSearchTracingConnection::ImportProductSets( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductSearchTracingConnection::ImportProductSets( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> ProductSearchTracingConnection::PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const& request) { @@ -209,6 +233,30 @@ ProductSearchTracingConnection::PurgeProducts( return internal::EndSpan(std::move(span), child_->PurgeProducts(request)); } +StatusOr +ProductSearchTracingConnection::PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +ProductSearchTracingConnection::PurgeProducts( + google::cloud::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(google::cloud::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..e136a640433ac 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request) + override; + + future> + ImportProductSets(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const& request) override; + StatusOr PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request) override; + + future> + PurgeProducts(google::cloud::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..b0f4b8ce20972 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateImagesRequest const& + request), + (override)); + + MOCK_METHOD(future>, + AsyncBatchAnnotateImages, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -73,6 +87,20 @@ class MockImageAnnotatorConnection (google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& request), (override)); + + MOCK_METHOD(StatusOr, AsyncBatchAnnotateFiles, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::AsyncBatchAnnotateFilesRequest const& + request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + AsyncBatchAnnotateFiles, + (google::cloud::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..5e2129e02fc1c 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,36 @@ class MockProductSearchConnection : public vision_v1::ProductSearchConnection { (google::cloud::vision::v1::ImportProductSetsRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ImportProductSets, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ImportProductSets, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PurgeProducts, (google::cloud::vision::v1::PurgeProductsRequest const& request), (override)); + + MOCK_METHOD(StatusOr, PurgeProducts, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PurgeProducts, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/vision/v1/product_search_client.cc b/google/cloud/vision/v1/product_search_client.cc index 6ddb5c057eb94..7f762411c7573 100644 --- a/google/cloud/vision/v1/product_search_client.cc +++ b/google/cloud/vision/v1/product_search_client.cc @@ -330,6 +330,19 @@ ProductSearchClient::ImportProductSets( return connection_->ImportProductSets(request); } +StatusOr ProductSearchClient::ImportProductSets( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vision::v1::ImportProductSetsInputConfig const& input_config, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vision::v1::ImportProductSetsRequest request; + request.set_parent(parent); + *request.mutable_input_config() = input_config; + return connection_->ImportProductSets(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProductSearchClient::ImportProductSets( google::cloud::vision::v1::ImportProductSetsRequest const& request, @@ -338,6 +351,24 @@ ProductSearchClient::ImportProductSets( return connection_->ImportProductSets(request); } +StatusOr ProductSearchClient::ImportProductSets( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportProductSets(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProductSearchClient::ImportProductSets( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ImportProductSets(google::cloud::ExperimentalTag{}, + operation); +} + future> ProductSearchClient::PurgeProducts(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -346,6 +377,16 @@ ProductSearchClient::PurgeProducts(std::string const& parent, Options opts) { return connection_->PurgeProducts(request); } +StatusOr ProductSearchClient::PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vision::v1::PurgeProductsRequest request; + request.set_parent(parent); + return connection_->PurgeProducts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> ProductSearchClient::PurgeProducts( google::cloud::vision::v1::PurgeProductsRequest const& request, @@ -354,6 +395,24 @@ ProductSearchClient::PurgeProducts( return connection_->PurgeProducts(request); } +StatusOr ProductSearchClient::PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeProducts(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +ProductSearchClient::PurgeProducts( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PurgeProducts(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace vision_v1 } // namespace cloud diff --git a/google/cloud/vision/v1/product_search_client.h b/google/cloud/vision/v1/product_search_client.h index 4295e8c008b67..cc691daf7c1fd 100644 --- a/google/cloud/vision/v1/product_search_client.h +++ b/google/cloud/vision/v1/product_search_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VISION_V1_PRODUCT_SEARCH_CLIENT_H #include "google/cloud/vision/v1/product_search_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -1450,6 +1452,13 @@ class ProductSearchClient { input_config, Options opts = {}); + StatusOr ImportProductSets( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vision::v1::ImportProductSetsInputConfig const& + input_config, + Options opts = {}); + // clang-format off /// /// Asynchronous API that imports a list of reference images to specified @@ -1501,6 +1510,16 @@ class ProductSearchClient { google::cloud::vision::v1::ImportProductSetsRequest const& request, Options opts = {}); + StatusOr ImportProductSets( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::ImportProductSetsRequest const& request, + Options opts = {}); + + future> + ImportProductSets(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Asynchronous API to delete all Products in a ProductSet or all Products @@ -1559,6 +1578,10 @@ class ProductSearchClient { future> PurgeProducts(std::string const& parent, Options opts = {}); + StatusOr PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, Options opts = {}); + // clang-format off /// /// Asynchronous API to delete all Products in a ProductSet or all Products @@ -1621,6 +1644,16 @@ class ProductSearchClient { PurgeProducts(google::cloud::vision::v1::PurgeProductsRequest const& request, Options opts = {}); + StatusOr PurgeProducts( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vision::v1::PurgeProductsRequest const& request, + Options opts = {}); + + future> + PurgeProducts(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..c46aec024b142 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,59 @@ VmMigrationConnectionImpl::CreateSource( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateSource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +243,59 @@ VmMigrationConnectionImpl::UpdateSource( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::UpdateSource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +335,60 @@ VmMigrationConnectionImpl::DeleteSource( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::DeleteSource( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +497,62 @@ VmMigrationConnectionImpl::CreateUtilizationReport( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +594,62 @@ VmMigrationConnectionImpl::DeleteUtilizationReport( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::DeleteUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +743,61 @@ VmMigrationConnectionImpl::CreateDatacenterConnector( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +838,79 @@ VmMigrationConnectionImpl::DeleteDatacenterConnector( polling_policy(*current), __func__); } -future> -VmMigrationConnectionImpl::UpgradeAppliance( - google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) { +StatusOr +VmMigrationConnectionImpl::DeleteDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +933,60 @@ VmMigrationConnectionImpl::UpgradeAppliance( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::UpgradeAppliance( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1027,60 @@ VmMigrationConnectionImpl::CreateMigratingVm( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1171,60 @@ VmMigrationConnectionImpl::UpdateMigratingVm( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::UpdateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1265,60 @@ VmMigrationConnectionImpl::DeleteMigratingVm( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::DeleteMigratingVm( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1359,60 @@ VmMigrationConnectionImpl::StartMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::StartMigration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1453,60 @@ VmMigrationConnectionImpl::ResumeMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::ResumeMigration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1543,61 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1641,60 @@ VmMigrationConnectionImpl::FinalizeMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::FinalizeMigration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1735,60 @@ VmMigrationConnectionImpl::CreateCloneJob( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateCloneJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1829,60 @@ VmMigrationConnectionImpl::CancelCloneJob( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CancelCloneJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1972,60 @@ VmMigrationConnectionImpl::CreateCutoverJob( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateCutoverJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2066,60 @@ VmMigrationConnectionImpl::CancelCutoverJob( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CancelCutoverJob( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2218,103 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2322,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 +2347,38 @@ VmMigrationConnectionImpl::CreateGroup( polling_policy(*current), __func__); } -future> -VmMigrationConnectionImpl::UpdateGroup( +StatusOr VmMigrationConnectionImpl::UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +2396,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 +2438,59 @@ VmMigrationConnectionImpl::DeleteGroup( polling_policy(*current), __func__); } +StatusOr VmMigrationConnectionImpl::DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2531,60 @@ VmMigrationConnectionImpl::AddGroupMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::AddGroupMigration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2626,61 @@ VmMigrationConnectionImpl::RemoveGroupMigration( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::RemoveGroupMigration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2771,60 @@ VmMigrationConnectionImpl::CreateTargetProject( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::CreateTargetProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2865,60 @@ VmMigrationConnectionImpl::UpdateTargetProject( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::UpdateTargetProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2959,60 @@ VmMigrationConnectionImpl::DeleteTargetProject( polling_policy(*current), __func__); } +StatusOr +VmMigrationConnectionImpl::DeleteTargetProject( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..273824087b9a5 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request) + override; + + future> CreateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request) override; + StatusOr UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request) + override; + + future> UpdateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSource(google::cloud::vmmigration::v1::DeleteSourceRequest const& request) override; + StatusOr DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request) + override; + + future> + DeleteSource(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request) override; + + future> + CreateUtilizationReport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& request) override; + StatusOr DeleteUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request) override; + + future> + DeleteUtilizationReport( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request) override; + + future> + CreateDatacenterConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& request) override; + StatusOr DeleteDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request) override; + + future> + DeleteDatacenterConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) override; + StatusOr UpgradeAppliance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) + override; + + future> + UpgradeAppliance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) override; + StatusOr CreateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) + override; + + future> + CreateMigratingVm(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request) + override; + + future> + UpdateMigratingVm(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) override; + StatusOr DeleteMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) + override; + + future> + DeleteMigratingVm(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartMigration(google::cloud::vmmigration::v1::StartMigrationRequest const& request) override; + StatusOr StartMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request) + override; + + future> + StartMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeMigration(google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) override; + StatusOr ResumeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) + override; + + future> + ResumeMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PauseMigration(google::cloud::vmmigration::v1::PauseMigrationRequest const& request) override; + StatusOr PauseMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request) + override; + + future> + PauseMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) override; + StatusOr FinalizeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) + override; + + future> + FinalizeMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) override; + StatusOr CreateCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) + override; + + future> CreateCloneJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelCloneJob(google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) override; + StatusOr CancelCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) + override; + + future> + CancelCloneJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request) + override; + + future> CreateCutoverJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) override; + StatusOr CancelCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) + override; + + future> + CancelCutoverJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request) + override; + + future> CreateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const& request) override; + StatusOr UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request) + override; + + future> UpdateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGroup(google::cloud::vmmigration::v1::DeleteGroupRequest const& request) override; + StatusOr DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request) + override; + + future> + DeleteGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) override; + StatusOr AddGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) + override; + + future> + AddGroupMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& request) override; + StatusOr RemoveGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request) override; + + future> + RemoveGroupMigration( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request) + override; + + future> + CreateTargetProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) override; + StatusOr UpdateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) + override; + + future> + UpdateTargetProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) override; + StatusOr DeleteTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) + override; + + future> + DeleteTargetProject(google::cloud::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..25552090bffe0 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,30 @@ VmMigrationTracingConnection::CreateSource( return internal::EndSpan(std::move(span), child_->CreateSource(request)); } +StatusOr +VmMigrationTracingConnection::CreateSource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateSource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request) { @@ -71,6 +95,30 @@ VmMigrationTracingConnection::UpdateSource( return internal::EndSpan(std::move(span), child_->UpdateSource(request)); } +StatusOr +VmMigrationTracingConnection::UpdateSource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpdateSource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteSource( google::cloud::vmmigration::v1::DeleteSourceRequest const& request) { @@ -80,6 +128,30 @@ VmMigrationTracingConnection::DeleteSource( return internal::EndSpan(std::move(span), child_->DeleteSource(request)); } +StatusOr +VmMigrationTracingConnection::DeleteSource( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteSource( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VmMigrationTracingConnection::FetchInventory( google::cloud::vmmigration::v1::FetchInventoryRequest const& request) { @@ -122,6 +194,31 @@ VmMigrationTracingConnection::CreateUtilizationReport( child_->CreateUtilizationReport(request)); } +StatusOr +VmMigrationTracingConnection::CreateUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateUtilizationReport( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& @@ -133,6 +230,31 @@ VmMigrationTracingConnection::DeleteUtilizationReport( child_->DeleteUtilizationReport(request)); } +StatusOr +VmMigrationTracingConnection::DeleteUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteUtilizationReport( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListDatacenterConnectors( google::cloud::vmmigration::v1::ListDatacenterConnectorsRequest request) { @@ -166,6 +288,31 @@ VmMigrationTracingConnection::CreateDatacenterConnector( child_->CreateDatacenterConnector(request)); } +StatusOr +VmMigrationTracingConnection::CreateDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateDatacenterConnector( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& @@ -177,6 +324,31 @@ VmMigrationTracingConnection::DeleteDatacenterConnector( child_->DeleteDatacenterConnector(request)); } +StatusOr +VmMigrationTracingConnection::DeleteDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteDatacenterConnector( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) { @@ -186,6 +358,30 @@ VmMigrationTracingConnection::UpgradeAppliance( return internal::EndSpan(std::move(span), child_->UpgradeAppliance(request)); } +StatusOr +VmMigrationTracingConnection::UpgradeAppliance( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpgradeAppliance( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) { @@ -195,6 +391,30 @@ VmMigrationTracingConnection::CreateMigratingVm( return internal::EndSpan(std::move(span), child_->CreateMigratingVm(request)); } +StatusOr +VmMigrationTracingConnection::CreateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateMigratingVm( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListMigratingVms( google::cloud::vmmigration::v1::ListMigratingVmsRequest request) { @@ -225,6 +445,30 @@ VmMigrationTracingConnection::UpdateMigratingVm( return internal::EndSpan(std::move(span), child_->UpdateMigratingVm(request)); } +StatusOr +VmMigrationTracingConnection::UpdateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpdateMigratingVm( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) { @@ -234,6 +478,30 @@ VmMigrationTracingConnection::DeleteMigratingVm( return internal::EndSpan(std::move(span), child_->DeleteMigratingVm(request)); } +StatusOr +VmMigrationTracingConnection::DeleteMigratingVm( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteMigratingVm( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::StartMigration( google::cloud::vmmigration::v1::StartMigrationRequest const& request) { @@ -243,6 +511,30 @@ VmMigrationTracingConnection::StartMigration( return internal::EndSpan(std::move(span), child_->StartMigration(request)); } +StatusOr +VmMigrationTracingConnection::StartMigration( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::StartMigration( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::ResumeMigration( google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) { @@ -252,6 +544,30 @@ VmMigrationTracingConnection::ResumeMigration( return internal::EndSpan(std::move(span), child_->ResumeMigration(request)); } +StatusOr +VmMigrationTracingConnection::ResumeMigration( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::ResumeMigration( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::PauseMigration( google::cloud::vmmigration::v1::PauseMigrationRequest const& request) { @@ -261,6 +577,30 @@ VmMigrationTracingConnection::PauseMigration( return internal::EndSpan(std::move(span), child_->PauseMigration(request)); } +StatusOr +VmMigrationTracingConnection::PauseMigration( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::PauseMigration( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) { @@ -270,6 +610,30 @@ VmMigrationTracingConnection::FinalizeMigration( return internal::EndSpan(std::move(span), child_->FinalizeMigration(request)); } +StatusOr +VmMigrationTracingConnection::FinalizeMigration( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::FinalizeMigration( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) { @@ -279,6 +643,30 @@ VmMigrationTracingConnection::CreateCloneJob( return internal::EndSpan(std::move(span), child_->CreateCloneJob(request)); } +StatusOr +VmMigrationTracingConnection::CreateCloneJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateCloneJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::CancelCloneJob( google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) { @@ -288,6 +676,30 @@ VmMigrationTracingConnection::CancelCloneJob( return internal::EndSpan(std::move(span), child_->CancelCloneJob(request)); } +StatusOr +VmMigrationTracingConnection::CancelCloneJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CancelCloneJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListCloneJobs( google::cloud::vmmigration::v1::ListCloneJobsRequest request) { @@ -317,6 +729,30 @@ VmMigrationTracingConnection::CreateCutoverJob( return internal::EndSpan(std::move(span), child_->CreateCutoverJob(request)); } +StatusOr +VmMigrationTracingConnection::CreateCutoverJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateCutoverJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) { @@ -326,6 +762,30 @@ VmMigrationTracingConnection::CancelCutoverJob( return internal::EndSpan(std::move(span), child_->CancelCutoverJob(request)); } +StatusOr +VmMigrationTracingConnection::CancelCutoverJob( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CancelCutoverJob( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListCutoverJobs( google::cloud::vmmigration::v1::ListCutoverJobsRequest request) { @@ -376,6 +836,30 @@ VmMigrationTracingConnection::CreateGroup( return internal::EndSpan(std::move(span), child_->CreateGroup(request)); } +StatusOr +VmMigrationTracingConnection::CreateGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const& request) { @@ -385,6 +869,30 @@ VmMigrationTracingConnection::UpdateGroup( return internal::EndSpan(std::move(span), child_->UpdateGroup(request)); } +StatusOr +VmMigrationTracingConnection::UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpdateGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteGroup( google::cloud::vmmigration::v1::DeleteGroupRequest const& request) { @@ -394,6 +902,30 @@ VmMigrationTracingConnection::DeleteGroup( return internal::EndSpan(std::move(span), child_->DeleteGroup(request)); } +StatusOr +VmMigrationTracingConnection::DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteGroup( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) { @@ -403,6 +935,30 @@ VmMigrationTracingConnection::AddGroupMigration( return internal::EndSpan(std::move(span), child_->AddGroupMigration(request)); } +StatusOr +VmMigrationTracingConnection::AddGroupMigration( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::AddGroupMigration( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& @@ -414,6 +970,31 @@ VmMigrationTracingConnection::RemoveGroupMigration( child_->RemoveGroupMigration(request)); } +StatusOr +VmMigrationTracingConnection::RemoveGroupMigration( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::RemoveGroupMigration( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmMigrationTracingConnection::ListTargetProjects( google::cloud::vmmigration::v1::ListTargetProjectsRequest request) { @@ -445,6 +1026,30 @@ VmMigrationTracingConnection::CreateTargetProject( child_->CreateTargetProject(request)); } +StatusOr +VmMigrationTracingConnection::CreateTargetProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::CreateTargetProject( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) { @@ -455,6 +1060,30 @@ VmMigrationTracingConnection::UpdateTargetProject( child_->UpdateTargetProject(request)); } +StatusOr +VmMigrationTracingConnection::UpdateTargetProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::UpdateTargetProject( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmMigrationTracingConnection::DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) { @@ -465,6 +1094,30 @@ VmMigrationTracingConnection::DeleteTargetProject( child_->DeleteTargetProject(request)); } +StatusOr +VmMigrationTracingConnection::DeleteTargetProject( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmMigrationTracingConnection::DeleteTargetProject( + google::cloud::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(google::cloud::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..6fb1adbaf3d7c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request) + override; + + future> CreateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request) override; + StatusOr UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request) + override; + + future> UpdateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteSource(google::cloud::vmmigration::v1::DeleteSourceRequest const& request) override; + StatusOr DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request) + override; + + future> + DeleteSource(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request) override; + + future> + CreateUtilizationReport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& request) override; + StatusOr DeleteUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request) override; + + future> + DeleteUtilizationReport( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request) override; + + future> + CreateDatacenterConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& request) override; + StatusOr DeleteDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request) override; + + future> + DeleteDatacenterConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) override; + StatusOr UpgradeAppliance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request) + override; + + future> + UpgradeAppliance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) override; + StatusOr CreateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request) + override; + + future> + CreateMigratingVm(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request) + override; + + future> + UpdateMigratingVm(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) override; + StatusOr DeleteMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request) + override; + + future> + DeleteMigratingVm(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartMigration(google::cloud::vmmigration::v1::StartMigrationRequest const& request) override; + StatusOr StartMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request) + override; + + future> + StartMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResumeMigration(google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) override; + StatusOr ResumeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request) + override; + + future> + ResumeMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> PauseMigration(google::cloud::vmmigration::v1::PauseMigrationRequest const& request) override; + StatusOr PauseMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request) + override; + + future> + PauseMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) override; + StatusOr FinalizeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request) + override; + + future> + FinalizeMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) override; + StatusOr CreateCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request) + override; + + future> CreateCloneJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelCloneJob(google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) override; + StatusOr CancelCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request) + override; + + future> + CancelCloneJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request) + override; + + future> CreateCutoverJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) override; + StatusOr CancelCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request) + override; + + future> + CancelCutoverJob(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request) + override; + + future> CreateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const& request) override; + StatusOr UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request) + override; + + future> UpdateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteGroup(google::cloud::vmmigration::v1::DeleteGroupRequest const& request) override; + StatusOr DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request) + override; + + future> + DeleteGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) override; + StatusOr AddGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request) + override; + + future> + AddGroupMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& request) override; + StatusOr RemoveGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request) override; + + future> + RemoveGroupMigration( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request) + override; + + future> + CreateTargetProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) override; + StatusOr UpdateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request) + override; + + future> + UpdateTargetProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) override; + StatusOr DeleteTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request) + override; + + future> + DeleteTargetProject(google::cloud::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..e824ceaecefe8 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,54 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::CreateSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateSource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateSource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateSource, (google::cloud::vmmigration::v1::UpdateSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteSource, (google::cloud::vmmigration::v1::DeleteSourceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteSource, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteSource, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, FetchInventory, @@ -97,6 +134,20 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateUtilizationReport, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateUtilizationReport, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteUtilizationReport, @@ -104,6 +155,20 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteUtilizationReport, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteUtilizationReport, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListDatacenterConnectors, @@ -124,6 +189,20 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, CreateDatacenterConnector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateDatacenterConnector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteDatacenterConnector, @@ -131,6 +210,20 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, DeleteDatacenterConnector, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteDatacenterConnector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -138,12 +231,38 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpgradeAppliance, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpgradeAppliance, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateMigratingVm, (google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateMigratingVm, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateMigratingVm, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListMigratingVms, (google::cloud::vmmigration::v1::ListMigratingVmsRequest request), @@ -160,30 +279,94 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateMigratingVm, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateMigratingVm, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteMigratingVm, (google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteMigratingVm, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteMigratingVm, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartMigration, (google::cloud::vmmigration::v1::StartMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartMigration, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + StartMigration, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResumeMigration, (google::cloud::vmmigration::v1::ResumeMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, ResumeMigration, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + ResumeMigration, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, PauseMigration, (google::cloud::vmmigration::v1::PauseMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, PauseMigration, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future>, + PauseMigration, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -191,18 +374,57 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, FinalizeMigration, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + FinalizeMigration, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateCloneJob, (google::cloud::vmmigration::v1::CreateCloneJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCloneJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCloneJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CancelCloneJob, (google::cloud::vmmigration::v1::CancelCloneJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CancelCloneJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request), + (override)); + + MOCK_METHOD( + future>, + CancelCloneJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCloneJobs, (google::cloud::vmmigration::v1::ListCloneJobsRequest request), @@ -219,6 +441,18 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCutoverJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCutoverJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -226,6 +460,20 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CancelCutoverJob, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CancelCutoverJob, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListCutoverJobs, (google::cloud::vmmigration::v1::ListCutoverJobsRequest request), @@ -249,17 +497,54 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::CreateGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateGroup, (google::cloud::vmmigration::v1::UpdateGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteGroup, (google::cloud::vmmigration::v1::DeleteGroupRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteGroup, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteGroup, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -267,6 +552,20 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { (google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, AddGroupMigration, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + AddGroupMigration, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, @@ -275,6 +574,21 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD( + StatusOr, RemoveGroupMigration, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RemoveGroupMigration, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListTargetProjects, @@ -292,12 +606,36 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD(StatusOr, CreateTargetProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateTargetProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateTargetProject, (google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateTargetProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateTargetProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteTargetProject, @@ -305,6 +643,19 @@ class MockVmMigrationConnection : public vmmigration_v1::VmMigrationConnection { request), (override)); + MOCK_METHOD(StatusOr, DeleteTargetProject, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteTargetProject, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListReplicationCycles, diff --git a/google/cloud/vmmigration/v1/vm_migration_client.cc b/google/cloud/vmmigration/v1/vm_migration_client.cc index 3d3ba5caf9551..f900168aa7089 100644 --- a/google/cloud/vmmigration/v1/vm_migration_client.cc +++ b/google/cloud/vmmigration/v1/vm_migration_client.cc @@ -75,6 +75,20 @@ VmMigrationClient::CreateSource( return connection_->CreateSource(request); } +StatusOr VmMigrationClient::CreateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::Source const& source, + std::string const& source_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CreateSourceRequest request; + request.set_parent(parent); + *request.mutable_source() = source; + request.set_source_id(source_id); + return connection_->CreateSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CreateSource( google::cloud::vmmigration::v1::CreateSourceRequest const& request, @@ -83,6 +97,23 @@ VmMigrationClient::CreateSource( return connection_->CreateSource(request); } +StatusOr VmMigrationClient::CreateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CreateSource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateSource(google::cloud::ExperimentalTag{}, operation); +} + future> VmMigrationClient::UpdateSource( google::cloud::vmmigration::v1::Source const& source, @@ -94,6 +125,18 @@ VmMigrationClient::UpdateSource( return connection_->UpdateSource(request); } +StatusOr VmMigrationClient::UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::Source const& source, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::UpdateSourceRequest request; + *request.mutable_source() = source; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::UpdateSource( google::cloud::vmmigration::v1::UpdateSourceRequest const& request, @@ -102,6 +145,23 @@ VmMigrationClient::UpdateSource( return connection_->UpdateSource(request); } +StatusOr VmMigrationClient::UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::UpdateSource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSource(google::cloud::ExperimentalTag{}, operation); +} + future> VmMigrationClient::DeleteSource(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -110,6 +170,16 @@ VmMigrationClient::DeleteSource(std::string const& name, Options opts) { return connection_->DeleteSource(request); } +StatusOr VmMigrationClient::DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::DeleteSourceRequest request; + request.set_name(name); + return connection_->DeleteSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::DeleteSource( google::cloud::vmmigration::v1::DeleteSourceRequest const& request, @@ -118,6 +188,23 @@ VmMigrationClient::DeleteSource( return connection_->DeleteSource(request); } +StatusOr VmMigrationClient::DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSource(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::DeleteSource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteSource(google::cloud::ExperimentalTag{}, operation); +} + StatusOr VmMigrationClient::FetchInventory(std::string const& source, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -180,6 +267,21 @@ VmMigrationClient::CreateUtilizationReport( return connection_->CreateUtilizationReport(request); } +StatusOr +VmMigrationClient::CreateUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::UtilizationReport const& utilization_report, + std::string const& utilization_report_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CreateUtilizationReportRequest request; + request.set_parent(parent); + *request.mutable_utilization_report() = utilization_report; + request.set_utilization_report_id(utilization_report_id); + return connection_->CreateUtilizationReport( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CreateUtilizationReport( google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& @@ -189,6 +291,26 @@ VmMigrationClient::CreateUtilizationReport( return connection_->CreateUtilizationReport(request); } +StatusOr +VmMigrationClient::CreateUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateUtilizationReport( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CreateUtilizationReport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateUtilizationReport(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::DeleteUtilizationReport(std::string const& name, Options opts) { @@ -198,6 +320,18 @@ VmMigrationClient::DeleteUtilizationReport(std::string const& name, return connection_->DeleteUtilizationReport(request); } +StatusOr +VmMigrationClient::DeleteUtilizationReport(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest request; + request.set_name(name); + return connection_->DeleteUtilizationReport( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::DeleteUtilizationReport( google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& @@ -207,6 +341,26 @@ VmMigrationClient::DeleteUtilizationReport( return connection_->DeleteUtilizationReport(request); } +StatusOr +VmMigrationClient::DeleteUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUtilizationReport( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::DeleteUtilizationReport( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteUtilizationReport(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmMigrationClient::ListDatacenterConnectors(std::string const& parent, Options opts) { @@ -256,6 +410,22 @@ VmMigrationClient::CreateDatacenterConnector( return connection_->CreateDatacenterConnector(request); } +StatusOr +VmMigrationClient::CreateDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::DatacenterConnector const& + datacenter_connector, + std::string const& datacenter_connector_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest request; + request.set_parent(parent); + *request.mutable_datacenter_connector() = datacenter_connector; + request.set_datacenter_connector_id(datacenter_connector_id); + return connection_->CreateDatacenterConnector( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CreateDatacenterConnector( google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& @@ -265,6 +435,26 @@ VmMigrationClient::CreateDatacenterConnector( return connection_->CreateDatacenterConnector(request); } +StatusOr +VmMigrationClient::CreateDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDatacenterConnector( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CreateDatacenterConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateDatacenterConnector( + google::cloud::ExperimentalTag{}, operation); +} + future> VmMigrationClient::DeleteDatacenterConnector(std::string const& name, Options opts) { @@ -274,6 +464,18 @@ VmMigrationClient::DeleteDatacenterConnector(std::string const& name, return connection_->DeleteDatacenterConnector(request); } +StatusOr +VmMigrationClient::DeleteDatacenterConnector(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest request; + request.set_name(name); + return connection_->DeleteDatacenterConnector( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::DeleteDatacenterConnector( google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& @@ -283,6 +485,26 @@ VmMigrationClient::DeleteDatacenterConnector( return connection_->DeleteDatacenterConnector(request); } +StatusOr +VmMigrationClient::DeleteDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDatacenterConnector( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::DeleteDatacenterConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteDatacenterConnector( + google::cloud::ExperimentalTag{}, operation); +} + future> VmMigrationClient::UpgradeAppliance( google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request, @@ -291,6 +513,24 @@ VmMigrationClient::UpgradeAppliance( return connection_->UpgradeAppliance(request); } +StatusOr VmMigrationClient::UpgradeAppliance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeAppliance(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::UpgradeAppliance( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpgradeAppliance(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::CreateMigratingVm( std::string const& parent, @@ -304,6 +544,20 @@ VmMigrationClient::CreateMigratingVm( return connection_->CreateMigratingVm(request); } +StatusOr VmMigrationClient::CreateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::MigratingVm const& migrating_vm, + std::string const& migrating_vm_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CreateMigratingVmRequest request; + request.set_parent(parent); + *request.mutable_migrating_vm() = migrating_vm; + request.set_migrating_vm_id(migrating_vm_id); + return connection_->CreateMigratingVm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CreateMigratingVm( google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request, @@ -312,6 +566,24 @@ VmMigrationClient::CreateMigratingVm( return connection_->CreateMigratingVm(request); } +StatusOr VmMigrationClient::CreateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMigratingVm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CreateMigratingVm( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateMigratingVm(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmMigrationClient::ListMigratingVms(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -355,6 +627,18 @@ VmMigrationClient::UpdateMigratingVm( return connection_->UpdateMigratingVm(request); } +StatusOr VmMigrationClient::UpdateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::MigratingVm const& migrating_vm, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::UpdateMigratingVmRequest request; + *request.mutable_migrating_vm() = migrating_vm; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateMigratingVm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::UpdateMigratingVm( google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request, @@ -363,6 +647,24 @@ VmMigrationClient::UpdateMigratingVm( return connection_->UpdateMigratingVm(request); } +StatusOr VmMigrationClient::UpdateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMigratingVm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::UpdateMigratingVm( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateMigratingVm(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::DeleteMigratingVm(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -371,6 +673,16 @@ VmMigrationClient::DeleteMigratingVm(std::string const& name, Options opts) { return connection_->DeleteMigratingVm(request); } +StatusOr VmMigrationClient::DeleteMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::DeleteMigratingVmRequest request; + request.set_name(name); + return connection_->DeleteMigratingVm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::DeleteMigratingVm( google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request, @@ -379,6 +691,24 @@ VmMigrationClient::DeleteMigratingVm( return connection_->DeleteMigratingVm(request); } +StatusOr VmMigrationClient::DeleteMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMigratingVm(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::DeleteMigratingVm( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteMigratingVm(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::StartMigration(std::string const& migrating_vm, Options opts) { @@ -388,6 +718,16 @@ VmMigrationClient::StartMigration(std::string const& migrating_vm, return connection_->StartMigration(request); } +StatusOr VmMigrationClient::StartMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& migrating_vm, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::StartMigrationRequest request; + request.set_migrating_vm(migrating_vm); + return connection_->StartMigration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::StartMigration( google::cloud::vmmigration::v1::StartMigrationRequest const& request, @@ -396,6 +736,24 @@ VmMigrationClient::StartMigration( return connection_->StartMigration(request); } +StatusOr VmMigrationClient::StartMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartMigration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::StartMigration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartMigration(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::ResumeMigration( google::cloud::vmmigration::v1::ResumeMigrationRequest const& request, @@ -404,6 +762,24 @@ VmMigrationClient::ResumeMigration( return connection_->ResumeMigration(request); } +StatusOr VmMigrationClient::ResumeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResumeMigration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::ResumeMigration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResumeMigration(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::PauseMigration( google::cloud::vmmigration::v1::PauseMigrationRequest const& request, @@ -412,6 +788,24 @@ VmMigrationClient::PauseMigration( return connection_->PauseMigration(request); } +StatusOr VmMigrationClient::PauseMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PauseMigration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::PauseMigration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->PauseMigration(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::FinalizeMigration(std::string const& migrating_vm, Options opts) { @@ -421,6 +815,16 @@ VmMigrationClient::FinalizeMigration(std::string const& migrating_vm, return connection_->FinalizeMigration(request); } +StatusOr VmMigrationClient::FinalizeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& migrating_vm, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::FinalizeMigrationRequest request; + request.set_migrating_vm(migrating_vm); + return connection_->FinalizeMigration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::FinalizeMigration( google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request, @@ -429,6 +833,24 @@ VmMigrationClient::FinalizeMigration( return connection_->FinalizeMigration(request); } +StatusOr VmMigrationClient::FinalizeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->FinalizeMigration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::FinalizeMigration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->FinalizeMigration(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::CreateCloneJob( std::string const& parent, @@ -442,6 +864,20 @@ VmMigrationClient::CreateCloneJob( return connection_->CreateCloneJob(request); } +StatusOr VmMigrationClient::CreateCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::CloneJob const& clone_job, + std::string const& clone_job_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CreateCloneJobRequest request; + request.set_parent(parent); + *request.mutable_clone_job() = clone_job; + request.set_clone_job_id(clone_job_id); + return connection_->CreateCloneJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CreateCloneJob( google::cloud::vmmigration::v1::CreateCloneJobRequest const& request, @@ -450,6 +886,24 @@ VmMigrationClient::CreateCloneJob( return connection_->CreateCloneJob(request); } +StatusOr VmMigrationClient::CreateCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCloneJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CreateCloneJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCloneJob(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::CancelCloneJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -458,6 +912,16 @@ VmMigrationClient::CancelCloneJob(std::string const& name, Options opts) { return connection_->CancelCloneJob(request); } +StatusOr VmMigrationClient::CancelCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CancelCloneJobRequest request; + request.set_name(name); + return connection_->CancelCloneJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CancelCloneJob( google::cloud::vmmigration::v1::CancelCloneJobRequest const& request, @@ -466,6 +930,24 @@ VmMigrationClient::CancelCloneJob( return connection_->CancelCloneJob(request); } +StatusOr VmMigrationClient::CancelCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelCloneJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CancelCloneJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelCloneJob(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmMigrationClient::ListCloneJobs(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -511,6 +993,20 @@ VmMigrationClient::CreateCutoverJob( return connection_->CreateCutoverJob(request); } +StatusOr VmMigrationClient::CreateCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::CutoverJob const& cutover_job, + std::string const& cutover_job_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CreateCutoverJobRequest request; + request.set_parent(parent); + *request.mutable_cutover_job() = cutover_job; + request.set_cutover_job_id(cutover_job_id); + return connection_->CreateCutoverJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CreateCutoverJob( google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request, @@ -519,6 +1015,24 @@ VmMigrationClient::CreateCutoverJob( return connection_->CreateCutoverJob(request); } +StatusOr VmMigrationClient::CreateCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCutoverJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CreateCutoverJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCutoverJob(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::CancelCutoverJob(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -527,6 +1041,16 @@ VmMigrationClient::CancelCutoverJob(std::string const& name, Options opts) { return connection_->CancelCutoverJob(request); } +StatusOr VmMigrationClient::CancelCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CancelCutoverJobRequest request; + request.set_name(name); + return connection_->CancelCutoverJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CancelCutoverJob( google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request, @@ -535,6 +1059,24 @@ VmMigrationClient::CancelCutoverJob( return connection_->CancelCutoverJob(request); } +StatusOr VmMigrationClient::CancelCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelCutoverJob(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CancelCutoverJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CancelCutoverJob(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmMigrationClient::ListCutoverJobs(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -610,6 +1152,20 @@ VmMigrationClient::CreateGroup( return connection_->CreateGroup(request); } +StatusOr VmMigrationClient::CreateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::Group const& group, + std::string const& group_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CreateGroupRequest request; + request.set_parent(parent); + *request.mutable_group() = group; + request.set_group_id(group_id); + return connection_->CreateGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CreateGroup( google::cloud::vmmigration::v1::CreateGroupRequest const& request, @@ -618,6 +1174,23 @@ VmMigrationClient::CreateGroup( return connection_->CreateGroup(request); } +StatusOr VmMigrationClient::CreateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CreateGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateGroup(google::cloud::ExperimentalTag{}, operation); +} + future> VmMigrationClient::UpdateGroup( google::cloud::vmmigration::v1::Group const& group, @@ -629,6 +1202,18 @@ VmMigrationClient::UpdateGroup( return connection_->UpdateGroup(request); } +StatusOr VmMigrationClient::UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::Group const& group, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::UpdateGroupRequest request; + *request.mutable_group() = group; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::UpdateGroup( google::cloud::vmmigration::v1::UpdateGroupRequest const& request, @@ -637,6 +1222,23 @@ VmMigrationClient::UpdateGroup( return connection_->UpdateGroup(request); } +StatusOr VmMigrationClient::UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::UpdateGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateGroup(google::cloud::ExperimentalTag{}, operation); +} + future> VmMigrationClient::DeleteGroup(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -645,6 +1247,16 @@ VmMigrationClient::DeleteGroup(std::string const& name, Options opts) { return connection_->DeleteGroup(request); } +StatusOr VmMigrationClient::DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::DeleteGroupRequest request; + request.set_name(name); + return connection_->DeleteGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::DeleteGroup( google::cloud::vmmigration::v1::DeleteGroupRequest const& request, @@ -653,6 +1265,23 @@ VmMigrationClient::DeleteGroup( return connection_->DeleteGroup(request); } +StatusOr VmMigrationClient::DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGroup(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::DeleteGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteGroup(google::cloud::ExperimentalTag{}, operation); +} + future> VmMigrationClient::AddGroupMigration(std::string const& group, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -661,6 +1290,16 @@ VmMigrationClient::AddGroupMigration(std::string const& group, Options opts) { return connection_->AddGroupMigration(request); } +StatusOr VmMigrationClient::AddGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& group, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::AddGroupMigrationRequest request; + request.set_group(group); + return connection_->AddGroupMigration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::AddGroupMigration( google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request, @@ -669,6 +1308,24 @@ VmMigrationClient::AddGroupMigration( return connection_->AddGroupMigration(request); } +StatusOr VmMigrationClient::AddGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddGroupMigration(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::AddGroupMigration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->AddGroupMigration(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::RemoveGroupMigration(std::string const& group, Options opts) { @@ -678,6 +1335,18 @@ VmMigrationClient::RemoveGroupMigration(std::string const& group, return connection_->RemoveGroupMigration(request); } +StatusOr +VmMigrationClient::RemoveGroupMigration(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& group, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest request; + request.set_group(group); + return connection_->RemoveGroupMigration( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::RemoveGroupMigration( google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& request, @@ -686,6 +1355,25 @@ VmMigrationClient::RemoveGroupMigration( return connection_->RemoveGroupMigration(request); } +StatusOr +VmMigrationClient::RemoveGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveGroupMigration( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::RemoveGroupMigration( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RemoveGroupMigration(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmMigrationClient::ListTargetProjects(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -731,6 +1419,20 @@ VmMigrationClient::CreateTargetProject( return connection_->CreateTargetProject(request); } +StatusOr VmMigrationClient::CreateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::TargetProject const& target_project, + std::string const& target_project_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::CreateTargetProjectRequest request; + request.set_parent(parent); + *request.mutable_target_project() = target_project; + request.set_target_project_id(target_project_id); + return connection_->CreateTargetProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::CreateTargetProject( google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request, @@ -739,6 +1441,24 @@ VmMigrationClient::CreateTargetProject( return connection_->CreateTargetProject(request); } +StatusOr VmMigrationClient::CreateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTargetProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::CreateTargetProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateTargetProject(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::UpdateTargetProject( google::cloud::vmmigration::v1::TargetProject const& target_project, @@ -750,6 +1470,18 @@ VmMigrationClient::UpdateTargetProject( return connection_->UpdateTargetProject(request); } +StatusOr VmMigrationClient::UpdateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::TargetProject const& target_project, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::UpdateTargetProjectRequest request; + *request.mutable_target_project() = target_project; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateTargetProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::UpdateTargetProject( google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request, @@ -758,6 +1490,24 @@ VmMigrationClient::UpdateTargetProject( return connection_->UpdateTargetProject(request); } +StatusOr VmMigrationClient::UpdateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTargetProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::UpdateTargetProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateTargetProject(google::cloud::ExperimentalTag{}, + operation); +} + future> VmMigrationClient::DeleteTargetProject(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -766,6 +1516,16 @@ VmMigrationClient::DeleteTargetProject(std::string const& name, Options opts) { return connection_->DeleteTargetProject(request); } +StatusOr VmMigrationClient::DeleteTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmmigration::v1::DeleteTargetProjectRequest request; + request.set_name(name); + return connection_->DeleteTargetProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmMigrationClient::DeleteTargetProject( google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request, @@ -774,6 +1534,24 @@ VmMigrationClient::DeleteTargetProject( return connection_->DeleteTargetProject(request); } +StatusOr VmMigrationClient::DeleteTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetProject(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmMigrationClient::DeleteTargetProject( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteTargetProject(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmMigrationClient::ListReplicationCycles(std::string const& parent, Options opts) { diff --git a/google/cloud/vmmigration/v1/vm_migration_client.h b/google/cloud/vmmigration/v1/vm_migration_client.h index 8454f75be7083..532b156d2603f 100644 --- a/google/cloud/vmmigration/v1/vm_migration_client.h +++ b/google/cloud/vmmigration/v1/vm_migration_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VMMIGRATION_V1_VM_MIGRATION_CLIENT_H #include "google/cloud/vmmigration/v1/vm_migration_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -253,6 +255,12 @@ class VmMigrationClient { google::cloud::vmmigration::v1::Source const& source, std::string const& source_id, Options opts = {}); + StatusOr CreateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::Source const& source, + std::string const& source_id, Options opts = {}); + // clang-format off /// /// Creates a new Source in a given project and location. @@ -291,6 +299,15 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CreateSourceRequest const& request, Options opts = {}); + StatusOr CreateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateSourceRequest const& request, + Options opts = {}); + + future> CreateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Source. @@ -329,6 +346,11 @@ class VmMigrationClient { google::cloud::vmmigration::v1::Source const& source, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::Source const& source, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Source. @@ -367,6 +389,15 @@ class VmMigrationClient { google::cloud::vmmigration::v1::UpdateSourceRequest const& request, Options opts = {}); + StatusOr UpdateSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateSourceRequest const& request, + Options opts = {}); + + future> UpdateSource( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Source. @@ -399,6 +430,10 @@ class VmMigrationClient { future> DeleteSource(std::string const& name, Options opts = {}); + StatusOr DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Source. @@ -438,6 +473,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::DeleteSourceRequest const& request, Options opts = {}); + StatusOr DeleteSource( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteSourceRequest const& request, + Options opts = {}); + + future> + DeleteSource(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// List remote source's inventory of VMs. @@ -679,6 +724,13 @@ class VmMigrationClient { utilization_report, std::string const& utilization_report_id, Options opts = {}); + StatusOr CreateUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::UtilizationReport const& + utilization_report, + std::string const& utilization_report_id, Options opts = {}); + // clang-format off /// /// Creates a new UtilizationReport. @@ -719,6 +771,17 @@ class VmMigrationClient { request, Options opts = {}); + StatusOr CreateUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateUtilizationReportRequest const& + request, + Options opts = {}); + + future> + CreateUtilizationReport(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single Utilization Report. @@ -751,6 +814,10 @@ class VmMigrationClient { future> DeleteUtilizationReport(std::string const& name, Options opts = {}); + StatusOr DeleteUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Utilization Report. @@ -791,6 +858,17 @@ class VmMigrationClient { request, Options opts = {}); + StatusOr DeleteUtilizationReport( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteUtilizationReportRequest const& + request, + Options opts = {}); + + future> + DeleteUtilizationReport(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists DatacenterConnectors in a given Source. @@ -965,6 +1043,13 @@ class VmMigrationClient { datacenter_connector, std::string const& datacenter_connector_id, Options opts = {}); + StatusOr CreateDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::DatacenterConnector const& + datacenter_connector, + std::string const& datacenter_connector_id, Options opts = {}); + // clang-format off /// /// Creates a new DatacenterConnector in a given Source. @@ -1005,6 +1090,17 @@ class VmMigrationClient { request, Options opts = {}); + StatusOr CreateDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateDatacenterConnectorRequest const& + request, + Options opts = {}); + + future> + CreateDatacenterConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single DatacenterConnector. @@ -1037,6 +1133,10 @@ class VmMigrationClient { future> DeleteDatacenterConnector(std::string const& name, Options opts = {}); + StatusOr DeleteDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single DatacenterConnector. @@ -1077,6 +1177,17 @@ class VmMigrationClient { request, Options opts = {}); + StatusOr DeleteDatacenterConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteDatacenterConnectorRequest const& + request, + Options opts = {}); + + future> + DeleteDatacenterConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Upgrades the appliance relate to this DatacenterConnector to the in-place @@ -1117,6 +1228,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request, Options opts = {}); + StatusOr UpgradeAppliance( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpgradeApplianceRequest const& request, + Options opts = {}); + + future> + UpgradeAppliance(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Creates a new MigratingVm in a given Source. @@ -1154,6 +1275,12 @@ class VmMigrationClient { google::cloud::vmmigration::v1::MigratingVm const& migrating_vm, std::string const& migrating_vm_id, Options opts = {}); + StatusOr CreateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::MigratingVm const& migrating_vm, + std::string const& migrating_vm_id, Options opts = {}); + // clang-format off /// /// Creates a new MigratingVm in a given Source. @@ -1193,6 +1320,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request, Options opts = {}); + StatusOr CreateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateMigratingVmRequest const& request, + Options opts = {}); + + future> + CreateMigratingVm(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists MigratingVms in a given Source. @@ -1362,6 +1499,11 @@ class VmMigrationClient { google::cloud::vmmigration::v1::MigratingVm const& migrating_vm, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::MigratingVm const& migrating_vm, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single MigratingVm. @@ -1401,6 +1543,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request, Options opts = {}); + StatusOr UpdateMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateMigratingVmRequest const& request, + Options opts = {}); + + future> + UpdateMigratingVm(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single MigratingVm. @@ -1433,6 +1585,10 @@ class VmMigrationClient { future> DeleteMigratingVm(std::string const& name, Options opts = {}); + StatusOr DeleteMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single MigratingVm. @@ -1472,6 +1628,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request, Options opts = {}); + StatusOr DeleteMigratingVm( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteMigratingVmRequest const& request, + Options opts = {}); + + future> + DeleteMigratingVm(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts migration for a VM. Starts the process of uploading @@ -1505,6 +1671,10 @@ class VmMigrationClient { future> StartMigration(std::string const& migrating_vm, Options opts = {}); + StatusOr StartMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& migrating_vm, Options opts = {}); + // clang-format off /// /// Starts migration for a VM. Starts the process of uploading @@ -1545,6 +1715,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::StartMigrationRequest const& request, Options opts = {}); + StatusOr StartMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::StartMigrationRequest const& request, + Options opts = {}); + + future> + StartMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resumes a migration for a VM. When called on a paused migration, will start @@ -1587,6 +1767,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::ResumeMigrationRequest const& request, Options opts = {}); + StatusOr ResumeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::ResumeMigrationRequest const& request, + Options opts = {}); + + future> + ResumeMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Pauses a migration for a VM. If cycle tasks are running they will be @@ -1628,6 +1818,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::PauseMigrationRequest const& request, Options opts = {}); + StatusOr PauseMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::PauseMigrationRequest const& request, + Options opts = {}); + + future> + PauseMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Marks a migration as completed, deleting migration resources that are no @@ -1661,6 +1861,10 @@ class VmMigrationClient { future> FinalizeMigration(std::string const& migrating_vm, Options opts = {}); + StatusOr FinalizeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& migrating_vm, Options opts = {}); + // clang-format off /// /// Marks a migration as completed, deleting migration resources that are no @@ -1701,6 +1905,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request, Options opts = {}); + StatusOr FinalizeMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::FinalizeMigrationRequest const& request, + Options opts = {}); + + future> + FinalizeMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Initiates a Clone of a specific migrating VM. @@ -1737,6 +1951,12 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CloneJob const& clone_job, std::string const& clone_job_id, Options opts = {}); + StatusOr CreateCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::CloneJob const& clone_job, + std::string const& clone_job_id, Options opts = {}); + // clang-format off /// /// Initiates a Clone of a specific migrating VM. @@ -1775,6 +1995,15 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CreateCloneJobRequest const& request, Options opts = {}); + StatusOr CreateCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCloneJobRequest const& request, + Options opts = {}); + + future> CreateCloneJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Initiates the cancellation of a running clone job. @@ -1807,6 +2036,10 @@ class VmMigrationClient { future> CancelCloneJob(std::string const& name, Options opts = {}); + StatusOr CancelCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Initiates the cancellation of a running clone job. @@ -1846,6 +2079,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CancelCloneJobRequest const& request, Options opts = {}); + StatusOr CancelCloneJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCloneJobRequest const& request, + Options opts = {}); + + future> + CancelCloneJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists CloneJobs of a given migrating VM. @@ -2014,6 +2257,12 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CutoverJob const& cutover_job, std::string const& cutover_job_id, Options opts = {}); + StatusOr CreateCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::CutoverJob const& cutover_job, + std::string const& cutover_job_id, Options opts = {}); + // clang-format off /// /// Initiates a Cutover of a specific migrating VM. @@ -2054,6 +2303,15 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request, Options opts = {}); + StatusOr CreateCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateCutoverJobRequest const& request, + Options opts = {}); + + future> CreateCutoverJob( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Initiates the cancellation of a running cutover job. @@ -2086,6 +2344,10 @@ class VmMigrationClient { future> CancelCutoverJob(std::string const& name, Options opts = {}); + StatusOr CancelCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Initiates the cancellation of a running cutover job. @@ -2125,6 +2387,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request, Options opts = {}); + StatusOr CancelCutoverJob( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CancelCutoverJobRequest const& request, + Options opts = {}); + + future> + CancelCutoverJob(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists CutoverJobs of a given migrating VM. @@ -2421,6 +2693,12 @@ class VmMigrationClient { google::cloud::vmmigration::v1::Group const& group, std::string const& group_id, Options opts = {}); + StatusOr CreateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::Group const& group, + std::string const& group_id, Options opts = {}); + // clang-format off /// /// Creates a new Group in a given project and location. @@ -2459,6 +2737,15 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CreateGroupRequest const& request, Options opts = {}); + StatusOr CreateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateGroupRequest const& request, + Options opts = {}); + + future> CreateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Group. @@ -2497,6 +2784,11 @@ class VmMigrationClient { google::cloud::vmmigration::v1::Group const& group, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::Group const& group, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single Group. @@ -2535,6 +2827,15 @@ class VmMigrationClient { google::cloud::vmmigration::v1::UpdateGroupRequest const& request, Options opts = {}); + StatusOr UpdateGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateGroupRequest const& request, + Options opts = {}); + + future> UpdateGroup( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a single Group. @@ -2567,6 +2868,10 @@ class VmMigrationClient { future> DeleteGroup(std::string const& name, Options opts = {}); + StatusOr DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single Group. @@ -2605,6 +2910,16 @@ class VmMigrationClient { DeleteGroup(google::cloud::vmmigration::v1::DeleteGroupRequest const& request, Options opts = {}); + StatusOr DeleteGroup( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteGroupRequest const& request, + Options opts = {}); + + future> + DeleteGroup(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Adds a MigratingVm to a Group. @@ -2637,6 +2952,10 @@ class VmMigrationClient { future> AddGroupMigration(std::string const& group, Options opts = {}); + StatusOr AddGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& group, Options opts = {}); + // clang-format off /// /// Adds a MigratingVm to a Group. @@ -2676,6 +2995,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request, Options opts = {}); + StatusOr AddGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::AddGroupMigrationRequest const& request, + Options opts = {}); + + future> + AddGroupMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Removes a MigratingVm from a Group. @@ -2708,6 +3037,10 @@ class VmMigrationClient { future> RemoveGroupMigration(std::string const& group, Options opts = {}); + StatusOr RemoveGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& group, Options opts = {}); + // clang-format off /// /// Removes a MigratingVm from a Group. @@ -2748,6 +3081,17 @@ class VmMigrationClient { request, Options opts = {}); + StatusOr RemoveGroupMigration( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::RemoveGroupMigrationRequest const& + request, + Options opts = {}); + + future> + RemoveGroupMigration(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists TargetProjects in a given project. @@ -2930,6 +3274,12 @@ class VmMigrationClient { google::cloud::vmmigration::v1::TargetProject const& target_project, std::string const& target_project_id, Options opts = {}); + StatusOr CreateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmmigration::v1::TargetProject const& target_project, + std::string const& target_project_id, Options opts = {}); + // clang-format off /// /// Creates a new TargetProject in a given project. @@ -2972,6 +3322,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request, Options opts = {}); + StatusOr CreateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::CreateTargetProjectRequest const& request, + Options opts = {}); + + future> + CreateTargetProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single TargetProject. @@ -3014,6 +3374,11 @@ class VmMigrationClient { google::cloud::vmmigration::v1::TargetProject const& target_project, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::TargetProject const& target_project, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single TargetProject. @@ -3056,6 +3421,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request, Options opts = {}); + StatusOr UpdateTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::UpdateTargetProjectRequest const& request, + Options opts = {}); + + future> + UpdateTargetProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single TargetProject. @@ -3091,6 +3466,10 @@ class VmMigrationClient { future> DeleteTargetProject(std::string const& name, Options opts = {}); + StatusOr DeleteTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single TargetProject. @@ -3133,6 +3512,16 @@ class VmMigrationClient { google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request, Options opts = {}); + StatusOr DeleteTargetProject( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmmigration::v1::DeleteTargetProjectRequest const& request, + Options opts = {}); + + future> + DeleteTargetProject(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists ReplicationCycles in a given MigratingVM. 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..f94d43f324e4a 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,60 @@ VmwareEngineConnectionImpl::CreatePrivateCloud( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +250,60 @@ VmwareEngineConnectionImpl::UpdatePrivateCloud( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +344,60 @@ VmwareEngineConnectionImpl::DeletePrivateCloud( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +439,61 @@ VmwareEngineConnectionImpl::UndeletePrivateCloud( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UndeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +583,60 @@ VmwareEngineConnectionImpl::CreateCluster( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +677,60 @@ VmwareEngineConnectionImpl::UpdateCluster( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +771,60 @@ VmwareEngineConnectionImpl::DeleteCluster( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1006,65 @@ VmwareEngineConnectionImpl::CreateExternalAddress( polling_policy(*current), __func__); } -future> -VmwareEngineConnectionImpl::UpdateExternalAddress( - google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& +StatusOr +VmwareEngineConnectionImpl::CreateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1103,62 @@ VmwareEngineConnectionImpl::UpdateExternalAddress( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1200,62 @@ VmwareEngineConnectionImpl::DeleteExternalAddress( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteExternalAddress( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1343,59 @@ VmwareEngineConnectionImpl::UpdateSubnet( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +1489,61 @@ VmwareEngineConnectionImpl::CreateExternalAccessRule( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1584,61 @@ VmwareEngineConnectionImpl::UpdateExternalAccessRule( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1679,84 @@ VmwareEngineConnectionImpl::DeleteExternalAccessRule( polling_policy(*current), __func__); } -StreamRange -VmwareEngineConnectionImpl::ListLoggingServers( - google::cloud::vmwareengine::v1::ListLoggingServersRequest request) { - request.clear_page_token(); +StatusOr +VmwareEngineConnectionImpl::DeleteExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1824,61 @@ VmwareEngineConnectionImpl::CreateLoggingServer( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1920,61 @@ VmwareEngineConnectionImpl::UpdateLoggingServer( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2016,61 @@ VmwareEngineConnectionImpl::DeleteLoggingServer( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteLoggingServer( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2193,61 @@ VmwareEngineConnectionImpl::ResetNsxCredentials( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::ResetNsxCredentials( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2289,62 @@ VmwareEngineConnectionImpl::ResetVcenterCredentials( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::ResetVcenterCredentials( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2401,80 @@ VmwareEngineConnectionImpl::UpdateDnsForwarding( polling_policy(*current), __func__); } -StatusOr -VmwareEngineConnectionImpl::GetNetworkPeering( - google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& request) { +StatusOr +VmwareEngineConnectionImpl::UpdateDnsForwarding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2547,61 @@ VmwareEngineConnectionImpl::CreateNetworkPeering( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2643,61 @@ VmwareEngineConnectionImpl::DeleteNetworkPeering( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2739,61 @@ VmwareEngineConnectionImpl::UpdateNetworkPeering( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +2870,62 @@ VmwareEngineConnectionImpl::CreateHcxActivationKey( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateHcxActivationKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +3069,41 @@ VmwareEngineConnectionImpl::CreateNetworkPolicy( polling_policy(*current), __func__); } -future> -VmwareEngineConnectionImpl::UpdateNetworkPolicy( - google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& +StatusOr +VmwareEngineConnectionImpl::CreateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +3121,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 +3159,175 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +3412,61 @@ VmwareEngineConnectionImpl::CreateManagementDnsZoneBinding( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +3508,61 @@ VmwareEngineConnectionImpl::UpdateManagementDnsZoneBinding( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +3604,61 @@ VmwareEngineConnectionImpl::DeleteManagementDnsZoneBinding( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +3700,231 @@ VmwareEngineConnectionImpl::RepairManagementDnsZoneBinding( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +3942,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 +3979,47 @@ 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( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +4037,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 +4134,62 @@ VmwareEngineConnectionImpl::CreatePrivateConnection( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +4283,62 @@ VmwareEngineConnectionImpl::UpdatePrivateConnection( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::UpdatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +4380,62 @@ VmwareEngineConnectionImpl::DeletePrivateConnection( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +4517,62 @@ VmwareEngineConnectionImpl::GrantDnsBindPermission( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::GrantDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +4630,62 @@ VmwareEngineConnectionImpl::RevokeDnsBindPermission( polling_policy(*current), __func__); } +StatusOr +VmwareEngineConnectionImpl::RevokeDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..ed6cb3de102d3 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request) + override; + + future> + CreatePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) override; + StatusOr UpdatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) + override; + + future> + UpdatePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) override; + StatusOr DeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) + override; + + future> + DeletePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& request) override; + StatusOr UndeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request) override; + + future> + UndeletePrivateCloud( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request) override; + + future> + CreateExternalAddress( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& request) override; + StatusOr UpdateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request) override; + + future> + UpdateExternalAddress( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& request) override; + StatusOr DeleteExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request) override; + + future> + DeleteExternalAddress( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) + override; + + future> UpdateSubnet( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request) override; + + future> + CreateExternalAccessRule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& request) override; + StatusOr UpdateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request) override; + + future> + UpdateExternalAccessRule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteExternalAccessRule( google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& request) override; + StatusOr DeleteExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request) override; + + future> + DeleteExternalAccessRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request) override; + + future> + CreateLoggingServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& request) override; + StatusOr UpdateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request) override; + + future> + UpdateLoggingServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& request) override; + StatusOr DeleteLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request) override; + + future> + DeleteLoggingServer(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request) override; + + future> + ResetNsxCredentials(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& request) override; + StatusOr ResetVcenterCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request) override; + + future> + ResetVcenterCredentials( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request) override; + + future> + UpdateDnsForwarding(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request) override; + + future> + CreateNetworkPeering( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& request) override; + StatusOr DeleteNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request) override; + + future> + DeleteNetworkPeering( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& request) override; + StatusOr UpdateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request) override; + + future> + UpdateNetworkPeering( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request) override; + + future> + CreateHcxActivationKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request) override; + + future> + CreateNetworkPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request) override; + StatusOr UpdateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request) override; + + future> + UpdateNetworkPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& request) override; + StatusOr DeleteNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) override; + + future> + DeleteNetworkPolicy(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request) override; + + future> + CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: UpdateManagementDnsZoneBindingRequest const& request) override; + StatusOr UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request) override; + + future> + UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: DeleteManagementDnsZoneBindingRequest const& request) override; + StatusOr DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request) override; + + future> + DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: RepairManagementDnsZoneBindingRequest const& request) override; + StatusOr RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request) override; + + future> + RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& request) override; + StatusOr CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request) override; + + future> + CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& request) override; + StatusOr UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request) override; + + future> + UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& request) override; + StatusOr DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request) override; + + future> + DeleteVmwareEngineNetwork( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request) override; + + future> + UpdatePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& request) override; + StatusOr DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request) override; + + future> + GrantDnsBindPermission( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request) override; + + future> + RevokeDnsBindPermission( + google::cloud::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..49a0d6673add9 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,30 @@ VmwareEngineTracingConnection::CreatePrivateCloud( child_->CreatePrivateCloud(request)); } +StatusOr +VmwareEngineTracingConnection::CreatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreatePrivateCloud( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) { @@ -74,6 +98,30 @@ VmwareEngineTracingConnection::UpdatePrivateCloud( child_->UpdatePrivateCloud(request)); } +StatusOr +VmwareEngineTracingConnection::UpdatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdatePrivateCloud( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) { @@ -84,6 +132,30 @@ VmwareEngineTracingConnection::DeletePrivateCloud( child_->DeletePrivateCloud(request)); } +StatusOr +VmwareEngineTracingConnection::DeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeletePrivateCloud( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& @@ -95,6 +167,31 @@ VmwareEngineTracingConnection::UndeletePrivateCloud( child_->UndeletePrivateCloud(request)); } +StatusOr +VmwareEngineTracingConnection::UndeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UndeletePrivateCloud( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListClusters( google::cloud::vmwareengine::v1::ListClustersRequest request) { @@ -124,6 +221,30 @@ VmwareEngineTracingConnection::CreateCluster( return internal::EndSpan(std::move(span), child_->CreateCluster(request)); } +StatusOr +VmwareEngineTracingConnection::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) { @@ -133,6 +254,30 @@ VmwareEngineTracingConnection::UpdateCluster( return internal::EndSpan(std::move(span), child_->UpdateCluster(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteCluster( google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) { @@ -142,6 +287,30 @@ VmwareEngineTracingConnection::DeleteCluster( return internal::EndSpan(std::move(span), child_->DeleteCluster(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteCluster( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListNodes( google::cloud::vmwareengine::v1::ListNodesRequest request) { @@ -208,6 +377,31 @@ VmwareEngineTracingConnection::CreateExternalAddress( child_->CreateExternalAddress(request)); } +StatusOr +VmwareEngineTracingConnection::CreateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateExternalAddress( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& @@ -219,6 +413,31 @@ VmwareEngineTracingConnection::UpdateExternalAddress( child_->UpdateExternalAddress(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateExternalAddress( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& @@ -230,6 +449,31 @@ VmwareEngineTracingConnection::DeleteExternalAddress( child_->DeleteExternalAddress(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteExternalAddress( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteExternalAddress( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListSubnets( google::cloud::vmwareengine::v1::ListSubnetsRequest request) { @@ -259,6 +503,30 @@ VmwareEngineTracingConnection::UpdateSubnet( return internal::EndSpan(std::move(span), child_->UpdateSubnet(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateSubnet( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListExternalAccessRules( google::cloud::vmwareengine::v1::ListExternalAccessRulesRequest request) { @@ -292,6 +560,31 @@ VmwareEngineTracingConnection::CreateExternalAccessRule( child_->CreateExternalAccessRule(request)); } +StatusOr +VmwareEngineTracingConnection::CreateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateExternalAccessRule( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& @@ -303,6 +596,31 @@ VmwareEngineTracingConnection::UpdateExternalAccessRule( child_->UpdateExternalAccessRule(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateExternalAccessRule( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteExternalAccessRule( google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& @@ -314,6 +632,31 @@ VmwareEngineTracingConnection::DeleteExternalAccessRule( child_->DeleteExternalAccessRule(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteExternalAccessRule( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListLoggingServers( google::cloud::vmwareengine::v1::ListLoggingServersRequest request) { @@ -346,6 +689,31 @@ VmwareEngineTracingConnection::CreateLoggingServer( child_->CreateLoggingServer(request)); } +StatusOr +VmwareEngineTracingConnection::CreateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateLoggingServer( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& @@ -357,6 +725,31 @@ VmwareEngineTracingConnection::UpdateLoggingServer( child_->UpdateLoggingServer(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateLoggingServer( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& @@ -368,6 +761,31 @@ VmwareEngineTracingConnection::DeleteLoggingServer( child_->DeleteLoggingServer(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteLoggingServer( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteLoggingServer( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListNodeTypes( google::cloud::vmwareengine::v1::ListNodeTypesRequest request) { @@ -419,6 +837,31 @@ VmwareEngineTracingConnection::ResetNsxCredentials( child_->ResetNsxCredentials(request)); } +StatusOr +VmwareEngineTracingConnection::ResetNsxCredentials( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::ResetNsxCredentials( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& @@ -430,10 +873,35 @@ VmwareEngineTracingConnection::ResetVcenterCredentials( child_->ResetVcenterCredentials(request)); } -StatusOr -VmwareEngineTracingConnection::GetDnsForwarding( - google::cloud::vmwareengine::v1::GetDnsForwardingRequest const& request) { - auto span = internal::MakeSpan( +StatusOr +VmwareEngineTracingConnection::ResetVcenterCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request) { + auto span = internal::MakeSpan( + "vmwareengine_v1::VmwareEngineConnection::ResetVcenterCredentials"); + opentelemetry::trace::Scope scope(span); + return internal::EndSpan(*span, child_->ResetVcenterCredentials( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::ResetVcenterCredentials( + google::cloud::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( + google::cloud::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 +918,31 @@ VmwareEngineTracingConnection::UpdateDnsForwarding( child_->UpdateDnsForwarding(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateDnsForwarding( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateDnsForwarding( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VmwareEngineTracingConnection::GetNetworkPeering( google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& request) { @@ -482,6 +975,31 @@ VmwareEngineTracingConnection::CreateNetworkPeering( child_->CreateNetworkPeering(request)); } +StatusOr +VmwareEngineTracingConnection::CreateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateNetworkPeering( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& @@ -493,6 +1011,31 @@ VmwareEngineTracingConnection::DeleteNetworkPeering( child_->DeleteNetworkPeering(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteNetworkPeering( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& @@ -504,6 +1047,31 @@ VmwareEngineTracingConnection::UpdateNetworkPeering( child_->UpdateNetworkPeering(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateNetworkPeering( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListPeeringRoutes( google::cloud::vmwareengine::v1::ListPeeringRoutesRequest request) { @@ -527,6 +1095,31 @@ VmwareEngineTracingConnection::CreateHcxActivationKey( child_->CreateHcxActivationKey(request)); } +StatusOr +VmwareEngineTracingConnection::CreateHcxActivationKey( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateHcxActivationKey( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListHcxActivationKeys( google::cloud::vmwareengine::v1::ListHcxActivationKeysRequest request) { @@ -581,6 +1174,31 @@ VmwareEngineTracingConnection::CreateNetworkPolicy( child_->CreateNetworkPolicy(request)); } +StatusOr +VmwareEngineTracingConnection::CreateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateNetworkPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& @@ -592,6 +1210,31 @@ VmwareEngineTracingConnection::UpdateNetworkPolicy( child_->UpdateNetworkPolicy(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateNetworkPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& @@ -603,6 +1246,31 @@ VmwareEngineTracingConnection::DeleteNetworkPolicy( child_->DeleteNetworkPolicy(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteNetworkPolicy( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListManagementDnsZoneBindings( google::cloud::vmwareengine::v1::ListManagementDnsZoneBindingsRequest @@ -638,6 +1306,33 @@ VmwareEngineTracingConnection::CreateManagementDnsZoneBinding( child_->CreateManagementDnsZoneBinding(request)); } +StatusOr +VmwareEngineTracingConnection::CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateManagementDnsZoneBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -650,6 +1345,33 @@ VmwareEngineTracingConnection::UpdateManagementDnsZoneBinding( child_->UpdateManagementDnsZoneBinding(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateManagementDnsZoneBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -662,6 +1384,33 @@ VmwareEngineTracingConnection::DeleteManagementDnsZoneBinding( child_->DeleteManagementDnsZoneBinding(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteManagementDnsZoneBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -674,6 +1423,33 @@ VmwareEngineTracingConnection::RepairManagementDnsZoneBinding( child_->RepairManagementDnsZoneBinding(request)); } +StatusOr +VmwareEngineTracingConnection::RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::RepairManagementDnsZoneBinding( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& @@ -685,6 +1461,31 @@ VmwareEngineTracingConnection::CreateVmwareEngineNetwork( child_->CreateVmwareEngineNetwork(request)); } +StatusOr +VmwareEngineTracingConnection::CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreateVmwareEngineNetwork( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& @@ -696,6 +1497,31 @@ VmwareEngineTracingConnection::UpdateVmwareEngineNetwork( child_->UpdateVmwareEngineNetwork(request)); } +StatusOr +VmwareEngineTracingConnection::UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdateVmwareEngineNetwork( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& @@ -707,6 +1533,31 @@ VmwareEngineTracingConnection::DeleteVmwareEngineNetwork( child_->DeleteVmwareEngineNetwork(request)); } +StatusOr +VmwareEngineTracingConnection::DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeleteVmwareEngineNetwork( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VmwareEngineTracingConnection::GetVmwareEngineNetwork( google::cloud::vmwareengine::v1::GetVmwareEngineNetworkRequest const& @@ -740,6 +1591,31 @@ VmwareEngineTracingConnection::CreatePrivateConnection( child_->CreatePrivateConnection(request)); } +StatusOr +VmwareEngineTracingConnection::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VmwareEngineTracingConnection::GetPrivateConnection( google::cloud::vmwareengine::v1::GetPrivateConnectionRequest const& @@ -773,6 +1649,31 @@ VmwareEngineTracingConnection::UpdatePrivateConnection( child_->UpdatePrivateConnection(request)); } +StatusOr +VmwareEngineTracingConnection::UpdatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::UpdatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> VmwareEngineTracingConnection::DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& @@ -784,6 +1685,31 @@ VmwareEngineTracingConnection::DeletePrivateConnection( child_->DeletePrivateConnection(request)); } +StatusOr +VmwareEngineTracingConnection::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::DeletePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StreamRange VmwareEngineTracingConnection::ListPrivateConnectionPeeringRoutes( google::cloud::vmwareengine::v1::ListPrivateConnectionPeeringRoutesRequest @@ -809,6 +1735,31 @@ VmwareEngineTracingConnection::GrantDnsBindPermission( child_->GrantDnsBindPermission(request)); } +StatusOr +VmwareEngineTracingConnection::GrantDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::GrantDnsBindPermission( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VmwareEngineTracingConnection::GetDnsBindPermission( google::cloud::vmwareengine::v1::GetDnsBindPermissionRequest const& @@ -830,6 +1781,31 @@ VmwareEngineTracingConnection::RevokeDnsBindPermission( child_->RevokeDnsBindPermission(request)); } +StatusOr +VmwareEngineTracingConnection::RevokeDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VmwareEngineTracingConnection::RevokeDnsBindPermission( + google::cloud::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( + google::cloud::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..d8ee8067df10e 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request) + override; + + future> + CreatePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) override; + StatusOr UpdatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request) + override; + + future> + UpdatePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) override; + StatusOr DeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request) + override; + + future> + DeletePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& request) override; + StatusOr UndeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request) override; + + future> + UndeletePrivateCloud( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request) + override; + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) override; + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request) + override; + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteCluster(google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) override; + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request) + override; + + future> + DeleteCluster(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request) override; + + future> + CreateExternalAddress( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& request) override; + StatusOr UpdateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request) override; + + future> + UpdateExternalAddress( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& request) override; + StatusOr DeleteExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request) override; + + future> + DeleteExternalAddress( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request) + override; + + future> UpdateSubnet( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request) override; + + future> + CreateExternalAccessRule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& request) override; + StatusOr UpdateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request) override; + + future> + UpdateExternalAccessRule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteExternalAccessRule( google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& request) override; + StatusOr DeleteExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request) override; + + future> + DeleteExternalAccessRule( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request) override; + + future> + CreateLoggingServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& request) override; + StatusOr UpdateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request) override; + + future> + UpdateLoggingServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& request) override; + StatusOr DeleteLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request) override; + + future> + DeleteLoggingServer(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request) override; + + future> + ResetNsxCredentials(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& request) override; + StatusOr ResetVcenterCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request) override; + + future> + ResetVcenterCredentials( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request) override; + + future> + UpdateDnsForwarding(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request) override; + + future> + CreateNetworkPeering( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& request) override; + StatusOr DeleteNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request) override; + + future> + DeleteNetworkPeering( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& request) override; + StatusOr UpdateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request) override; + + future> + UpdateNetworkPeering( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request) override; + + future> + CreateHcxActivationKey( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request) override; + + future> + CreateNetworkPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request) override; + StatusOr UpdateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request) override; + + future> + UpdateNetworkPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& request) override; + StatusOr DeleteNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request) override; + + future> + DeleteNetworkPolicy(google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request) override; + + future> + CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: UpdateManagementDnsZoneBindingRequest const& request) override; + StatusOr UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request) override; + + future> + UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: DeleteManagementDnsZoneBindingRequest const& request) override; + StatusOr DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request) override; + + future> + DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: RepairManagementDnsZoneBindingRequest const& request) override; + StatusOr RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request) override; + + future> + RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& request) override; + StatusOr CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request) override; + + future> + CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& request) override; + StatusOr UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request) override; + + future> + UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& request) override; + StatusOr DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request) override; + + future> + DeleteVmwareEngineNetwork( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request) override; + + future> + CreatePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request) override; + + future> + UpdatePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& request) override; + StatusOr DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request) override; + + future> + DeletePrivateConnection( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request) override; + + future> + GrantDnsBindPermission( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request) override; + + future> + RevokeDnsBindPermission( + google::cloud::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..bed3879f307ed 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreatePrivateCloud, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdatePrivateCloud, (google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdatePrivateCloud, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdatePrivateCloud, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeletePrivateCloud, (google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeletePrivateCloud, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeletePrivateCloud, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UndeletePrivateCloud, @@ -83,6 +119,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UndeletePrivateCloud, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UndeletePrivateCloud, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListClusters, (google::cloud::vmwareengine::v1::ListClustersRequest request), @@ -98,17 +147,54 @@ class MockVmwareEngineConnection (google::cloud::vmwareengine::v1::CreateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, CreateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateCluster, (google::cloud::vmwareengine::v1::UpdateClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteCluster, (google::cloud::vmwareengine::v1::DeleteClusterRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListNodes, (google::cloud::vmwareengine::v1::ListNodesRequest request), (override)); @@ -142,6 +228,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateExternalAddress, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateExternalAddress, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateExternalAddress, @@ -149,6 +249,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateExternalAddress, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateExternalAddress, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteExternalAddress, @@ -156,6 +270,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteExternalAddress, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteExternalAddress, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListSubnets, (google::cloud::vmwareengine::v1::ListSubnetsRequest request), @@ -171,6 +299,18 @@ class MockVmwareEngineConnection (google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request), (override)); + MOCK_METHOD( + StatusOr, UpdateSubnet, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateSubnet, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListExternalAccessRules, @@ -191,6 +331,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateExternalAccessRule, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateExternalAccessRule, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateExternalAccessRule, @@ -198,6 +352,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateExternalAccessRule, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateExternalAccessRule, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteExternalAccessRule, @@ -205,6 +373,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteExternalAccessRule, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteExternalAccessRule, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListLoggingServers, @@ -224,6 +406,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateLoggingServer, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateLoggingServer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateLoggingServer, @@ -231,6 +426,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateLoggingServer, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateLoggingServer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteLoggingServer, @@ -238,6 +446,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteLoggingServer, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteLoggingServer, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListNodeTypes, (google::cloud::vmwareengine::v1::ListNodeTypesRequest request), @@ -268,6 +490,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, ResetNsxCredentials, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ResetNsxCredentials, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, ResetVcenterCredentials, @@ -275,6 +510,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, ResetVcenterCredentials, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request), + (override)); + + MOCK_METHOD(future>, + ResetVcenterCredentials, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDnsForwarding, @@ -288,6 +536,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateDnsForwarding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateDnsForwarding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(StatusOr, GetNetworkPeering, (google::cloud::vmwareengine::v1::GetNetworkPeeringRequest const& @@ -307,6 +568,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateNetworkPeering, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateNetworkPeering, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNetworkPeering, @@ -314,6 +588,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteNetworkPeering, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteNetworkPeering, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateNetworkPeering, @@ -321,6 +609,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateNetworkPeering, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateNetworkPeering, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListPeeringRoutes, @@ -334,6 +635,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateHcxActivationKey, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateHcxActivationKey, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListHcxActivationKeys, @@ -366,6 +681,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateNetworkPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateNetworkPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateNetworkPolicy, @@ -373,6 +701,19 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateNetworkPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateNetworkPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteNetworkPolicy, @@ -380,6 +721,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteNetworkPolicy, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteNetworkPolicy, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( (StreamRange), ListManagementDnsZoneBindings, @@ -402,6 +757,21 @@ class MockVmwareEngineConnection CreateManagementDnsZoneBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + CreateManagementDnsZoneBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + CreateManagementDnsZoneBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -410,6 +780,21 @@ class MockVmwareEngineConnection UpdateManagementDnsZoneBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + UpdateManagementDnsZoneBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + UpdateManagementDnsZoneBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteManagementDnsZoneBinding, @@ -417,6 +802,20 @@ class MockVmwareEngineConnection DeleteManagementDnsZoneBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + DeleteManagementDnsZoneBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request), + (override)); + + MOCK_METHOD( + future>, + DeleteManagementDnsZoneBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future< StatusOr>, @@ -425,6 +824,21 @@ class MockVmwareEngineConnection RepairManagementDnsZoneBindingRequest const& request), (override)); + MOCK_METHOD(StatusOr, + RepairManagementDnsZoneBinding, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request), + (override)); + + MOCK_METHOD( + future< + StatusOr>, + RepairManagementDnsZoneBinding, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, CreateVmwareEngineNetwork, @@ -432,6 +846,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateVmwareEngineNetwork, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateVmwareEngineNetwork, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateVmwareEngineNetwork, @@ -439,6 +867,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateVmwareEngineNetwork, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateVmwareEngineNetwork, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteVmwareEngineNetwork, @@ -446,6 +888,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteVmwareEngineNetwork, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteVmwareEngineNetwork, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetVmwareEngineNetwork, @@ -467,6 +923,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, CreatePrivateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreatePrivateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetPrivateConnection, @@ -487,6 +957,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdatePrivateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdatePrivateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeletePrivateConnection, @@ -494,6 +978,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, DeletePrivateConnection, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeletePrivateConnection, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD((StreamRange), ListPrivateConnectionPeeringRoutes, (google::cloud::vmwareengine::v1:: @@ -507,6 +1005,20 @@ class MockVmwareEngineConnection request), (override)); + MOCK_METHOD( + StatusOr, GrantDnsBindPermission, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + GrantDnsBindPermission, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetDnsBindPermission, @@ -520,6 +1032,20 @@ class MockVmwareEngineConnection (google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, RevokeDnsBindPermission, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + RevokeDnsBindPermission, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/vmwareengine/v1/vmware_engine_client.cc b/google/cloud/vmwareengine/v1/vmware_engine_client.cc index 4b44ea2b70068..f00e4683581f3 100644 --- a/google/cloud/vmwareengine/v1/vmware_engine_client.cc +++ b/google/cloud/vmwareengine/v1/vmware_engine_client.cc @@ -77,6 +77,20 @@ VmwareEngineClient::CreatePrivateCloud( return connection_->CreatePrivateCloud(request); } +StatusOr VmwareEngineClient::CreatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::PrivateCloud const& private_cloud, + std::string const& private_cloud_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest request; + request.set_parent(parent); + *request.mutable_private_cloud() = private_cloud; + request.set_private_cloud_id(private_cloud_id); + return connection_->CreatePrivateCloud(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreatePrivateCloud( google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request, @@ -85,6 +99,24 @@ VmwareEngineClient::CreatePrivateCloud( return connection_->CreatePrivateCloud(request); } +StatusOr VmwareEngineClient::CreatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePrivateCloud(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreatePrivateCloud( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePrivateCloud(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::UpdatePrivateCloud( google::cloud::vmwareengine::v1::PrivateCloud const& private_cloud, @@ -96,6 +128,18 @@ VmwareEngineClient::UpdatePrivateCloud( return connection_->UpdatePrivateCloud(request); } +StatusOr VmwareEngineClient::UpdatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::PrivateCloud const& private_cloud, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest request; + *request.mutable_private_cloud() = private_cloud; + *request.mutable_update_mask() = update_mask; + return connection_->UpdatePrivateCloud(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdatePrivateCloud( google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request, @@ -104,6 +148,24 @@ VmwareEngineClient::UpdatePrivateCloud( return connection_->UpdatePrivateCloud(request); } +StatusOr VmwareEngineClient::UpdatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePrivateCloud(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdatePrivateCloud( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePrivateCloud(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::DeletePrivateCloud(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -112,6 +174,16 @@ VmwareEngineClient::DeletePrivateCloud(std::string const& name, Options opts) { return connection_->DeletePrivateCloud(request); } +StatusOr VmwareEngineClient::DeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest request; + request.set_name(name); + return connection_->DeletePrivateCloud(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeletePrivateCloud( google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request, @@ -120,6 +192,24 @@ VmwareEngineClient::DeletePrivateCloud( return connection_->DeletePrivateCloud(request); } +StatusOr VmwareEngineClient::DeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePrivateCloud(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeletePrivateCloud( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePrivateCloud(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::UndeletePrivateCloud(std::string const& name, Options opts) { @@ -129,6 +219,18 @@ VmwareEngineClient::UndeletePrivateCloud(std::string const& name, return connection_->UndeletePrivateCloud(request); } +StatusOr +VmwareEngineClient::UndeletePrivateCloud(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest request; + request.set_name(name); + return connection_->UndeletePrivateCloud( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UndeletePrivateCloud( google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& request, @@ -137,6 +239,25 @@ VmwareEngineClient::UndeletePrivateCloud( return connection_->UndeletePrivateCloud(request); } +StatusOr +VmwareEngineClient::UndeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeletePrivateCloud( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UndeletePrivateCloud( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UndeletePrivateCloud(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListClusters(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -182,6 +303,20 @@ VmwareEngineClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr VmwareEngineClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateClusterRequest request; + request.set_parent(parent); + *request.mutable_cluster() = cluster; + request.set_cluster_id(cluster_id); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateCluster( google::cloud::vmwareengine::v1::CreateClusterRequest const& request, @@ -190,6 +325,24 @@ VmwareEngineClient::CreateCluster( return connection_->CreateCluster(request); } +StatusOr VmwareEngineClient::CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::UpdateCluster( google::cloud::vmwareengine::v1::Cluster const& cluster, @@ -201,6 +354,18 @@ VmwareEngineClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr VmwareEngineClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateClusterRequest request; + *request.mutable_cluster() = cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateCluster( google::cloud::vmwareengine::v1::UpdateClusterRequest const& request, @@ -209,6 +374,24 @@ VmwareEngineClient::UpdateCluster( return connection_->UpdateCluster(request); } +StatusOr VmwareEngineClient::UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::DeleteCluster(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -217,6 +400,16 @@ VmwareEngineClient::DeleteCluster(std::string const& name, Options opts) { return connection_->DeleteCluster(request); } +StatusOr VmwareEngineClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteClusterRequest request; + request.set_name(name); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeleteCluster( google::cloud::vmwareengine::v1::DeleteClusterRequest const& request, @@ -225,6 +418,24 @@ VmwareEngineClient::DeleteCluster( return connection_->DeleteCluster(request); } +StatusOr VmwareEngineClient::DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteCluster(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListNodes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -320,6 +531,21 @@ VmwareEngineClient::CreateExternalAddress( return connection_->CreateExternalAddress(request); } +StatusOr +VmwareEngineClient::CreateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::ExternalAddress const& external_address, + std::string const& external_address_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateExternalAddressRequest request; + request.set_parent(parent); + *request.mutable_external_address() = external_address; + request.set_external_address_id(external_address_id); + return connection_->CreateExternalAddress( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateExternalAddress( google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& @@ -329,6 +555,26 @@ VmwareEngineClient::CreateExternalAddress( return connection_->CreateExternalAddress(request); } +StatusOr +VmwareEngineClient::CreateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateExternalAddress( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateExternalAddress( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateExternalAddress(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::UpdateExternalAddress( google::cloud::vmwareengine::v1::ExternalAddress const& external_address, @@ -340,6 +586,19 @@ VmwareEngineClient::UpdateExternalAddress( return connection_->UpdateExternalAddress(request); } +StatusOr +VmwareEngineClient::UpdateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ExternalAddress const& external_address, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest request; + *request.mutable_external_address() = external_address; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateExternalAddress( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateExternalAddress( google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& @@ -349,6 +608,26 @@ VmwareEngineClient::UpdateExternalAddress( return connection_->UpdateExternalAddress(request); } +StatusOr +VmwareEngineClient::UpdateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateExternalAddress( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateExternalAddress( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateExternalAddress(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::DeleteExternalAddress(std::string const& name, Options opts) { @@ -358,6 +637,18 @@ VmwareEngineClient::DeleteExternalAddress(std::string const& name, return connection_->DeleteExternalAddress(request); } +StatusOr +VmwareEngineClient::DeleteExternalAddress(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest request; + request.set_name(name); + return connection_->DeleteExternalAddress( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeleteExternalAddress( google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& @@ -367,6 +658,26 @@ VmwareEngineClient::DeleteExternalAddress( return connection_->DeleteExternalAddress(request); } +StatusOr +VmwareEngineClient::DeleteExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExternalAddress( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteExternalAddress( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExternalAddress(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListSubnets(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -408,6 +719,18 @@ VmwareEngineClient::UpdateSubnet( return connection_->UpdateSubnet(request); } +StatusOr VmwareEngineClient::UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::Subnet const& subnet, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateSubnetRequest request; + *request.mutable_subnet() = subnet; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateSubnet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateSubnet( google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request, @@ -416,6 +739,23 @@ VmwareEngineClient::UpdateSubnet( return connection_->UpdateSubnet(request); } +StatusOr VmwareEngineClient::UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSubnet(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateSubnet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateSubnet(google::cloud::ExperimentalTag{}, operation); +} + StreamRange VmwareEngineClient::ListExternalAccessRules(std::string const& parent, Options opts) { @@ -465,6 +805,22 @@ VmwareEngineClient::CreateExternalAccessRule( return connection_->CreateExternalAccessRule(request); } +StatusOr +VmwareEngineClient::CreateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::ExternalAccessRule const& + external_access_rule, + std::string const& external_access_rule_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest request; + request.set_parent(parent); + *request.mutable_external_access_rule() = external_access_rule; + request.set_external_access_rule_id(external_access_rule_id); + return connection_->CreateExternalAccessRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateExternalAccessRule( google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& @@ -474,6 +830,26 @@ VmwareEngineClient::CreateExternalAccessRule( return connection_->CreateExternalAccessRule(request); } +StatusOr +VmwareEngineClient::CreateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateExternalAccessRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateExternalAccessRule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateExternalAccessRule(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::UpdateExternalAccessRule( google::cloud::vmwareengine::v1::ExternalAccessRule const& @@ -486,6 +862,20 @@ VmwareEngineClient::UpdateExternalAccessRule( return connection_->UpdateExternalAccessRule(request); } +StatusOr +VmwareEngineClient::UpdateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ExternalAccessRule const& + external_access_rule, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest request; + *request.mutable_external_access_rule() = external_access_rule; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateExternalAccessRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateExternalAccessRule( google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& @@ -495,6 +885,26 @@ VmwareEngineClient::UpdateExternalAccessRule( return connection_->UpdateExternalAccessRule(request); } +StatusOr +VmwareEngineClient::UpdateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateExternalAccessRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateExternalAccessRule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateExternalAccessRule(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::DeleteExternalAccessRule(std::string const& name, Options opts) { @@ -504,15 +914,47 @@ VmwareEngineClient::DeleteExternalAccessRule(std::string const& name, return connection_->DeleteExternalAccessRule(request); } -future> -VmwareEngineClient::DeleteExternalAccessRule( - google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& - request, - Options opts) { +StatusOr +VmwareEngineClient::DeleteExternalAccessRule(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest request; + request.set_name(name); + return connection_->DeleteExternalAccessRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteExternalAccessRule( + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request, + Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); return connection_->DeleteExternalAccessRule(request); } +StatusOr +VmwareEngineClient::DeleteExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExternalAccessRule( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteExternalAccessRule( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteExternalAccessRule(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListLoggingServers(std::string const& parent, Options opts) { @@ -559,6 +1001,21 @@ VmwareEngineClient::CreateLoggingServer( return connection_->CreateLoggingServer(request); } +StatusOr +VmwareEngineClient::CreateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::LoggingServer const& logging_server, + std::string const& logging_server_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateLoggingServerRequest request; + request.set_parent(parent); + *request.mutable_logging_server() = logging_server; + request.set_logging_server_id(logging_server_id); + return connection_->CreateLoggingServer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateLoggingServer( google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& request, @@ -567,6 +1024,25 @@ VmwareEngineClient::CreateLoggingServer( return connection_->CreateLoggingServer(request); } +StatusOr +VmwareEngineClient::CreateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLoggingServer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateLoggingServer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateLoggingServer(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::UpdateLoggingServer( google::cloud::vmwareengine::v1::LoggingServer const& logging_server, @@ -578,6 +1054,19 @@ VmwareEngineClient::UpdateLoggingServer( return connection_->UpdateLoggingServer(request); } +StatusOr +VmwareEngineClient::UpdateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::LoggingServer const& logging_server, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest request; + *request.mutable_logging_server() = logging_server; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateLoggingServer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateLoggingServer( google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& request, @@ -586,6 +1075,25 @@ VmwareEngineClient::UpdateLoggingServer( return connection_->UpdateLoggingServer(request); } +StatusOr +VmwareEngineClient::UpdateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLoggingServer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateLoggingServer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateLoggingServer(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::DeleteLoggingServer(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -594,6 +1102,17 @@ VmwareEngineClient::DeleteLoggingServer(std::string const& name, Options opts) { return connection_->DeleteLoggingServer(request); } +StatusOr +VmwareEngineClient::DeleteLoggingServer(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest request; + request.set_name(name); + return connection_->DeleteLoggingServer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeleteLoggingServer( google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& request, @@ -602,6 +1121,25 @@ VmwareEngineClient::DeleteLoggingServer( return connection_->DeleteLoggingServer(request); } +StatusOr +VmwareEngineClient::DeleteLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLoggingServer(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteLoggingServer( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteLoggingServer(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListNodeTypes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -678,6 +1216,18 @@ VmwareEngineClient::ResetNsxCredentials(std::string const& private_cloud, return connection_->ResetNsxCredentials(request); } +StatusOr +VmwareEngineClient::ResetNsxCredentials(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& private_cloud, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest request; + request.set_private_cloud(private_cloud); + return connection_->ResetNsxCredentials(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::ResetNsxCredentials( google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& request, @@ -686,6 +1236,25 @@ VmwareEngineClient::ResetNsxCredentials( return connection_->ResetNsxCredentials(request); } +StatusOr +VmwareEngineClient::ResetNsxCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetNsxCredentials(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::ResetNsxCredentials( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetNsxCredentials(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::ResetVcenterCredentials(std::string const& private_cloud, Options opts) { @@ -695,6 +1264,18 @@ VmwareEngineClient::ResetVcenterCredentials(std::string const& private_cloud, return connection_->ResetVcenterCredentials(request); } +StatusOr +VmwareEngineClient::ResetVcenterCredentials(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& private_cloud, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest request; + request.set_private_cloud(private_cloud); + return connection_->ResetVcenterCredentials( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::ResetVcenterCredentials( google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& @@ -704,6 +1285,26 @@ VmwareEngineClient::ResetVcenterCredentials( return connection_->ResetVcenterCredentials(request); } +StatusOr +VmwareEngineClient::ResetVcenterCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetVcenterCredentials( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::ResetVcenterCredentials( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->ResetVcenterCredentials(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VmwareEngineClient::GetDnsForwarding(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -731,6 +1332,19 @@ VmwareEngineClient::UpdateDnsForwarding( return connection_->UpdateDnsForwarding(request); } +StatusOr +VmwareEngineClient::UpdateDnsForwarding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DnsForwarding const& dns_forwarding, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest request; + *request.mutable_dns_forwarding() = dns_forwarding; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateDnsForwarding(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateDnsForwarding( google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& request, @@ -739,6 +1353,25 @@ VmwareEngineClient::UpdateDnsForwarding( return connection_->UpdateDnsForwarding(request); } +StatusOr +VmwareEngineClient::UpdateDnsForwarding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDnsForwarding(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateDnsForwarding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateDnsForwarding(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VmwareEngineClient::GetNetworkPeering(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -785,6 +1418,21 @@ VmwareEngineClient::CreateNetworkPeering( return connection_->CreateNetworkPeering(request); } +StatusOr +VmwareEngineClient::CreateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::NetworkPeering const& network_peering, + std::string const& network_peering_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest request; + request.set_parent(parent); + *request.mutable_network_peering() = network_peering; + request.set_network_peering_id(network_peering_id); + return connection_->CreateNetworkPeering( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateNetworkPeering( google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& request, @@ -793,6 +1441,25 @@ VmwareEngineClient::CreateNetworkPeering( return connection_->CreateNetworkPeering(request); } +StatusOr +VmwareEngineClient::CreateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNetworkPeering( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateNetworkPeering( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNetworkPeering(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::DeleteNetworkPeering(std::string const& name, Options opts) { @@ -802,6 +1469,18 @@ VmwareEngineClient::DeleteNetworkPeering(std::string const& name, return connection_->DeleteNetworkPeering(request); } +StatusOr +VmwareEngineClient::DeleteNetworkPeering(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest request; + request.set_name(name); + return connection_->DeleteNetworkPeering( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeleteNetworkPeering( google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& request, @@ -810,6 +1489,25 @@ VmwareEngineClient::DeleteNetworkPeering( return connection_->DeleteNetworkPeering(request); } +StatusOr +VmwareEngineClient::DeleteNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkPeering( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteNetworkPeering( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkPeering(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::UpdateNetworkPeering( google::cloud::vmwareengine::v1::NetworkPeering const& network_peering, @@ -821,6 +1519,19 @@ VmwareEngineClient::UpdateNetworkPeering( return connection_->UpdateNetworkPeering(request); } +StatusOr +VmwareEngineClient::UpdateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::NetworkPeering const& network_peering, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest request; + *request.mutable_network_peering() = network_peering; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateNetworkPeering( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateNetworkPeering( google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& request, @@ -829,6 +1540,25 @@ VmwareEngineClient::UpdateNetworkPeering( return connection_->UpdateNetworkPeering(request); } +StatusOr +VmwareEngineClient::UpdateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNetworkPeering( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateNetworkPeering( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNetworkPeering(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListPeeringRoutes(std::string const& parent, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -858,6 +1588,21 @@ VmwareEngineClient::CreateHcxActivationKey( return connection_->CreateHcxActivationKey(request); } +StatusOr +VmwareEngineClient::CreateHcxActivationKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::HcxActivationKey const& hcx_activation_key, + std::string const& hcx_activation_key_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest request; + request.set_parent(parent); + *request.mutable_hcx_activation_key() = hcx_activation_key; + request.set_hcx_activation_key_id(hcx_activation_key_id); + return connection_->CreateHcxActivationKey( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateHcxActivationKey( google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& @@ -867,6 +1612,26 @@ VmwareEngineClient::CreateHcxActivationKey( return connection_->CreateHcxActivationKey(request); } +StatusOr +VmwareEngineClient::CreateHcxActivationKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateHcxActivationKey( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateHcxActivationKey( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateHcxActivationKey(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListHcxActivationKeys(std::string const& parent, Options opts) { @@ -946,6 +1711,21 @@ VmwareEngineClient::CreateNetworkPolicy( return connection_->CreateNetworkPolicy(request); } +StatusOr +VmwareEngineClient::CreateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::NetworkPolicy const& network_policy, + std::string const& network_policy_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest request; + request.set_parent(parent); + *request.mutable_network_policy() = network_policy; + request.set_network_policy_id(network_policy_id); + return connection_->CreateNetworkPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateNetworkPolicy( google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& request, @@ -954,6 +1734,25 @@ VmwareEngineClient::CreateNetworkPolicy( return connection_->CreateNetworkPolicy(request); } +StatusOr +VmwareEngineClient::CreateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNetworkPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateNetworkPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateNetworkPolicy(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::UpdateNetworkPolicy( google::cloud::vmwareengine::v1::NetworkPolicy const& network_policy, @@ -965,6 +1764,19 @@ VmwareEngineClient::UpdateNetworkPolicy( return connection_->UpdateNetworkPolicy(request); } +StatusOr +VmwareEngineClient::UpdateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::NetworkPolicy const& network_policy, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest request; + *request.mutable_network_policy() = network_policy; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateNetworkPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateNetworkPolicy( google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request, @@ -973,14 +1785,44 @@ VmwareEngineClient::UpdateNetworkPolicy( return connection_->UpdateNetworkPolicy(request); } -future> -VmwareEngineClient::DeleteNetworkPolicy(std::string const& name, Options opts) { +StatusOr +VmwareEngineClient::UpdateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& request, + Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); - google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest request; - request.set_name(name); + return connection_->UpdateNetworkPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateNetworkPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateNetworkPolicy(google::cloud::ExperimentalTag{}, + operation); +} + +future> +VmwareEngineClient::DeleteNetworkPolicy(std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest request; + request.set_name(name); return connection_->DeleteNetworkPolicy(request); } +StatusOr +VmwareEngineClient::DeleteNetworkPolicy(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest request; + request.set_name(name); + return connection_->DeleteNetworkPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeleteNetworkPolicy( google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& request, @@ -989,6 +1831,25 @@ VmwareEngineClient::DeleteNetworkPolicy( return connection_->DeleteNetworkPolicy(request); } +StatusOr +VmwareEngineClient::DeleteNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkPolicy(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteNetworkPolicy( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteNetworkPolicy(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListManagementDnsZoneBindings(std::string const& parent, Options opts) { @@ -1040,6 +1901,23 @@ VmwareEngineClient::CreateManagementDnsZoneBinding( return connection_->CreateManagementDnsZoneBinding(request); } +StatusOr +VmwareEngineClient::CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding const& + management_dns_zone_binding, + std::string const& management_dns_zone_binding_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateManagementDnsZoneBindingRequest + request; + request.set_parent(parent); + *request.mutable_management_dns_zone_binding() = management_dns_zone_binding; + request.set_management_dns_zone_binding_id(management_dns_zone_binding_id); + return connection_->CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -1049,6 +1927,26 @@ VmwareEngineClient::CreateManagementDnsZoneBinding( return connection_->CreateManagementDnsZoneBinding(request); } +StatusOr +VmwareEngineClient::CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, operation); +} + future> VmwareEngineClient::UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1::ManagementDnsZoneBinding const& @@ -1062,6 +1960,21 @@ VmwareEngineClient::UpdateManagementDnsZoneBinding( return connection_->UpdateManagementDnsZoneBinding(request); } +StatusOr +VmwareEngineClient::UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding const& + management_dns_zone_binding, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateManagementDnsZoneBindingRequest + request; + *request.mutable_management_dns_zone_binding() = management_dns_zone_binding; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -1071,6 +1984,26 @@ VmwareEngineClient::UpdateManagementDnsZoneBinding( return connection_->UpdateManagementDnsZoneBinding(request); } +StatusOr +VmwareEngineClient::UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, operation); +} + future> VmwareEngineClient::DeleteManagementDnsZoneBinding(std::string const& name, Options opts) { @@ -1081,6 +2014,18 @@ VmwareEngineClient::DeleteManagementDnsZoneBinding(std::string const& name, return connection_->DeleteManagementDnsZoneBinding(request); } +StatusOr +VmwareEngineClient::DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteManagementDnsZoneBindingRequest + request; + request.set_name(name); + return connection_->DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeleteManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -1090,6 +2035,26 @@ VmwareEngineClient::DeleteManagementDnsZoneBinding( return connection_->DeleteManagementDnsZoneBinding(request); } +StatusOr +VmwareEngineClient::DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, operation); +} + future> VmwareEngineClient::RepairManagementDnsZoneBinding(std::string const& name, Options opts) { @@ -1100,6 +2065,18 @@ VmwareEngineClient::RepairManagementDnsZoneBinding(std::string const& name, return connection_->RepairManagementDnsZoneBinding(request); } +StatusOr +VmwareEngineClient::RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::RepairManagementDnsZoneBindingRequest + request; + request.set_name(name); + return connection_->RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::RepairManagementDnsZoneBinding( google::cloud::vmwareengine::v1:: @@ -1109,6 +2086,26 @@ VmwareEngineClient::RepairManagementDnsZoneBinding( return connection_->RepairManagementDnsZoneBinding(request); } +StatusOr +VmwareEngineClient::RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag{}, operation); +} + future> VmwareEngineClient::CreateVmwareEngineNetwork( std::string const& parent, @@ -1123,6 +2120,22 @@ VmwareEngineClient::CreateVmwareEngineNetwork( return connection_->CreateVmwareEngineNetwork(request); } +StatusOr +VmwareEngineClient::CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::VmwareEngineNetwork const& + vmware_engine_network, + std::string const& vmware_engine_network_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest request; + request.set_parent(parent); + *request.mutable_vmware_engine_network() = vmware_engine_network; + request.set_vmware_engine_network_id(vmware_engine_network_id); + return connection_->CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreateVmwareEngineNetwork( google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& @@ -1132,6 +2145,26 @@ VmwareEngineClient::CreateVmwareEngineNetwork( return connection_->CreateVmwareEngineNetwork(request); } +StatusOr +VmwareEngineClient::CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, operation); +} + future> VmwareEngineClient::UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::VmwareEngineNetwork const& @@ -1144,6 +2177,20 @@ VmwareEngineClient::UpdateVmwareEngineNetwork( return connection_->UpdateVmwareEngineNetwork(request); } +StatusOr +VmwareEngineClient::UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::VmwareEngineNetwork const& + vmware_engine_network, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest request; + *request.mutable_vmware_engine_network() = vmware_engine_network; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdateVmwareEngineNetwork( google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& @@ -1153,6 +2200,26 @@ VmwareEngineClient::UpdateVmwareEngineNetwork( return connection_->UpdateVmwareEngineNetwork(request); } +StatusOr +VmwareEngineClient::UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, operation); +} + future> VmwareEngineClient::DeleteVmwareEngineNetwork(std::string const& name, Options opts) { @@ -1162,6 +2229,18 @@ VmwareEngineClient::DeleteVmwareEngineNetwork(std::string const& name, return connection_->DeleteVmwareEngineNetwork(request); } +StatusOr +VmwareEngineClient::DeleteVmwareEngineNetwork(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest request; + request.set_name(name); + return connection_->DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeleteVmwareEngineNetwork( google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& @@ -1171,6 +2250,26 @@ VmwareEngineClient::DeleteVmwareEngineNetwork( return connection_->DeleteVmwareEngineNetwork(request); } +StatusOr +VmwareEngineClient::DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag{}, operation); +} + StatusOr VmwareEngineClient::GetVmwareEngineNetwork(std::string const& name, Options opts) { @@ -1220,6 +2319,22 @@ VmwareEngineClient::CreatePrivateConnection( return connection_->CreatePrivateConnection(request); } +StatusOr +VmwareEngineClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::PrivateConnection const& + private_connection, + std::string const& private_connection_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest request; + request.set_parent(parent); + *request.mutable_private_connection() = private_connection; + request.set_private_connection_id(private_connection_id); + return connection_->CreatePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::CreatePrivateConnection( google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& @@ -1229,6 +2344,26 @@ VmwareEngineClient::CreatePrivateConnection( return connection_->CreatePrivateConnection(request); } +StatusOr +VmwareEngineClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::CreatePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreatePrivateConnection(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VmwareEngineClient::GetPrivateConnection(std::string const& name, Options opts) { @@ -1275,6 +2410,20 @@ VmwareEngineClient::UpdatePrivateConnection( return connection_->UpdatePrivateConnection(request); } +StatusOr +VmwareEngineClient::UpdatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::PrivateConnection const& + private_connection, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest request; + *request.mutable_private_connection() = private_connection; + *request.mutable_update_mask() = update_mask; + return connection_->UpdatePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::UpdatePrivateConnection( google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& @@ -1284,6 +2433,26 @@ VmwareEngineClient::UpdatePrivateConnection( return connection_->UpdatePrivateConnection(request); } +StatusOr +VmwareEngineClient::UpdatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::UpdatePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdatePrivateConnection(google::cloud::ExperimentalTag{}, + operation); +} + future> VmwareEngineClient::DeletePrivateConnection(std::string const& name, Options opts) { @@ -1293,6 +2462,18 @@ VmwareEngineClient::DeletePrivateConnection(std::string const& name, return connection_->DeletePrivateConnection(request); } +StatusOr +VmwareEngineClient::DeletePrivateConnection(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest request; + request.set_name(name); + return connection_->DeletePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::DeletePrivateConnection( google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& @@ -1302,6 +2483,26 @@ VmwareEngineClient::DeletePrivateConnection( return connection_->DeletePrivateConnection(request); } +StatusOr +VmwareEngineClient::DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePrivateConnection( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::DeletePrivateConnection( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeletePrivateConnection(google::cloud::ExperimentalTag{}, + operation); +} + StreamRange VmwareEngineClient::ListPrivateConnectionPeeringRoutes( std::string const& parent, Options opts) { @@ -1332,6 +2533,19 @@ VmwareEngineClient::GrantDnsBindPermission( return connection_->GrantDnsBindPermission(request); } +StatusOr +VmwareEngineClient::GrantDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::vmwareengine::v1::Principal const& principal, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest request; + request.set_name(name); + *request.mutable_principal() = principal; + return connection_->GrantDnsBindPermission( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::GrantDnsBindPermission( google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& @@ -1341,6 +2555,26 @@ VmwareEngineClient::GrantDnsBindPermission( return connection_->GrantDnsBindPermission(request); } +StatusOr +VmwareEngineClient::GrantDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GrantDnsBindPermission( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::GrantDnsBindPermission( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->GrantDnsBindPermission(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VmwareEngineClient::GetDnsBindPermission(std::string const& name, Options opts) { @@ -1369,6 +2603,19 @@ VmwareEngineClient::RevokeDnsBindPermission( return connection_->RevokeDnsBindPermission(request); } +StatusOr +VmwareEngineClient::RevokeDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::vmwareengine::v1::Principal const& principal, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest request; + request.set_name(name); + *request.mutable_principal() = principal; + return connection_->RevokeDnsBindPermission( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> VmwareEngineClient::RevokeDnsBindPermission( google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& @@ -1378,6 +2625,26 @@ VmwareEngineClient::RevokeDnsBindPermission( return connection_->RevokeDnsBindPermission(request); } +StatusOr +VmwareEngineClient::RevokeDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RevokeDnsBindPermission( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +VmwareEngineClient::RevokeDnsBindPermission( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->RevokeDnsBindPermission(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace vmwareengine_v1 } // namespace cloud diff --git a/google/cloud/vmwareengine/v1/vmware_engine_client.h b/google/cloud/vmwareengine/v1/vmware_engine_client.h index 410ce7b6d8411..b8b6b878ec2fc 100644 --- a/google/cloud/vmwareengine/v1/vmware_engine_client.h +++ b/google/cloud/vmwareengine/v1/vmware_engine_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VMWAREENGINE_V1_VMWARE_ENGINE_CLIENT_H #include "google/cloud/vmwareengine/v1/vmware_engine_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -282,6 +284,12 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::PrivateCloud const& private_cloud, std::string const& private_cloud_id, Options opts = {}); + StatusOr CreatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::PrivateCloud const& private_cloud, + std::string const& private_cloud_id, Options opts = {}); + // clang-format off /// /// Creates a new `PrivateCloud` resource in a given project and location. @@ -327,6 +335,16 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request, Options opts = {}); + StatusOr CreatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateCloudRequest const& request, + Options opts = {}); + + future> + CreatePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Modifies a `PrivateCloud` resource. Only the following fields can be @@ -373,6 +391,11 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::PrivateCloud const& private_cloud, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::PrivateCloud const& private_cloud, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Modifies a `PrivateCloud` resource. Only the following fields can be @@ -419,6 +442,16 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request, Options opts = {}); + StatusOr UpdatePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateCloudRequest const& request, + Options opts = {}); + + future> + UpdatePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Schedules a `PrivateCloud` resource for deletion. @@ -469,6 +502,10 @@ class VmwareEngineClient { future> DeletePrivateCloud(std::string const& name, Options opts = {}); + StatusOr DeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Schedules a `PrivateCloud` resource for deletion. @@ -522,6 +559,16 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request, Options opts = {}); + StatusOr DeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateCloudRequest const& request, + Options opts = {}); + + future> + DeletePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Restores a private cloud that was previously scheduled for deletion by @@ -561,6 +608,10 @@ class VmwareEngineClient { future> UndeletePrivateCloud(std::string const& name, Options opts = {}); + StatusOr UndeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Restores a private cloud that was previously scheduled for deletion by @@ -604,6 +655,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UndeletePrivateCloud( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UndeletePrivateCloudRequest const& + request, + Options opts = {}); + + future> + UndeletePrivateCloud(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists `Cluster` resources in a given private cloud. @@ -795,6 +857,12 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::Cluster const& cluster, std::string const& cluster_id, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::Cluster const& cluster, + std::string const& cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new cluster in a given private cloud. @@ -836,6 +904,15 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::CreateClusterRequest const& request, Options opts = {}); + StatusOr CreateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateClusterRequest const& request, + Options opts = {}); + + future> CreateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Modifies a `Cluster` resource. Only fields specified in `updateMask` are @@ -880,6 +957,11 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::Cluster const& cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::Cluster const& cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Modifies a `Cluster` resource. Only fields specified in `updateMask` are @@ -924,6 +1006,15 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::UpdateClusterRequest const& request, Options opts = {}); + StatusOr UpdateCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateClusterRequest const& request, + Options opts = {}); + + future> UpdateCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a `Cluster` resource. To avoid unintended data loss, migrate or @@ -963,6 +1054,10 @@ class VmwareEngineClient { future> DeleteCluster(std::string const& name, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `Cluster` resource. To avoid unintended data loss, migrate or @@ -1005,6 +1100,16 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::DeleteClusterRequest const& request, Options opts = {}); + StatusOr DeleteCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteClusterRequest const& request, + Options opts = {}); + + future> + DeleteCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists nodes in a given cluster. @@ -1420,6 +1525,12 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::ExternalAddress const& external_address, std::string const& external_address_id, Options opts = {}); + StatusOr CreateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::ExternalAddress const& external_address, + std::string const& external_address_id, Options opts = {}); + // clang-format off /// /// Creates a new `ExternalAddress` resource in a given private cloud. The @@ -1462,6 +1573,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr CreateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAddressRequest const& + request, + Options opts = {}); + + future> + CreateExternalAddress(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single external IP address. @@ -1507,6 +1629,11 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::ExternalAddress const& external_address, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ExternalAddress const& external_address, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single external IP address. @@ -1553,6 +1680,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UpdateExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAddressRequest const& + request, + Options opts = {}); + + future> + UpdateExternalAddress(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single external IP address. When you delete an external IP @@ -1591,6 +1729,10 @@ class VmwareEngineClient { future> DeleteExternalAddress(std::string const& name, Options opts = {}); + StatusOr DeleteExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single external IP address. When you delete an external IP @@ -1633,6 +1775,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr DeleteExternalAddress( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAddressRequest const& + request, + Options opts = {}); + + future> + DeleteExternalAddress(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists subnets in a given private cloud. @@ -1815,6 +1968,11 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::Subnet const& subnet, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::Subnet const& subnet, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single subnet. Only fields specified in @@ -1858,6 +2016,15 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request, Options opts = {}); + StatusOr UpdateSubnet( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateSubnetRequest const& request, + Options opts = {}); + + future> UpdateSubnet( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Lists `ExternalAccessRule` resources in the specified network policy. @@ -2052,6 +2219,13 @@ class VmwareEngineClient { external_access_rule, std::string const& external_access_rule_id, Options opts = {}); + StatusOr CreateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::ExternalAccessRule const& + external_access_rule, + std::string const& external_access_rule_id, Options opts = {}); + // clang-format off /// /// Creates a new external access rule in a given network policy. @@ -2092,6 +2266,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr CreateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateExternalAccessRuleRequest const& + request, + Options opts = {}); + + future> + CreateExternalAccessRule(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single external access rule. @@ -2133,6 +2318,12 @@ class VmwareEngineClient { external_access_rule, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ExternalAccessRule const& + external_access_rule, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single external access rule. @@ -2174,6 +2365,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UpdateExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateExternalAccessRuleRequest const& + request, + Options opts = {}); + + future> + UpdateExternalAccessRule(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single external access rule. @@ -2210,6 +2412,10 @@ class VmwareEngineClient { future> DeleteExternalAccessRule(std::string const& name, Options opts = {}); + StatusOr DeleteExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single external access rule. @@ -2250,6 +2456,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr DeleteExternalAccessRule( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteExternalAccessRuleRequest const& + request, + Options opts = {}); + + future> + DeleteExternalAccessRule(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists logging servers configured for a given private @@ -2444,6 +2661,12 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::LoggingServer const& logging_server, std::string const& logging_server_id, Options opts = {}); + StatusOr CreateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::LoggingServer const& logging_server, + std::string const& logging_server_id, Options opts = {}); + // clang-format off /// /// Create a new logging server for a given private cloud. @@ -2484,6 +2707,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr CreateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateLoggingServerRequest const& + request, + Options opts = {}); + + future> + CreateLoggingServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates the parameters of a single logging server. @@ -2524,6 +2758,11 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::LoggingServer const& logging_server, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::LoggingServer const& logging_server, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of a single logging server. @@ -2565,6 +2804,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UpdateLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateLoggingServerRequest const& + request, + Options opts = {}); + + future> + UpdateLoggingServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a single logging server. @@ -2601,6 +2851,10 @@ class VmwareEngineClient { future> DeleteLoggingServer(std::string const& name, Options opts = {}); + StatusOr DeleteLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a single logging server. @@ -2641,6 +2895,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr DeleteLoggingServer( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteLoggingServerRequest const& + request, + Options opts = {}); + + future> + DeleteLoggingServer(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists node types @@ -2939,6 +3204,10 @@ class VmwareEngineClient { future> ResetNsxCredentials(std::string const& private_cloud, Options opts = {}); + StatusOr ResetNsxCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& private_cloud, Options opts = {}); + // clang-format off /// /// Resets credentials of the NSX appliance. @@ -2979,6 +3248,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr ResetNsxCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetNsxCredentialsRequest const& + request, + Options opts = {}); + + future> + ResetNsxCredentials(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Resets credentials of the Vcenter appliance. @@ -3016,6 +3296,10 @@ class VmwareEngineClient { future> ResetVcenterCredentials(std::string const& private_cloud, Options opts = {}); + StatusOr ResetVcenterCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& private_cloud, Options opts = {}); + // clang-format off /// /// Resets credentials of the Vcenter appliance. @@ -3056,6 +3340,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr ResetVcenterCredentials( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ResetVcenterCredentialsRequest const& + request, + Options opts = {}); + + future> + ResetVcenterCredentials(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets details of the `DnsForwarding` config. @@ -3156,6 +3451,11 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::DnsForwarding const& dns_forwarding, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateDnsForwarding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DnsForwarding const& dns_forwarding, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates the parameters of the `DnsForwarding` config, like associated @@ -3197,6 +3497,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UpdateDnsForwarding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateDnsForwardingRequest const& + request, + Options opts = {}); + + future> + UpdateDnsForwarding(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a `NetworkPeering` resource by its resource name. The resource @@ -3396,6 +3707,12 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::NetworkPeering const& network_peering, std::string const& network_peering_id, Options opts = {}); + StatusOr CreateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::NetworkPeering const& network_peering, + std::string const& network_peering_id, Options opts = {}); + // clang-format off /// /// Creates a new network peering between the peer network and VMware Engine @@ -3438,6 +3755,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr CreateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPeeringRequest const& + request, + Options opts = {}); + + future> + CreateNetworkPeering(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a `NetworkPeering` resource. When a network peering is deleted for @@ -3477,6 +3805,10 @@ class VmwareEngineClient { future> DeleteNetworkPeering(std::string const& name, Options opts = {}); + StatusOr DeleteNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `NetworkPeering` resource. When a network peering is deleted for @@ -3520,6 +3852,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr DeleteNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPeeringRequest const& + request, + Options opts = {}); + + future> + DeleteNetworkPeering(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Modifies a `NetworkPeering` resource. Only the `description` field can be @@ -3561,6 +3904,11 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::NetworkPeering const& network_peering, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::NetworkPeering const& network_peering, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Modifies a `NetworkPeering` resource. Only the `description` field can be @@ -3603,6 +3951,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UpdateNetworkPeering( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPeeringRequest const& + request, + Options opts = {}); + + future> + UpdateNetworkPeering(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the network peering routes exchanged over a peering connection. @@ -3735,6 +4094,13 @@ class VmwareEngineClient { hcx_activation_key, std::string const& hcx_activation_key_id, Options opts = {}); + StatusOr CreateHcxActivationKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::HcxActivationKey const& + hcx_activation_key, + std::string const& hcx_activation_key_id, Options opts = {}); + // clang-format off /// /// Creates a new HCX activation key in a given private cloud. @@ -3775,6 +4141,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr CreateHcxActivationKey( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateHcxActivationKeyRequest const& + request, + Options opts = {}); + + future> + CreateHcxActivationKey(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists `HcxActivationKey` resources in a given private cloud. @@ -4110,6 +4487,12 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::NetworkPolicy const& network_policy, std::string const& network_policy_id, Options opts = {}); + StatusOr CreateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::NetworkPolicy const& network_policy, + std::string const& network_policy_id, Options opts = {}); + // clang-format off /// /// Creates a new network policy in a given VMware Engine network of a @@ -4152,6 +4535,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr CreateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateNetworkPolicyRequest const& + request, + Options opts = {}); + + future> + CreateNetworkPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Modifies a `NetworkPolicy` resource. Only the following fields can be @@ -4202,6 +4596,11 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::NetworkPolicy const& network_policy, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::NetworkPolicy const& network_policy, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Modifies a `NetworkPolicy` resource. Only the following fields can be @@ -4253,6 +4652,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UpdateNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateNetworkPolicyRequest const& + request, + Options opts = {}); + + future> + UpdateNetworkPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a `NetworkPolicy` resource. A network policy cannot be deleted @@ -4291,6 +4701,10 @@ class VmwareEngineClient { future> DeleteNetworkPolicy(std::string const& name, Options opts = {}); + StatusOr DeleteNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `NetworkPolicy` resource. A network policy cannot be deleted @@ -4333,6 +4747,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr DeleteNetworkPolicy( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteNetworkPolicyRequest const& + request, + Options opts = {}); + + future> + DeleteNetworkPolicy(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists Consumer VPCs bound to Management DNS Zone of a given private cloud. @@ -4536,6 +4961,13 @@ class VmwareEngineClient { management_dns_zone_binding, std::string const& management_dns_zone_binding_id, Options opts = {}); + StatusOr CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding const& + management_dns_zone_binding, + std::string const& management_dns_zone_binding_id, Options opts = {}); + // clang-format off /// /// Creates a new `ManagementDnsZoneBinding` resource in a private cloud. @@ -4582,6 +5014,17 @@ class VmwareEngineClient { CreateManagementDnsZoneBindingRequest const& request, Options opts = {}); + StatusOr CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + CreateManagementDnsZoneBindingRequest const& request, + Options opts = {}); + + future> + CreateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Updates a `ManagementDnsZoneBinding` resource. @@ -4623,6 +5066,12 @@ class VmwareEngineClient { management_dns_zone_binding, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::ManagementDnsZoneBinding const& + management_dns_zone_binding, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates a `ManagementDnsZoneBinding` resource. @@ -4664,6 +5113,17 @@ class VmwareEngineClient { UpdateManagementDnsZoneBindingRequest const& request, Options opts = {}); + StatusOr UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + UpdateManagementDnsZoneBindingRequest const& request, + Options opts = {}); + + future> + UpdateManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a `ManagementDnsZoneBinding` resource. When a management DNS zone @@ -4702,6 +5162,10 @@ class VmwareEngineClient { future> DeleteManagementDnsZoneBinding(std::string const& name, Options opts = {}); + StatusOr DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `ManagementDnsZoneBinding` resource. When a management DNS zone @@ -4744,6 +5208,17 @@ class VmwareEngineClient { DeleteManagementDnsZoneBindingRequest const& request, Options opts = {}); + StatusOr DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + DeleteManagementDnsZoneBindingRequest const& request, + Options opts = {}); + + future> + DeleteManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Retries to create a `ManagementDnsZoneBinding` resource that is @@ -4781,6 +5256,10 @@ class VmwareEngineClient { future> RepairManagementDnsZoneBinding(std::string const& name, Options opts = {}); + StatusOr RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Retries to create a `ManagementDnsZoneBinding` resource that is @@ -4822,6 +5301,17 @@ class VmwareEngineClient { RepairManagementDnsZoneBindingRequest const& request, Options opts = {}); + StatusOr RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1:: + RepairManagementDnsZoneBindingRequest const& request, + Options opts = {}); + + future> + RepairManagementDnsZoneBinding( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Creates a new VMware Engine network that can be used by a private cloud. @@ -4879,6 +5369,13 @@ class VmwareEngineClient { vmware_engine_network, std::string const& vmware_engine_network_id, Options opts = {}); + StatusOr CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::VmwareEngineNetwork const& + vmware_engine_network, + std::string const& vmware_engine_network_id, Options opts = {}); + // clang-format off /// /// Creates a new VMware Engine network that can be used by a private cloud. @@ -4919,6 +5416,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr CreateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreateVmwareEngineNetworkRequest const& + request, + Options opts = {}); + + future> + CreateVmwareEngineNetwork(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Modifies a VMware Engine network resource. Only the following fields can be @@ -4962,6 +5470,12 @@ class VmwareEngineClient { vmware_engine_network, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::VmwareEngineNetwork const& + vmware_engine_network, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Modifies a VMware Engine network resource. Only the following fields can be @@ -5004,6 +5518,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UpdateVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdateVmwareEngineNetworkRequest const& + request, + Options opts = {}); + + future> + UpdateVmwareEngineNetwork(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a `VmwareEngineNetwork` resource. You can only delete a VMware @@ -5043,6 +5568,10 @@ class VmwareEngineClient { future> DeleteVmwareEngineNetwork(std::string const& name, Options opts = {}); + StatusOr DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `VmwareEngineNetwork` resource. You can only delete a VMware @@ -5086,6 +5615,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr DeleteVmwareEngineNetwork( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeleteVmwareEngineNetworkRequest const& + request, + Options opts = {}); + + future> + DeleteVmwareEngineNetwork(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a `VmwareEngineNetwork` resource by its resource name. The @@ -5285,6 +5825,13 @@ class VmwareEngineClient { private_connection, std::string const& private_connection_id, Options opts = {}); + StatusOr CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::vmwareengine::v1::PrivateConnection const& + private_connection, + std::string const& private_connection_id, Options opts = {}); + // clang-format off /// /// Creates a new private connection that can be used for accessing private @@ -5326,6 +5873,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr CreatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::CreatePrivateConnectionRequest const& + request, + Options opts = {}); + + future> + CreatePrivateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Retrieves a `PrivateConnection` resource by its resource name. The resource @@ -5512,6 +6070,12 @@ class VmwareEngineClient { private_connection, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::PrivateConnection const& + private_connection, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Modifies a `PrivateConnection` resource. Only `description` and @@ -5554,6 +6118,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr UpdatePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::UpdatePrivateConnectionRequest const& + request, + Options opts = {}); + + future> + UpdatePrivateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes a `PrivateConnection` resource. When a private connection is @@ -5592,6 +6167,10 @@ class VmwareEngineClient { future> DeletePrivateConnection(std::string const& name, Options opts = {}); + StatusOr DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a `PrivateConnection` resource. When a private connection is @@ -5634,6 +6213,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr DeletePrivateConnection( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::DeletePrivateConnectionRequest const& + request, + Options opts = {}); + + future> + DeletePrivateConnection(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Lists the private connection routes exchanged over a peering connection. @@ -5760,6 +6350,12 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::Principal const& principal, Options opts = {}); + StatusOr GrantDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::vmwareengine::v1::Principal const& principal, + Options opts = {}); + // clang-format off /// /// Grants the bind permission to the customer provided principal(user / @@ -5803,6 +6399,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr GrantDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::GrantDnsBindPermissionRequest const& + request, + Options opts = {}); + + future> + GrantDnsBindPermission(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Gets all the principals having bind permission on the intranet VPC @@ -5915,6 +6522,12 @@ class VmwareEngineClient { google::cloud::vmwareengine::v1::Principal const& principal, Options opts = {}); + StatusOr RevokeDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, + google::cloud::vmwareengine::v1::Principal const& principal, + Options opts = {}); + // clang-format off /// /// Revokes the bind permission from the customer provided principal(user / @@ -5957,6 +6570,17 @@ class VmwareEngineClient { request, Options opts = {}); + StatusOr RevokeDnsBindPermission( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vmwareengine::v1::RevokeDnsBindPermissionRequest const& + request, + Options opts = {}); + + future> + RevokeDnsBindPermission(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..36ba5c77c4cf7 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,59 @@ VpcAccessServiceConnectionImpl::CreateConnector( polling_policy(*current), __func__); } +StatusOr +VpcAccessServiceConnectionImpl::CreateConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +246,60 @@ VpcAccessServiceConnectionImpl::DeleteConnector( polling_policy(*current), __func__); } +StatusOr +VpcAccessServiceConnectionImpl::DeleteConnector( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..3586b7668d8f0 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) + override; + + future> CreateConnector( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) + override; + + future> + DeleteConnector(google::cloud::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..9dbd5593b8029 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,30 @@ VpcAccessServiceTracingConnection::CreateConnector( return internal::EndSpan(std::move(span), child_->CreateConnector(request)); } +StatusOr +VpcAccessServiceTracingConnection::CreateConnector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VpcAccessServiceTracingConnection::CreateConnector( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + StatusOr VpcAccessServiceTracingConnection::GetConnector( google::cloud::vpcaccess::v1::GetConnectorRequest const& request) { @@ -71,6 +95,30 @@ VpcAccessServiceTracingConnection::DeleteConnector( return internal::EndSpan(std::move(span), child_->DeleteConnector(request)); } +StatusOr +VpcAccessServiceTracingConnection::DeleteConnector( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +VpcAccessServiceTracingConnection::DeleteConnector( + google::cloud::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(google::cloud::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..5edc7f44422ac 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request) + override; + + future> CreateConnector( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request) + override; + + future> + DeleteConnector(google::cloud::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..27a5ba39364fc 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateConnector, + (google::cloud::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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteConnector, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/vpcaccess/v1/vpc_access_client.cc b/google/cloud/vpcaccess/v1/vpc_access_client.cc index db3f2f94d3aac..4f4449ed4e8ce 100644 --- a/google/cloud/vpcaccess/v1/vpc_access_client.cc +++ b/google/cloud/vpcaccess/v1/vpc_access_client.cc @@ -44,6 +44,20 @@ VpcAccessServiceClient::CreateConnector( return connection_->CreateConnector(request); } +StatusOr +VpcAccessServiceClient::CreateConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& connector_id, + google::cloud::vpcaccess::v1::Connector const& connector, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vpcaccess::v1::CreateConnectorRequest request; + request.set_parent(parent); + request.set_connector_id(connector_id); + *request.mutable_connector() = connector; + return connection_->CreateConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VpcAccessServiceClient::CreateConnector( google::cloud::vpcaccess::v1::CreateConnectorRequest const& request, @@ -52,6 +66,25 @@ VpcAccessServiceClient::CreateConnector( return connection_->CreateConnector(request); } +StatusOr +VpcAccessServiceClient::CreateConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VpcAccessServiceClient::CreateConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateConnector(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr VpcAccessServiceClient::GetConnector(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -92,6 +125,17 @@ VpcAccessServiceClient::DeleteConnector(std::string const& name, Options opts) { return connection_->DeleteConnector(request); } +StatusOr +VpcAccessServiceClient::DeleteConnector(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::vpcaccess::v1::DeleteConnectorRequest request; + request.set_name(name); + return connection_->DeleteConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> VpcAccessServiceClient::DeleteConnector( google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request, @@ -100,6 +144,25 @@ VpcAccessServiceClient::DeleteConnector( return connection_->DeleteConnector(request); } +StatusOr +VpcAccessServiceClient::DeleteConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnector(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +VpcAccessServiceClient::DeleteConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteConnector(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace vpcaccess_v1 } // namespace cloud diff --git a/google/cloud/vpcaccess/v1/vpc_access_client.h b/google/cloud/vpcaccess/v1/vpc_access_client.h index 800dde93692bf..885928e0b01e8 100644 --- a/google/cloud/vpcaccess/v1/vpc_access_client.h +++ b/google/cloud/vpcaccess/v1/vpc_access_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_VPCACCESS_V1_VPC_ACCESS_CLIENT_H #include "google/cloud/vpcaccess/v1/vpc_access_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -126,6 +128,12 @@ class VpcAccessServiceClient { google::cloud::vpcaccess::v1::Connector const& connector, Options opts = {}); + StatusOr CreateConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, std::string const& connector_id, + google::cloud::vpcaccess::v1::Connector const& connector, + Options opts = {}); + // clang-format off /// /// Creates a Serverless VPC Access connector, returns an operation. @@ -164,6 +172,15 @@ class VpcAccessServiceClient { google::cloud::vpcaccess::v1::CreateConnectorRequest const& request, Options opts = {}); + StatusOr CreateConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::CreateConnectorRequest const& request, + Options opts = {}); + + future> CreateConnector( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Gets a Serverless VPC Access connector. Returns NOT_FOUND if the resource @@ -329,6 +346,10 @@ class VpcAccessServiceClient { future> DeleteConnector(std::string const& name, Options opts = {}); + StatusOr DeleteConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a Serverless VPC Access connector. Returns NOT_FOUND if the @@ -369,6 +390,16 @@ class VpcAccessServiceClient { google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request, Options opts = {}); + StatusOr DeleteConnector( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::vpcaccess::v1::DeleteConnectorRequest const& request, + Options opts = {}); + + future> + DeleteConnector(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..5b00b44b62319 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,58 @@ WebRiskServiceConnectionImpl::SubmitUri( polling_policy(*current), __func__); } +StatusOr +WebRiskServiceConnectionImpl::SubmitUri( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..73800241d4a02 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request) override; + + future> SubmitUri( + google::cloud::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..0e41e04afa923 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,30 @@ WebRiskServiceTracingConnection::SubmitUri( return internal::EndSpan(std::move(span), child_->SubmitUri(request)); } +StatusOr +WebRiskServiceTracingConnection::SubmitUri( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WebRiskServiceTracingConnection::SubmitUri( + google::cloud::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(google::cloud::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..c1c4d36eddcd8 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request) override; + + future> SubmitUri( + google::cloud::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..8b34bb85a5b0e 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request), + (override)); + + MOCK_METHOD(future>, + SubmitUri, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/webrisk/v1/web_risk_client.cc b/google/cloud/webrisk/v1/web_risk_client.cc index 7d64e50b36616..436af174b6678 100644 --- a/google/cloud/webrisk/v1/web_risk_client.cc +++ b/google/cloud/webrisk/v1/web_risk_client.cc @@ -121,6 +121,22 @@ WebRiskServiceClient::SubmitUri( return connection_->SubmitUri(request); } +StatusOr WebRiskServiceClient::SubmitUri( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SubmitUri(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WebRiskServiceClient::SubmitUri(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->SubmitUri(google::cloud::ExperimentalTag{}, operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace webrisk_v1 } // namespace cloud diff --git a/google/cloud/webrisk/v1/web_risk_client.h b/google/cloud/webrisk/v1/web_risk_client.h index c8cbb0a34c44f..f37ad2f14e939 100644 --- a/google/cloud/webrisk/v1/web_risk_client.h +++ b/google/cloud/webrisk/v1/web_risk_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_WEBRISK_V1_WEB_RISK_CLIENT_H #include "google/cloud/webrisk/v1/web_risk_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -425,6 +427,15 @@ class WebRiskServiceClient { google::cloud::webrisk::v1::SubmitUriRequest const& request, Options opts = {}); + StatusOr SubmitUri( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::webrisk::v1::SubmitUriRequest const& request, + Options opts = {}); + + future> SubmitUri( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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_client.h b/google/cloud/websecurityscanner/v1/web_security_scanner_client.h index 33db065a05ddf..58efd8d53f415 100644 --- a/google/cloud/websecurityscanner/v1/web_security_scanner_client.h +++ b/google/cloud/websecurityscanner/v1/web_security_scanner_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_WEBSECURITYSCANNER_V1_WEB_SECURITY_SCANNER_CLIENT_H #include "google/cloud/websecurityscanner/v1/web_security_scanner_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.h" 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_client.h b/google/cloud/workflows/executions/v1/executions_client.h index a31a48e22225f..b3f37ca3adff6 100644 --- a/google/cloud/workflows/executions/v1/executions_client.h +++ b/google/cloud/workflows/executions/v1/executions_client.h @@ -20,6 +20,7 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_WORKFLOWS_EXECUTIONS_V1_EXECUTIONS_CLIENT_H #include "google/cloud/workflows/executions/v1/executions_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.h" #include "google/cloud/options.h" #include "google/cloud/polling_policy.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..83966662d6ec0 100644 --- a/google/cloud/workflows/v1/internal/workflows_connection_impl.cc +++ b/google/cloud/workflows/v1/internal/workflows_connection_impl.cc @@ -150,6 +150,59 @@ WorkflowsConnectionImpl::CreateWorkflow( polling_policy(*current), __func__); } +StatusOr +WorkflowsConnectionImpl::CreateWorkflow( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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 +242,60 @@ WorkflowsConnectionImpl::DeleteWorkflow( polling_policy(*current), __func__); } +StatusOr +WorkflowsConnectionImpl::DeleteWorkflow( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +335,59 @@ WorkflowsConnectionImpl::UpdateWorkflow( polling_policy(*current), __func__); } +StatusOr +WorkflowsConnectionImpl::UpdateWorkflow( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::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..b0fe8591f3497 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request) + override; + + future> CreateWorkflow( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkflow(google::cloud::workflows::v1::DeleteWorkflowRequest const& request) override; + StatusOr DeleteWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request) + override; + + future> + DeleteWorkflow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request) override; + StatusOr UpdateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request) + override; + + future> UpdateWorkflow( + google::cloud::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..53dd23c713257 100644 --- a/google/cloud/workflows/v1/internal/workflows_tracing_connection.cc +++ b/google/cloud/workflows/v1/internal/workflows_tracing_connection.cc @@ -62,6 +62,30 @@ WorkflowsTracingConnection::CreateWorkflow( return internal::EndSpan(std::move(span), child_->CreateWorkflow(request)); } +StatusOr +WorkflowsTracingConnection::CreateWorkflow( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkflowsTracingConnection::CreateWorkflow( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> WorkflowsTracingConnection::DeleteWorkflow( google::cloud::workflows::v1::DeleteWorkflowRequest const& request) { @@ -71,6 +95,30 @@ WorkflowsTracingConnection::DeleteWorkflow( return internal::EndSpan(std::move(span), child_->DeleteWorkflow(request)); } +StatusOr +WorkflowsTracingConnection::DeleteWorkflow( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkflowsTracingConnection::DeleteWorkflow( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> WorkflowsTracingConnection::UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request) { @@ -80,6 +128,30 @@ WorkflowsTracingConnection::UpdateWorkflow( return internal::EndSpan(std::move(span), child_->UpdateWorkflow(request)); } +StatusOr +WorkflowsTracingConnection::UpdateWorkflow( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkflowsTracingConnection::UpdateWorkflow( + google::cloud::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(google::cloud::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..c1af7b9f3e87c 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request) + override; + + future> CreateWorkflow( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkflow(google::cloud::workflows::v1::DeleteWorkflowRequest const& request) override; + StatusOr DeleteWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request) + override; + + future> + DeleteWorkflow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request) override; + StatusOr UpdateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request) + override; + + future> UpdateWorkflow( + google::cloud::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..4968d46611a28 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, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request), + (override)); + + MOCK_METHOD(future>, + CreateWorkflow, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteWorkflow, (google::cloud::workflows::v1::DeleteWorkflowRequest const& request), (override)); + MOCK_METHOD( + StatusOr, DeleteWorkflow, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request), + (override)); + + MOCK_METHOD(future>, + DeleteWorkflow, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateWorkflow, (google::cloud::workflows::v1::UpdateWorkflowRequest const& request), (override)); + + MOCK_METHOD( + StatusOr, UpdateWorkflow, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request), + (override)); + + MOCK_METHOD(future>, + UpdateWorkflow, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); }; GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END diff --git a/google/cloud/workflows/v1/workflows_client.cc b/google/cloud/workflows/v1/workflows_client.cc index d4392e91c8571..cfa888eba8e45 100644 --- a/google/cloud/workflows/v1/workflows_client.cc +++ b/google/cloud/workflows/v1/workflows_client.cc @@ -75,6 +75,20 @@ WorkflowsClient::CreateWorkflow( return connection_->CreateWorkflow(request); } +StatusOr WorkflowsClient::CreateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::workflows::v1::Workflow const& workflow, + std::string const& workflow_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workflows::v1::CreateWorkflowRequest request; + request.set_parent(parent); + *request.mutable_workflow() = workflow; + request.set_workflow_id(workflow_id); + return connection_->CreateWorkflow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> WorkflowsClient::CreateWorkflow( google::cloud::workflows::v1::CreateWorkflowRequest const& request, @@ -83,6 +97,24 @@ WorkflowsClient::CreateWorkflow( return connection_->CreateWorkflow(request); } +StatusOr WorkflowsClient::CreateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkflow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WorkflowsClient::CreateWorkflow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkflow(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkflowsClient::DeleteWorkflow(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -91,6 +123,16 @@ WorkflowsClient::DeleteWorkflow(std::string const& name, Options opts) { return connection_->DeleteWorkflow(request); } +StatusOr WorkflowsClient::DeleteWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workflows::v1::DeleteWorkflowRequest request; + request.set_name(name); + return connection_->DeleteWorkflow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> WorkflowsClient::DeleteWorkflow( google::cloud::workflows::v1::DeleteWorkflowRequest const& request, @@ -99,6 +141,24 @@ WorkflowsClient::DeleteWorkflow( return connection_->DeleteWorkflow(request); } +StatusOr WorkflowsClient::DeleteWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkflow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WorkflowsClient::DeleteWorkflow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkflow(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkflowsClient::UpdateWorkflow( google::cloud::workflows::v1::Workflow const& workflow, @@ -110,6 +170,18 @@ WorkflowsClient::UpdateWorkflow( return connection_->UpdateWorkflow(request); } +StatusOr WorkflowsClient::UpdateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::Workflow const& workflow, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workflows::v1::UpdateWorkflowRequest request; + *request.mutable_workflow() = workflow; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateWorkflow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> WorkflowsClient::UpdateWorkflow( google::cloud::workflows::v1::UpdateWorkflowRequest const& request, @@ -118,6 +190,24 @@ WorkflowsClient::UpdateWorkflow( return connection_->UpdateWorkflow(request); } +StatusOr WorkflowsClient::UpdateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkflow(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WorkflowsClient::UpdateWorkflow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkflow(google::cloud::ExperimentalTag{}, + operation); +} + GOOGLE_CLOUD_CPP_INLINE_NAMESPACE_END } // namespace workflows_v1 } // namespace cloud diff --git a/google/cloud/workflows/v1/workflows_client.h b/google/cloud/workflows/v1/workflows_client.h index 28c5c79ff8967..b91b141069e4e 100644 --- a/google/cloud/workflows/v1/workflows_client.h +++ b/google/cloud/workflows/v1/workflows_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_WORKFLOWS_V1_WORKFLOWS_CLIENT_H #include "google/cloud/workflows/v1/workflows_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -267,6 +269,12 @@ class WorkflowsClient { google::cloud::workflows::v1::Workflow const& workflow, std::string const& workflow_id, Options opts = {}); + StatusOr CreateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::workflows::v1::Workflow const& workflow, + std::string const& workflow_id, Options opts = {}); + // clang-format off /// /// Creates a new workflow. If a workflow with the specified name already @@ -307,6 +315,15 @@ class WorkflowsClient { google::cloud::workflows::v1::CreateWorkflowRequest const& request, Options opts = {}); + StatusOr CreateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::CreateWorkflowRequest const& request, + Options opts = {}); + + future> CreateWorkflow( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + // clang-format off /// /// Deletes a workflow with the specified name. @@ -342,6 +359,10 @@ class WorkflowsClient { future> DeleteWorkflow(std::string const& name, Options opts = {}); + StatusOr DeleteWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes a workflow with the specified name. @@ -383,6 +404,16 @@ class WorkflowsClient { google::cloud::workflows::v1::DeleteWorkflowRequest const& request, Options opts = {}); + StatusOr DeleteWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::DeleteWorkflowRequest const& request, + Options opts = {}); + + future> + DeleteWorkflow(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an existing workflow. @@ -422,6 +453,11 @@ class WorkflowsClient { google::cloud::workflows::v1::Workflow const& workflow, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::Workflow const& workflow, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an existing workflow. @@ -464,6 +500,15 @@ class WorkflowsClient { google::cloud::workflows::v1::UpdateWorkflowRequest const& request, Options opts = {}); + StatusOr UpdateWorkflow( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workflows::v1::UpdateWorkflowRequest const& request, + Options opts = {}); + + future> UpdateWorkflow( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts = {}); + private: std::shared_ptr connection_; Options options_; 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..6a43f5594dbc3 100644 --- a/google/cloud/workstations/v1/internal/workstations_connection_impl.cc +++ b/google/cloud/workstations/v1/internal/workstations_connection_impl.cc @@ -159,6 +159,61 @@ WorkstationsConnectionImpl::CreateWorkstationCluster( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::CreateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +254,61 @@ WorkstationsConnectionImpl::UpdateWorkstationCluster( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::UpdateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +349,61 @@ WorkstationsConnectionImpl::DeleteWorkstationCluster( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::DeleteWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +536,62 @@ WorkstationsConnectionImpl::CreateWorkstationConfig( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::CreateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +633,62 @@ WorkstationsConnectionImpl::UpdateWorkstationConfig( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::UpdateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +730,62 @@ WorkstationsConnectionImpl::DeleteWorkstationConfig( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::DeleteWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +912,60 @@ WorkstationsConnectionImpl::CreateWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::CreateWorkstation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1006,60 @@ WorkstationsConnectionImpl::UpdateWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::UpdateWorkstation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1100,60 @@ WorkstationsConnectionImpl::DeleteWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::DeleteWorkstation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1194,60 @@ WorkstationsConnectionImpl::StartWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::StartWorkstation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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 +1288,60 @@ WorkstationsConnectionImpl::StopWorkstation( polling_policy(*current), __func__); } +StatusOr +WorkstationsConnectionImpl::StopWorkstation( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag, + google::longrunning::Operation 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..b7aa918cd1c1b 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request) override; + + future> + CreateWorkstationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& request) override; + StatusOr UpdateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request) override; + + future> + UpdateWorkstationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& request) override; + StatusOr DeleteWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request) override; + + future> + DeleteWorkstationCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request) override; + + future> + CreateWorkstationConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& request) override; + StatusOr UpdateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request) override; + + future> + UpdateWorkstationConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& request) override; + StatusOr DeleteWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request) override; + + future> + DeleteWorkstationConfig( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request) + override; + + future> + CreateWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request) override; + StatusOr UpdateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request) + override; + + future> + UpdateWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request) override; + StatusOr DeleteWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request) + override; + + future> + DeleteWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request) override; + StatusOr StartWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request) + override; + + future> + StartWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopWorkstation(google::cloud::workstations::v1::StopWorkstationRequest const& request) override; + StatusOr StopWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request) + override; + + future> + StopWorkstation(google::cloud::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..662a0cfe3fb44 100644 --- a/google/cloud/workstations/v1/internal/workstations_tracing_connection.cc +++ b/google/cloud/workstations/v1/internal/workstations_tracing_connection.cc @@ -66,6 +66,31 @@ WorkstationsTracingConnection::CreateWorkstationCluster( child_->CreateWorkstationCluster(request)); } +StatusOr +WorkstationsTracingConnection::CreateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::CreateWorkstationCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& @@ -77,6 +102,31 @@ WorkstationsTracingConnection::UpdateWorkstationCluster( child_->UpdateWorkstationCluster(request)); } +StatusOr +WorkstationsTracingConnection::UpdateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::UpdateWorkstationCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& @@ -88,6 +138,31 @@ WorkstationsTracingConnection::DeleteWorkstationCluster( child_->DeleteWorkstationCluster(request)); } +StatusOr +WorkstationsTracingConnection::DeleteWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::DeleteWorkstationCluster( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr WorkstationsTracingConnection::GetWorkstationConfig( google::cloud::workstations::v1::GetWorkstationConfigRequest const& @@ -134,6 +209,31 @@ WorkstationsTracingConnection::CreateWorkstationConfig( child_->CreateWorkstationConfig(request)); } +StatusOr +WorkstationsTracingConnection::CreateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::CreateWorkstationConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& @@ -145,6 +245,31 @@ WorkstationsTracingConnection::UpdateWorkstationConfig( child_->UpdateWorkstationConfig(request)); } +StatusOr +WorkstationsTracingConnection::UpdateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::UpdateWorkstationConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& @@ -156,6 +281,31 @@ WorkstationsTracingConnection::DeleteWorkstationConfig( child_->DeleteWorkstationConfig(request)); } +StatusOr +WorkstationsTracingConnection::DeleteWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::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( + google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::DeleteWorkstationConfig( + google::cloud::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( + google::cloud::ExperimentalTag{}, operation)); +} + StatusOr WorkstationsTracingConnection::GetWorkstation( google::cloud::workstations::v1::GetWorkstationRequest const& request) { @@ -198,6 +348,30 @@ WorkstationsTracingConnection::CreateWorkstation( return internal::EndSpan(std::move(span), child_->CreateWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::CreateWorkstation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::CreateWorkstation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request) { @@ -207,6 +381,30 @@ WorkstationsTracingConnection::UpdateWorkstation( return internal::EndSpan(std::move(span), child_->UpdateWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::UpdateWorkstation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::UpdateWorkstation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request) { @@ -216,6 +414,30 @@ WorkstationsTracingConnection::DeleteWorkstation( return internal::EndSpan(std::move(span), child_->DeleteWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::DeleteWorkstation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::DeleteWorkstation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request) { @@ -225,6 +447,30 @@ WorkstationsTracingConnection::StartWorkstation( return internal::EndSpan(std::move(span), child_->StartWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::StartWorkstation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::StartWorkstation( + google::cloud::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(google::cloud::ExperimentalTag{}, operation)); +} + future> WorkstationsTracingConnection::StopWorkstation( google::cloud::workstations::v1::StopWorkstationRequest const& request) { @@ -234,6 +480,30 @@ WorkstationsTracingConnection::StopWorkstation( return internal::EndSpan(std::move(span), child_->StopWorkstation(request)); } +StatusOr +WorkstationsTracingConnection::StopWorkstation( + google::cloud::ExperimentalTag, google::cloud::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(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request)); +} + +future> +WorkstationsTracingConnection::StopWorkstation( + google::cloud::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(google::cloud::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..aea2a9afddbae 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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request) override; + + future> + CreateWorkstationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& request) override; + StatusOr UpdateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request) override; + + future> + UpdateWorkstationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& request) override; + StatusOr DeleteWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request) override; + + future> + DeleteWorkstationCluster( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request) override; + + future> + CreateWorkstationConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& request) override; + StatusOr UpdateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request) override; + + future> + UpdateWorkstationConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& request) override; + StatusOr DeleteWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request) override; + + future> + DeleteWorkstationConfig( + google::cloud::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( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request) + override; + + future> + CreateWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request) override; + StatusOr UpdateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request) + override; + + future> + UpdateWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request) override; + StatusOr DeleteWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request) + override; + + future> + DeleteWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request) override; + StatusOr StartWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request) + override; + + future> + StartWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation) override; + future> StopWorkstation(google::cloud::workstations::v1::StopWorkstationRequest const& request) override; + StatusOr StopWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request) + override; + + future> + StopWorkstation(google::cloud::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..7271702e7bc49 100644 --- a/google/cloud/workstations/v1/mocks/mock_workstations_connection.h +++ b/google/cloud/workstations/v1/mocks/mock_workstations_connection.h @@ -67,6 +67,20 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateWorkstationCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateWorkstationCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateWorkstationCluster, @@ -74,6 +88,20 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateWorkstationCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateWorkstationCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteWorkstationCluster, @@ -81,6 +109,20 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteWorkstationCluster, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteWorkstationCluster, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetWorkstationConfig, @@ -108,6 +150,20 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, CreateWorkstationConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + CreateWorkstationConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, UpdateWorkstationConfig, @@ -115,6 +171,20 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, UpdateWorkstationConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + UpdateWorkstationConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, DeleteWorkstationConfig, @@ -122,6 +192,20 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD( + StatusOr, DeleteWorkstationConfig, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request), + (override)); + + MOCK_METHOD( + future>, + DeleteWorkstationConfig, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GetWorkstation, (google::cloud::workstations::v1::GetWorkstationRequest const& request), @@ -145,30 +229,90 @@ class MockWorkstationsConnection request), (override)); + MOCK_METHOD(StatusOr, CreateWorkstation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& + request), + (override)); + + MOCK_METHOD(future>, + CreateWorkstation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, UpdateWorkstation, (google::cloud::workstations::v1::UpdateWorkstationRequest const& request), (override)); + MOCK_METHOD(StatusOr, UpdateWorkstation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& + request), + (override)); + + MOCK_METHOD(future>, + UpdateWorkstation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD(future>, DeleteWorkstation, (google::cloud::workstations::v1::DeleteWorkstationRequest const& request), (override)); + MOCK_METHOD(StatusOr, DeleteWorkstation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& + request), + (override)); + + MOCK_METHOD(future>, + DeleteWorkstation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StartWorkstation, (google::cloud::workstations::v1::StartWorkstationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StartWorkstation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StartWorkstation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( future>, StopWorkstation, (google::cloud::workstations::v1::StopWorkstationRequest const& request), (override)); + MOCK_METHOD( + StatusOr, StopWorkstation, + (google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request), + (override)); + + MOCK_METHOD(future>, + StopWorkstation, + (google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation), + (override)); + MOCK_METHOD( StatusOr, GenerateAccessToken, diff --git a/google/cloud/workstations/v1/workstations_client.cc b/google/cloud/workstations/v1/workstations_client.cc index 5c0df026805c4..e36469f214d7f 100644 --- a/google/cloud/workstations/v1/workstations_client.cc +++ b/google/cloud/workstations/v1/workstations_client.cc @@ -81,6 +81,22 @@ WorkstationsClient::CreateWorkstationCluster( return connection_->CreateWorkstationCluster(request); } +StatusOr +WorkstationsClient::CreateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::workstations::v1::WorkstationCluster const& + workstation_cluster, + std::string const& workstation_cluster_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::CreateWorkstationClusterRequest request; + request.set_parent(parent); + *request.mutable_workstation_cluster() = workstation_cluster; + request.set_workstation_cluster_id(workstation_cluster_id); + return connection_->CreateWorkstationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::CreateWorkstationCluster( google::cloud::workstations::v1::CreateWorkstationClusterRequest const& @@ -90,6 +106,26 @@ WorkstationsClient::CreateWorkstationCluster( return connection_->CreateWorkstationCluster(request); } +StatusOr +WorkstationsClient::CreateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkstationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::CreateWorkstationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkstationCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkstationsClient::UpdateWorkstationCluster( google::cloud::workstations::v1::WorkstationCluster const& @@ -102,6 +138,20 @@ WorkstationsClient::UpdateWorkstationCluster( return connection_->UpdateWorkstationCluster(request); } +StatusOr +WorkstationsClient::UpdateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::WorkstationCluster const& + workstation_cluster, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::UpdateWorkstationClusterRequest request; + *request.mutable_workstation_cluster() = workstation_cluster; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateWorkstationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::UpdateWorkstationCluster( google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& @@ -111,6 +161,26 @@ WorkstationsClient::UpdateWorkstationCluster( return connection_->UpdateWorkstationCluster(request); } +StatusOr +WorkstationsClient::UpdateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkstationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::UpdateWorkstationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkstationCluster(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkstationsClient::DeleteWorkstationCluster(std::string const& name, Options opts) { @@ -120,6 +190,18 @@ WorkstationsClient::DeleteWorkstationCluster(std::string const& name, return connection_->DeleteWorkstationCluster(request); } +StatusOr +WorkstationsClient::DeleteWorkstationCluster(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::DeleteWorkstationClusterRequest request; + request.set_name(name); + return connection_->DeleteWorkstationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::DeleteWorkstationCluster( google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& @@ -129,6 +211,26 @@ WorkstationsClient::DeleteWorkstationCluster( return connection_->DeleteWorkstationCluster(request); } +StatusOr +WorkstationsClient::DeleteWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkstationCluster( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::DeleteWorkstationCluster( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkstationCluster(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr WorkstationsClient::GetWorkstationConfig(std::string const& name, Options opts) { @@ -195,6 +297,22 @@ WorkstationsClient::CreateWorkstationConfig( return connection_->CreateWorkstationConfig(request); } +StatusOr +WorkstationsClient::CreateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::workstations::v1::WorkstationConfig const& + workstation_config, + std::string const& workstation_config_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::CreateWorkstationConfigRequest request; + request.set_parent(parent); + *request.mutable_workstation_config() = workstation_config; + request.set_workstation_config_id(workstation_config_id); + return connection_->CreateWorkstationConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::CreateWorkstationConfig( google::cloud::workstations::v1::CreateWorkstationConfigRequest const& @@ -204,6 +322,26 @@ WorkstationsClient::CreateWorkstationConfig( return connection_->CreateWorkstationConfig(request); } +StatusOr +WorkstationsClient::CreateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkstationConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::CreateWorkstationConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkstationConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkstationsClient::UpdateWorkstationConfig( google::cloud::workstations::v1::WorkstationConfig const& @@ -216,6 +354,20 @@ WorkstationsClient::UpdateWorkstationConfig( return connection_->UpdateWorkstationConfig(request); } +StatusOr +WorkstationsClient::UpdateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::WorkstationConfig const& + workstation_config, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::UpdateWorkstationConfigRequest request; + *request.mutable_workstation_config() = workstation_config; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateWorkstationConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::UpdateWorkstationConfig( google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& @@ -225,6 +377,26 @@ WorkstationsClient::UpdateWorkstationConfig( return connection_->UpdateWorkstationConfig(request); } +StatusOr +WorkstationsClient::UpdateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkstationConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::UpdateWorkstationConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkstationConfig(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkstationsClient::DeleteWorkstationConfig(std::string const& name, Options opts) { @@ -234,6 +406,18 @@ WorkstationsClient::DeleteWorkstationConfig(std::string const& name, return connection_->DeleteWorkstationConfig(request); } +StatusOr +WorkstationsClient::DeleteWorkstationConfig(google::cloud::ExperimentalTag, + google::cloud::NoAwaitTag, + std::string const& name, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::DeleteWorkstationConfigRequest request; + request.set_name(name); + return connection_->DeleteWorkstationConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::DeleteWorkstationConfig( google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& @@ -243,6 +427,26 @@ WorkstationsClient::DeleteWorkstationConfig( return connection_->DeleteWorkstationConfig(request); } +StatusOr +WorkstationsClient::DeleteWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkstationConfig( + google::cloud::ExperimentalTag{}, google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::DeleteWorkstationConfig( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkstationConfig(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr WorkstationsClient::GetWorkstation(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -305,6 +509,20 @@ WorkstationsClient::CreateWorkstation( return connection_->CreateWorkstation(request); } +StatusOr WorkstationsClient::CreateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::workstations::v1::Workstation const& workstation, + std::string const& workstation_id, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::CreateWorkstationRequest request; + request.set_parent(parent); + *request.mutable_workstation() = workstation; + request.set_workstation_id(workstation_id); + return connection_->CreateWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::CreateWorkstation( google::cloud::workstations::v1::CreateWorkstationRequest const& request, @@ -313,6 +531,24 @@ WorkstationsClient::CreateWorkstation( return connection_->CreateWorkstation(request); } +StatusOr WorkstationsClient::CreateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::CreateWorkstation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->CreateWorkstation(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkstationsClient::UpdateWorkstation( google::cloud::workstations::v1::Workstation const& workstation, @@ -324,6 +560,18 @@ WorkstationsClient::UpdateWorkstation( return connection_->UpdateWorkstation(request); } +StatusOr WorkstationsClient::UpdateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::Workstation const& workstation, + google::protobuf::FieldMask const& update_mask, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::UpdateWorkstationRequest request; + *request.mutable_workstation() = workstation; + *request.mutable_update_mask() = update_mask; + return connection_->UpdateWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::UpdateWorkstation( google::cloud::workstations::v1::UpdateWorkstationRequest const& request, @@ -332,6 +580,24 @@ WorkstationsClient::UpdateWorkstation( return connection_->UpdateWorkstation(request); } +StatusOr WorkstationsClient::UpdateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::UpdateWorkstation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->UpdateWorkstation(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkstationsClient::DeleteWorkstation(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -340,6 +606,16 @@ WorkstationsClient::DeleteWorkstation(std::string const& name, Options opts) { return connection_->DeleteWorkstation(request); } +StatusOr WorkstationsClient::DeleteWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::DeleteWorkstationRequest request; + request.set_name(name); + return connection_->DeleteWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::DeleteWorkstation( google::cloud::workstations::v1::DeleteWorkstationRequest const& request, @@ -348,6 +624,24 @@ WorkstationsClient::DeleteWorkstation( return connection_->DeleteWorkstation(request); } +StatusOr WorkstationsClient::DeleteWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::DeleteWorkstation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->DeleteWorkstation(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkstationsClient::StartWorkstation(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -356,6 +650,16 @@ WorkstationsClient::StartWorkstation(std::string const& name, Options opts) { return connection_->StartWorkstation(request); } +StatusOr WorkstationsClient::StartWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::StartWorkstationRequest request; + request.set_name(name); + return connection_->StartWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::StartWorkstation( google::cloud::workstations::v1::StartWorkstationRequest const& request, @@ -364,6 +668,24 @@ WorkstationsClient::StartWorkstation( return connection_->StartWorkstation(request); } +StatusOr WorkstationsClient::StartWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::StartWorkstation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StartWorkstation(google::cloud::ExperimentalTag{}, + operation); +} + future> WorkstationsClient::StopWorkstation(std::string const& name, Options opts) { internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); @@ -372,6 +694,16 @@ WorkstationsClient::StopWorkstation(std::string const& name, Options opts) { return connection_->StopWorkstation(request); } +StatusOr WorkstationsClient::StopWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + google::cloud::workstations::v1::StopWorkstationRequest request; + request.set_name(name); + return connection_->StopWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + future> WorkstationsClient::StopWorkstation( google::cloud::workstations::v1::StopWorkstationRequest const& request, @@ -380,6 +712,24 @@ WorkstationsClient::StopWorkstation( return connection_->StopWorkstation(request); } +StatusOr WorkstationsClient::StopWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request, + Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopWorkstation(google::cloud::ExperimentalTag{}, + google::cloud::NoAwaitTag{}, request); +} + +future> +WorkstationsClient::StopWorkstation( + google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, Options opts) { + internal::OptionsSpan span(internal::MergeOptions(std::move(opts), options_)); + return connection_->StopWorkstation(google::cloud::ExperimentalTag{}, + operation); +} + StatusOr WorkstationsClient::GenerateAccessToken(std::string const& workstation, Options opts) { diff --git a/google/cloud/workstations/v1/workstations_client.h b/google/cloud/workstations/v1/workstations_client.h index 0e5014a5f01e1..95c3814183bab 100644 --- a/google/cloud/workstations/v1/workstations_client.h +++ b/google/cloud/workstations/v1/workstations_client.h @@ -20,7 +20,9 @@ #define GOOGLE_CLOUD_CPP_GOOGLE_CLOUD_WORKSTATIONS_V1_WORKSTATIONS_CLIENT_H #include "google/cloud/workstations/v1/workstations_connection.h" +#include "google/cloud/experimental_tag.h" #include "google/cloud/future.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" @@ -258,6 +260,13 @@ class WorkstationsClient { workstation_cluster, std::string const& workstation_cluster_id, Options opts = {}); + StatusOr CreateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::workstations::v1::WorkstationCluster const& + workstation_cluster, + std::string const& workstation_cluster_id, Options opts = {}); + // clang-format off /// /// Creates a new workstation cluster. @@ -298,6 +307,17 @@ class WorkstationsClient { request, Options opts = {}); + StatusOr CreateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationClusterRequest const& + request, + Options opts = {}); + + future> + CreateWorkstationCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an existing workstation cluster. @@ -335,6 +355,12 @@ class WorkstationsClient { workstation_cluster, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::WorkstationCluster const& + workstation_cluster, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an existing workstation cluster. @@ -375,6 +401,17 @@ class WorkstationsClient { request, Options opts = {}); + StatusOr UpdateWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationClusterRequest const& + request, + Options opts = {}); + + future> + UpdateWorkstationCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified workstation cluster. @@ -407,6 +444,10 @@ class WorkstationsClient { future> DeleteWorkstationCluster(std::string const& name, Options opts = {}); + StatusOr DeleteWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified workstation cluster. @@ -447,6 +488,17 @@ class WorkstationsClient { request, Options opts = {}); + StatusOr DeleteWorkstationCluster( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationClusterRequest const& + request, + Options opts = {}); + + future> + DeleteWorkstationCluster(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the requested workstation configuration. @@ -696,6 +748,13 @@ class WorkstationsClient { workstation_config, std::string const& workstation_config_id, Options opts = {}); + StatusOr CreateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::workstations::v1::WorkstationConfig const& + workstation_config, + std::string const& workstation_config_id, Options opts = {}); + // clang-format off /// /// Creates a new workstation configuration. @@ -736,6 +795,17 @@ class WorkstationsClient { request, Options opts = {}); + StatusOr CreateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationConfigRequest const& + request, + Options opts = {}); + + future> + CreateWorkstationConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an existing workstation configuration. @@ -773,6 +843,12 @@ class WorkstationsClient { workstation_config, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::WorkstationConfig const& + workstation_config, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an existing workstation configuration. @@ -813,6 +889,17 @@ class WorkstationsClient { request, Options opts = {}); + StatusOr UpdateWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationConfigRequest const& + request, + Options opts = {}); + + future> + UpdateWorkstationConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified workstation configuration. @@ -845,6 +932,10 @@ class WorkstationsClient { future> DeleteWorkstationConfig(std::string const& name, Options opts = {}); + StatusOr DeleteWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified workstation configuration. @@ -885,6 +976,17 @@ class WorkstationsClient { request, Options opts = {}); + StatusOr DeleteWorkstationConfig( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationConfigRequest const& + request, + Options opts = {}); + + future> + DeleteWorkstationConfig(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns the requested workstation. @@ -1129,6 +1231,12 @@ class WorkstationsClient { google::cloud::workstations::v1::Workstation const& workstation, std::string const& workstation_id, Options opts = {}); + StatusOr CreateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& parent, + google::cloud::workstations::v1::Workstation const& workstation, + std::string const& workstation_id, Options opts = {}); + // clang-format off /// /// Creates a new workstation. @@ -1168,6 +1276,16 @@ class WorkstationsClient { google::cloud::workstations::v1::CreateWorkstationRequest const& request, Options opts = {}); + StatusOr CreateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::CreateWorkstationRequest const& request, + Options opts = {}); + + future> + CreateWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Updates an existing workstation. @@ -1204,6 +1322,11 @@ class WorkstationsClient { google::cloud::workstations::v1::Workstation const& workstation, google::protobuf::FieldMask const& update_mask, Options opts = {}); + StatusOr UpdateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::Workstation const& workstation, + google::protobuf::FieldMask const& update_mask, Options opts = {}); + // clang-format off /// /// Updates an existing workstation. @@ -1243,6 +1366,16 @@ class WorkstationsClient { google::cloud::workstations::v1::UpdateWorkstationRequest const& request, Options opts = {}); + StatusOr UpdateWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::UpdateWorkstationRequest const& request, + Options opts = {}); + + future> + UpdateWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Deletes the specified workstation. @@ -1275,6 +1408,10 @@ class WorkstationsClient { future> DeleteWorkstation(std::string const& name, Options opts = {}); + StatusOr DeleteWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Deletes the specified workstation. @@ -1314,6 +1451,16 @@ class WorkstationsClient { google::cloud::workstations::v1::DeleteWorkstationRequest const& request, Options opts = {}); + StatusOr DeleteWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::DeleteWorkstationRequest const& request, + Options opts = {}); + + future> + DeleteWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Starts running a workstation so that users can connect to it. @@ -1346,6 +1493,10 @@ class WorkstationsClient { future> StartWorkstation(std::string const& name, Options opts = {}); + StatusOr StartWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Starts running a workstation so that users can connect to it. @@ -1385,6 +1536,16 @@ class WorkstationsClient { google::cloud::workstations::v1::StartWorkstationRequest const& request, Options opts = {}); + StatusOr StartWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StartWorkstationRequest const& request, + Options opts = {}); + + future> + StartWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Stops running a workstation, reducing costs. @@ -1417,6 +1578,10 @@ class WorkstationsClient { future> StopWorkstation(std::string const& name, Options opts = {}); + StatusOr StopWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + std::string const& name, Options opts = {}); + // clang-format off /// /// Stops running a workstation, reducing costs. @@ -1456,6 +1621,16 @@ class WorkstationsClient { google::cloud::workstations::v1::StopWorkstationRequest const& request, Options opts = {}); + StatusOr StopWorkstation( + google::cloud::ExperimentalTag, google::cloud::NoAwaitTag, + google::cloud::workstations::v1::StopWorkstationRequest const& request, + Options opts = {}); + + future> + StopWorkstation(google::cloud::ExperimentalTag, + google::longrunning::Operation const& operation, + Options opts = {}); + // clang-format off /// /// Returns a short-lived credential that can be used to send authenticated and 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&