v1.37.0
New GA Libraries
We are happy to announce that the following GA libraries. We expect these
libraries to have a stable API, to offer the full functionality of the
GA version of service they wrap, and to be ready for production use.
Expand to see the full list of new GA libraries...
- Access Approval
- Access Context Manager
- Anthos GKE API
- API Gateway
- App Engine Admin API
- Artifact Registry
- Assured Workloads
- AutoML
- Binary Authorization
- Certificate Authority Service
- Channel Services
- Cloud Asset Inventory
- Cloud Billing
- Cloud Build
- Cloud Composer
- Cloud Data Loss Prevention (DLP)
- Cloud Debugger
- Cloud Functions
- Cloud Intrusion Detection System (IDS)
- Cloud IoT
- Cloud Key Management Service (KMS)
- Cloud Scheduler
- Cloud Shell
- Cloud TPU
- Cloud Trace
- Cloud Translation
- Cloud Vision
- Compute Engine OS Config
- Compute Engine OS Login
- Connectivity Tests
- Container Analysis
- Database Migration Service (DMS)
- Eventarc
- Filestore
- Game Servers
- Google Kubernetes Engine (GKE)
- Identity-Aware Proxy (IAP)
- Memorystore for Memcached
- Memorystore for Redis
- Migrate for Compute Engine
- Organization Policy Service
- Policy Troubleshooter
- Recommender
- Resource Manager
- Retail
- Security Command Center
- Serverless VPC Access
- Service Control
- Service Directory
- Service Management
- Service Usage
- Storage Transfer Service
- Talent Solution
- Text-to-Speech
- Vertex AI Workbench
- Video Intelligence API
- Web Risk
- Web Security Scanner
- Workflows
BREAKING CHANGES
- As previously announced, we are removing certain legacy CMake targets and
Bazel rules in this release.- Bazel Users: applications should use the targets at the top-level
directory, e.g.//:bigtable, or//:pubsub. Targets in each directory
(e.g.//google/cloud/bigtable:bigtable_client) are now retired or marked
private. - CMake Users: applications should use the
google-cloud-cpp::*targets (e.g.google-cloud-cpp::pubsub).- All exported targets without a
google-cloud-cpp::prefix are retired.
These include, but are not limited to:- Any target starting with
googleapis-c++:: - Any exported targets without a prefix, including:
google_cloud_cpp_common,google_cloud_cpp_grpc_utils,
bigtable_client,bigtable_protos,firestore_client,
pubsub_client,storage_client,spanner_client. - Some target aliases, including
bigtable::client,bigtable::protos
- Any target starting with
- All exported targets without a
- pkg-config users: applications should use the modules starting with
google_cloud_cpp. All other modules are now retired. - Direct users of -l${library} flags: we do not recommend that
applications uses-lflags directly, please usepkg-configand/or
the target names under CMake or Bazel. We make this recommendation because
we do not know of any mechanism to provide backwards compatibility for such
flags. - More details about the rationale for these changes in #5726.
- Bazel Users: applications should use the targets at the top-level
BigQuery
The library has been expanded to include the following services:
- BigQuery ML
- BigQuery Connection API
- BigQuery Data Transfer Service
- BigQuery Reservations
- BigQuery Storage Write API
Bigtable
BREAKING CHANGE: The bigtable::AdminClient interface has changed
significantly. Any code that extends this class or calls its experimental public
APIs (reset(), Channel()) will be broken. For the most part, this should
only affect customers who mock this class in their tests. Code that calls
bigtable::MakeAdminClient() or bigtable::CreateDefaultAdminClient() will
continue to work as before.
This change will allow us to deliver new features more quickly by reducing the
maintenance costs of the library. It also provides a better mocking interface
for bigtable::TableAdmin. We apologize if you are inconvenienced by this
change.
If only your tests are broken, please use
bigtable_admin_mocks::MockBigtableTableAdminConnection in place of
bigtable::testing::MockAdminClient. The new mock should be more intuitive
because of the differences described below:
MockBigtableTableAdminConnection |
MockAdminClient |
|---|---|
| Mocks result of entire retry loop | Mocks result of one call in a retry loop |
Returns familiar google::cloud:: types |
Returns grpc:: types |
If more than your tests are broken, please use
bigtable_admin::BigtableTableAdminClient in favor of bigtable::TableAdmin,
and bigtable_admin::BigtableTableAdminConnection in favor of
bigtable::AdminClient. These classes will incorporate the newest features of
both the [Cloud Bigtable Admin API] and the C++ client library. For more
information on these new classes, see our [Architecture Design] document.
Again, we apologize for making this breaking change, but we believe it is in the
best long-term interest of our customers.
BREAKING CHANGE: The bigtable::InstanceAdminClient class has been marked
as final. After the changes in v1.36.0, there is no need
or reason to be extending this class.
OTHER CHANGES:
- feat(bigtable): better support for PSC and VPC-SC (#8458)
- fix(bigtable): ReadRows retries from the
last_scanned_row_key(#8423) - feat(bigtable): support x-goog-user-project (#8324)
IAM
- docs(iam): added comments on private_key_data (#8204)
Pub/Sub
- feat(pubsub): support
AuthorityOption(#8460) - feat(pubsub): support x-goog-user-project (#8456)
- feat(pubsub): per-call Options for SubscriptionAdminClient (#8414)
- feat(pubsub): per-call options in TopicAdminClient (#8411)
- feat(pubsub): per-call options in SchemaAdminClient (#8406)
- doc(pubsub): add region tag for subscription with filter (#8326)
Spanner
All the spanner::Client operations now take optional google::cloud::Options
arguments, replacing the existing ClientOptions, CommitOptions,
PartitionOptions, QueryOptions, and ReadOptions arguments, or adding
options to operations that previously had none. Users should migrate to these
new overloads. (Note that the old spanner::*Options types have not been
deprecated as they are still used in the spanner::Connection interface.)
OTHER CHANGES:
- feat(spanner): use prevailing Options in ConnectionImpl (#8466)
- feat(spanner): convert ReadOptions/PartitionOptions to Options (#8448)
- fix(spanner): instantiate OptionsSpan objects in legacy admin calls (#8440)
- feat(spanner): convert QueryOptions to Options in main client API (#8430)
- fix(spanner): add Options save/restore to PartialResultSetSource (#8355)
- feat(spanner): support x-goog-user-project (#8316)
Storage
- feat(storage): support AuthorityOption (#8462)
- fix(storage): json["projectTeam"] might be present but null (#8446)
- doc(storage): improve
{Bucket,Object}Metadatadocs (#8434) - fix(storage): ignored fields in lifecycle patches (#8389)
- doc(storage): show how to configure endpoints (#8354)
- doc(storage): UserIp option is deprecated (#8468)
Common Libraries
- feat(generator): all bidir streams are experimental (#8471)
- feat: better support for PSC and VPC-SC (#8453)
- fix: wait until AutomaticallyCreatedBackgroundThreads start (#8452)
- fix: restore Options over deletion of StreamRange::reader_ (#8403)
- feat(common): converting constructors for future (#8329)
- fix: add Options save/restore to StreamRange and cancellations (#8256)
- feat(generator): support parameters named "options" (#8283)
- feat(generator): support
x-goog-user-project(#8245) - fix: correct uses of
target_compatible_with(#8257) - fix(generator): Connection base-class operations should fail (#8236)
New Libraries
We are introducing client libraries for 9 more GCP services. While we do not
anticipate any API changes to these libraries before declaring them GA, we are
releasing them early in case they elicit some feedback that requires changes.