diff --git a/ci/abi-dumps/google_cloud_cpp_storage.expected.abi.dump.gz b/ci/abi-dumps/google_cloud_cpp_storage.expected.abi.dump.gz
index fb09695e3244b..ae451d400e8ea 100644
Binary files a/ci/abi-dumps/google_cloud_cpp_storage.expected.abi.dump.gz and b/ci/abi-dumps/google_cloud_cpp_storage.expected.abi.dump.gz differ
diff --git a/ci/abi-dumps/google_cloud_cpp_storage_grpc.expected.abi.dump.gz b/ci/abi-dumps/google_cloud_cpp_storage_grpc.expected.abi.dump.gz
index b2a7317b27a8d..316542011311d 100644
Binary files a/ci/abi-dumps/google_cloud_cpp_storage_grpc.expected.abi.dump.gz and b/ci/abi-dumps/google_cloud_cpp_storage_grpc.expected.abi.dump.gz differ
diff --git a/doc/v3-migration-guide.md b/doc/v3-migration-guide.md
index dd860d9473b9c..54e28de2c4661 100644
--- a/doc/v3-migration-guide.md
+++ b/doc/v3-migration-guide.md
@@ -555,6 +555,71 @@ void CreateClient() {
+
+Removed Client(Connection, NoDecorations) constructor
+
+The `Client` constructor that accepted a `StorageConnection` and the
+`NoDecorations` tag has been removed. This was intended only for test code.
+
+**Before:**
+
+```cpp
+#include "google/cloud/storage/client.h"
+#include "google/cloud/storage/testing/mock_storage_connection.h"
+
+void TestClient() {
+ auto mock = std::make_shared();
+ // ...
+ auto client = google::cloud::storage::Client(
+ mock, google::cloud::storage::Client::NoDecorations{});
+}
+```
+
+**After:**
+
+```cpp
+#include "google/cloud/storage/client.h"
+#include "google/cloud/storage/testing/mock_storage_connection.h"
+
+void TestClient() {
+ auto mock = std::make_shared();
+ // ...
+ auto client = google::cloud::storage::internal::ClientImplDetails::CreateWithoutDecorations(mock);
+}
+```
+
+
+
+
+Removed Client::raw_client()
+
+The `Client::raw_client()` method has been removed. This was intended only for
+internal use or testing. If you need access to the underlying connection for
+testing purposes, use `google::cloud::storage::internal::ClientImplDetails`.
+
+**Before:**
+
+```cpp
+#include "google/cloud/storage/client.h"
+
+void UseRawClient(google::cloud::storage::Client client) {
+ auto connection = client.raw_client();
+}
+```
+
+**After:**
+
+```cpp
+#include "google/cloud/storage/client.h"
+
+void UseRawClient(google::cloud::storage::Client client) {
+ auto connection =
+ google::cloud::storage::internal::ClientImplDetails::GetConnection(client);
+}
+```
+
+
+
### IAM
diff --git a/google/cloud/storage/client.h b/google/cloud/storage/client.h
index a6f9ee70a2d50..6c8b8ec463d6f 100644
--- a/google/cloud/storage/client.h
+++ b/google/cloud/storage/client.h
@@ -3441,27 +3441,6 @@ class Client {
/// Define a tag to disable automatic decorations of the StorageConnection.
struct NoDecorations {};
- /// Builds a client with a specific StorageConnection, without decorations.
- /// @deprecated This was intended only for test code, applications should not
- /// use it.
- GOOGLE_CLOUD_CPP_DEPRECATED(
- "applications should not need this."
- " Please file a bug at https://github.com/googleapis/google-cloud-cpp"
- " if you do.")
- explicit Client(std::shared_ptr connection,
- NoDecorations)
- : Client(InternalOnlyNoDecorations{}, std::move(connection)) {}
-
- /// Access the underlying `StorageConnection`.
- /// @deprecated Only intended for implementors, do not use.
- GOOGLE_CLOUD_CPP_DEPRECATED(
- "applications should not need this."
- " Please file a bug at https://github.com/googleapis/google-cloud-cpp"
- " if you do.")
- std::shared_ptr raw_client() const {
- return connection_;
- }
-
private:
friend class internal::NonResumableParallelUploadState;
friend class internal::ResumableParallelUploadState;
diff --git a/google/cloud/storage/grpc_plugin_test.cc b/google/cloud/storage/grpc_plugin_test.cc
index 8be88c86aae45..df66fbeaaf4a8 100644
--- a/google/cloud/storage/grpc_plugin_test.cc
+++ b/google/cloud/storage/grpc_plugin_test.cc
@@ -117,9 +117,9 @@ TEST(GrpcPluginTest, HybridUsesGrpcBufferOptions) {
ScopedEnvironment("GOOGLE_CLOUD_CPP_STORAGE_GRPC_CONFIG", absl::nullopt);
auto client = MakeGrpcClient(
TestOptions().set("media"));
- EXPECT_GE(
- client.raw_client()->options().get(),
- 32 * 1024 * 1024L);
+ auto connection = ClientImplDetails::GetConnection(client);
+ EXPECT_GE(connection->options().get(),
+ 32 * 1024 * 1024UL);
}
TEST(GrpcPluginTest, BackwardsCompatibilityShims) {