1*55e87721SMatt Gilbride# Google Cloud Java Client Libraries 2*55e87721SMatt Gilbride 3*55e87721SMatt Gilbride> Java idiomatic client for [Google Cloud Platform][cloud-platform] services. 4*55e87721SMatt Gilbride 5*55e87721SMatt Gilbride* [Java on Google Cloud][cloud-java] 6*55e87721SMatt Gilbride 7*55e87721SMatt Gilbride## Supported APIs 8*55e87721SMatt Gilbride 9*55e87721SMatt GilbrideLibraries are available on GitHub and Maven Central for developing Java applications that interact with individual Google Cloud services: 10*55e87721SMatt Gilbride 11*55e87721SMatt Gilbride[//]: # (API_TABLE_START) 12*55e87721SMatt Gilbride 13*55e87721SMatt Gilbride| Client | Release Level | Version | 14*55e87721SMatt Gilbride| ------ | ------------- | ------- | 15*55e87721SMatt Gilbride| [AI Platform Notebooks](https://github.com/googleapis/google-cloud-java/tree/main/java-notebooks) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-notebooks&core=gav) | 16*55e87721SMatt Gilbride| [API Gateway](https://github.com/googleapis/google-cloud-java/tree/main/java-api-gateway) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-api-gateway&core=gav) | 17*55e87721SMatt Gilbride| [Access Approval](https://github.com/googleapis/google-cloud-java/tree/main/java-accessapproval) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-accessapproval&core=gav) | 18*55e87721SMatt Gilbride| [Apigee Connect](https://github.com/googleapis/google-cloud-java/tree/main/java-apigee-connect) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-apigee-connect&core=gav) | 19*55e87721SMatt Gilbride| [App Engine Admin API](https://github.com/googleapis/google-cloud-java/tree/main/java-appengine-admin) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-appengine-admin&core=gav) | 20*55e87721SMatt Gilbride| [Artifact Registry](https://github.com/googleapis/google-cloud-java/tree/main/java-artifact-registry) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-artifact-registry&core=gav) | 21*55e87721SMatt Gilbride| [Asset Inventory](https://github.com/googleapis/google-cloud-java/tree/main/java-asset) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-asset&core=gav) | 22*55e87721SMatt Gilbride| [Assured Workloads for Government](https://github.com/googleapis/google-cloud-java/tree/main/java-assured-workloads) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-assured-workloads&core=gav) | 23*55e87721SMatt Gilbride| [Auto ML](https://github.com/googleapis/google-cloud-java/tree/main/java-automl) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-automl&core=gav) | 24*55e87721SMatt Gilbride| [BigQuery](https://github.com/googleapis/java-bigquery) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquery&core=gav) | 25*55e87721SMatt Gilbride| [BigQuery Connection](https://github.com/googleapis/google-cloud-java/tree/main/java-bigqueryconnection) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigqueryconnection&core=gav) | 26*55e87721SMatt Gilbride| [BigQuery Data Transfer Service](https://github.com/googleapis/google-cloud-java/tree/main/java-bigquerydatatransfer) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquerydatatransfer&core=gav) | 27*55e87721SMatt Gilbride| [BigQuery Reservation](https://github.com/googleapis/google-cloud-java/tree/main/java-bigqueryreservation) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigqueryreservation&core=gav) | 28*55e87721SMatt Gilbride| [BigQuery Storage](https://github.com/googleapis/java-bigquerystorage) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquerystorage&core=gav) | 29*55e87721SMatt Gilbride| [Bigtable](https://github.com/googleapis/java-bigtable) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigtable&core=gav) | 30*55e87721SMatt Gilbride| [Bigtable Hbase Client](https://github.com/googleapis/java-bigtable-hbase) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud.bigtable%20AND%20a:bigtable-client-parent&core=gav) | 31*55e87721SMatt Gilbride| [Billing](https://github.com/googleapis/google-cloud-java/tree/main/java-billing) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-billing&core=gav) | 32*55e87721SMatt Gilbride| [Billing Budgets](https://github.com/googleapis/google-cloud-java/tree/main/java-billingbudgets) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-billingbudgets&core=gav) | 33*55e87721SMatt Gilbride| [Binary Authorization](https://github.com/googleapis/google-cloud-java/tree/main/java-binary-authorization) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-binary-authorization&core=gav) | 34*55e87721SMatt Gilbride| [Build](https://github.com/googleapis/google-cloud-java/tree/main/java-cloudbuild) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-build&core=gav) | 35*55e87721SMatt Gilbride| [CCAI Insights](https://github.com/googleapis/google-cloud-java/tree/main/java-contact-center-insights) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-contact-center-insights&core=gav) | 36*55e87721SMatt Gilbride| [Certificate Authority Service](https://github.com/googleapis/google-cloud-java/tree/main/java-security-private-ca) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-security-private-ca&core=gav) | 37*55e87721SMatt Gilbride| [Channel Services](https://github.com/googleapis/google-cloud-java/tree/main/java-channel) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-channel&core=gav) | 38*55e87721SMatt Gilbride| [Composer](https://github.com/googleapis/google-cloud-java/tree/main/java-orchestration-airflow) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-orchestration-airflow&core=gav) | 39*55e87721SMatt Gilbride| [Compute Engine](https://github.com/googleapis/google-cloud-java/tree/main/java-compute) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-compute&core=gav) | 40*55e87721SMatt Gilbride| [Container Analysis](https://github.com/googleapis/google-cloud-java/tree/main/java-containeranalysis) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-containeranalysis&core=gav) | 41*55e87721SMatt Gilbride| [DNS](https://github.com/googleapis/google-cloud-java/tree/main/java-dns) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dns&core=gav) | 42*55e87721SMatt Gilbride| [Data Catalog](https://github.com/googleapis/google-cloud-java/tree/main/java-datacatalog) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-datacatalog&core=gav) | 43*55e87721SMatt Gilbride| [Data Fusion](https://github.com/googleapis/google-cloud-java/tree/main/java-data-fusion) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-data-fusion&core=gav) | 44*55e87721SMatt Gilbride| [Data Loss Prevention](https://github.com/googleapis/google-cloud-java/tree/main/java-dlp) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dlp&core=gav) | 45*55e87721SMatt Gilbride| [Database Migration Service](https://github.com/googleapis/google-cloud-java/tree/main/java-dms) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dms&core=gav) | 46*55e87721SMatt Gilbride| [Dataplex](https://github.com/googleapis/google-cloud-java/tree/main/java-dataplex) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dataplex&core=gav) | 47*55e87721SMatt Gilbride| [Dataproc](https://github.com/googleapis/google-cloud-java/tree/main/java-dataproc) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dataproc&core=gav) | 48*55e87721SMatt Gilbride| [Dataproc Metastore](https://github.com/googleapis/google-cloud-java/tree/main/java-dataproc-metastore) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dataproc-metastore&core=gav) | 49*55e87721SMatt Gilbride| [Datastore](https://github.com/googleapis/java-datastore) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-datastore&core=gav) | 50*55e87721SMatt Gilbride| [Datastream](https://github.com/googleapis/google-cloud-java/tree/main/java-datastream) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-datastream&core=gav) | 51*55e87721SMatt Gilbride| [Debugger](https://github.com/googleapis/google-cloud-java/tree/main/java-debugger-client) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-debugger-client&core=gav) | 52*55e87721SMatt Gilbride| [Deploy](https://github.com/googleapis/google-cloud-java/tree/main/java-deploy) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-deploy&core=gav) | 53*55e87721SMatt Gilbride| [Dialogflow API](https://github.com/googleapis/google-cloud-java/tree/main/java-dialogflow) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dialogflow&core=gav) | 54*55e87721SMatt Gilbride| [Document AI](https://github.com/googleapis/google-cloud-java/tree/main/java-document-ai) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-document-ai&core=gav) | 55*55e87721SMatt Gilbride| [Domains](https://github.com/googleapis/google-cloud-java/tree/main/java-domains) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-domains&core=gav) | 56*55e87721SMatt Gilbride| [Essential Contacts API](https://github.com/googleapis/google-cloud-java/tree/main/java-essential-contacts) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-essential-contacts&core=gav) | 57*55e87721SMatt Gilbride| [Eventarc](https://github.com/googleapis/google-cloud-java/tree/main/java-eventarc) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-eventarc&core=gav) | 58*55e87721SMatt Gilbride| [Filestore API](https://github.com/googleapis/google-cloud-java/tree/main/java-filestore) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-filestore&core=gav) | 59*55e87721SMatt Gilbride| [Firestore](https://github.com/googleapis/java-firestore) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-firestore&core=gav) | 60*55e87721SMatt Gilbride| [Fleet Routing](https://github.com/googleapis/google-cloud-java/tree/main/java-optimization) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-optimization&core=gav) | 61*55e87721SMatt Gilbride| [Functions](https://github.com/googleapis/google-cloud-java/tree/main/java-functions) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-functions&core=gav) | 62*55e87721SMatt Gilbride| [GKE Hub API](https://github.com/googleapis/google-cloud-java/tree/main/java-gkehub) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-gkehub&core=gav) | 63*55e87721SMatt Gilbride| [Gaming](https://github.com/googleapis/google-cloud-java/tree/main/java-game-servers) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-game-servers&core=gav) | 64*55e87721SMatt Gilbride| [IAM](https://github.com/googleapis/google-cloud-java/tree/main/java-iam) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-iam-policy&core=gav) | 65*55e87721SMatt Gilbride| [IAM Admin API](https://github.com/googleapis/google-cloud-java/tree/main/java-iam-admin) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-iam-admin&core=gav) | 66*55e87721SMatt Gilbride| [IAM Policy Troubleshooter API](https://github.com/googleapis/google-cloud-java/tree/main/java-policy-troubleshooter) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-policy-troubleshooter&core=gav) | 67*55e87721SMatt Gilbride| [IAM Service Account Credentials API](https://github.com/googleapis/google-cloud-java/tree/main/java-iamcredentials) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-iamcredentials&core=gav) | 68*55e87721SMatt Gilbride| [Identity Access Context Manager](https://github.com/googleapis/google-cloud-java/tree/main/java-accesscontextmanager) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-identity-accesscontextmanager&core=gav) | 69*55e87721SMatt Gilbride| [Internet of Things (IoT) Core](https://github.com/googleapis/google-cloud-java/tree/main/java-iot) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-iot&core=gav) | 70*55e87721SMatt Gilbride| [Intrusion Detection System](https://github.com/googleapis/google-cloud-java/tree/main/java-ids) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-ids&core=gav) | 71*55e87721SMatt Gilbride| [Key Management Service](https://github.com/googleapis/google-cloud-java/tree/main/java-kms) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-kms&core=gav) | 72*55e87721SMatt Gilbride| [Kubernetes Engine](https://github.com/googleapis/google-cloud-java/tree/main/java-container) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-container&core=gav) | 73*55e87721SMatt Gilbride| [Logging](https://github.com/googleapis/java-logging) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-logging&core=gav) | 74*55e87721SMatt Gilbride| [Managed Service for Microsoft Active Directory](https://github.com/googleapis/google-cloud-java/tree/main/java-managed-identities) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-managed-identities&core=gav) | 75*55e87721SMatt Gilbride| [Memcache](https://github.com/googleapis/google-cloud-java/tree/main/java-memcache) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-memcache&core=gav) | 76*55e87721SMatt Gilbride| [Monitoring Dashboards](https://github.com/googleapis/google-cloud-java/tree/main/java-monitoring-dashboards) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-monitoring-dashboard&core=gav) | 77*55e87721SMatt Gilbride| [Natural Language](https://github.com/googleapis/google-cloud-java/tree/main/java-language) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-language&core=gav) | 78*55e87721SMatt Gilbride| [Network Connectivity Center](https://github.com/googleapis/google-cloud-java/tree/main/java-networkconnectivity) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-networkconnectivity&core=gav) | 79*55e87721SMatt Gilbride| [Network Management API](https://github.com/googleapis/google-cloud-java/tree/main/java-network-management) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-network-management&core=gav) | 80*55e87721SMatt Gilbride| [OS Config API](https://github.com/googleapis/google-cloud-java/tree/main/java-os-config) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-os-config&core=gav) | 81*55e87721SMatt Gilbride| [OS Login](https://github.com/googleapis/google-cloud-java/tree/main/java-os-login) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-os-login&core=gav) | 82*55e87721SMatt Gilbride| [Organization Policy](https://github.com/googleapis/google-cloud-java/tree/main/java-orgpolicy) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-orgpolicy&core=gav) | 83*55e87721SMatt Gilbride| [Profiler](https://github.com/googleapis/google-cloud-java/tree/main/java-profiler) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-profiler&core=gav) | 84*55e87721SMatt Gilbride| [Pub/Sub](https://github.com/googleapis/java-pubsub) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-pubsub&core=gav) | 85*55e87721SMatt Gilbride| [Pub/Sub Group Kafka Connector](https://github.com/googleapis/java-pubsub-group-kafka-connector) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:pubsub-group-kafka-connector&core=gav) | 86*55e87721SMatt Gilbride| [Pub/Sub Lite](https://github.com/googleapis/java-pubsublite) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-pubsublite&core=gav) | 87*55e87721SMatt Gilbride| [Pub/Sub Lite Kafka Shim](https://github.com/googleapis/java-pubsublite-kafka) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:pubsublite-kafka&core=gav) | 88*55e87721SMatt Gilbride| [Pub/Sub Lite Spark Connector](https://github.com/googleapis/java-pubsublite-spark) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:pubsublite-spark-sql-streaming&core=gav) | 89*55e87721SMatt Gilbride| [Recommender](https://github.com/googleapis/google-cloud-java/tree/main/java-recommender) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-recommender&core=gav) | 90*55e87721SMatt Gilbride| [Redis](https://github.com/googleapis/google-cloud-java/tree/main/java-redis) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-redis&core=gav) | 91*55e87721SMatt Gilbride| [Resource Manager API](https://github.com/googleapis/google-cloud-java/tree/main/java-resourcemanager) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-resourcemanager&core=gav) | 92*55e87721SMatt Gilbride| [Resource Settings API](https://github.com/googleapis/google-cloud-java/tree/main/java-resource-settings) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-resource-settings&core=gav) | 93*55e87721SMatt Gilbride| [Retail](https://github.com/googleapis/google-cloud-java/tree/main/java-retail) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-retail&core=gav) | 94*55e87721SMatt Gilbride| [Routes API](https://github.com/googleapis/google-cloud-java/tree/main/java-maps-routing) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.maps%20AND%20a:google-maps-routing&core=gav) | 95*55e87721SMatt Gilbride| [Scheduler](https://github.com/googleapis/google-cloud-java/tree/main/java-scheduler) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-scheduler&core=gav) | 96*55e87721SMatt Gilbride| [Secret Management](https://github.com/googleapis/google-cloud-java/tree/main/java-secretmanager) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-secretmanager&core=gav) | 97*55e87721SMatt Gilbride| [Security Command Center](https://github.com/googleapis/google-cloud-java/tree/main/java-securitycenter) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-securitycenter&core=gav) | 98*55e87721SMatt Gilbride| [Security Scanner](https://github.com/googleapis/google-cloud-java/tree/main/java-websecurityscanner) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-websecurityscanner&core=gav) | 99*55e87721SMatt Gilbride| [Serverless VPC Access](https://github.com/googleapis/google-cloud-java/tree/main/java-vpcaccess) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-vpcaccess&core=gav) | 100*55e87721SMatt Gilbride| [Service Control API](https://github.com/googleapis/google-cloud-java/tree/main/java-service-control) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-service-control&core=gav) | 101*55e87721SMatt Gilbride| [Service Directory](https://github.com/googleapis/google-cloud-java/tree/main/java-servicedirectory) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-servicedirectory&core=gav) | 102*55e87721SMatt Gilbride| [Service Management API](https://github.com/googleapis/google-cloud-java/tree/main/java-service-management) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-service-management&core=gav) | 103*55e87721SMatt Gilbride| [Service Usage](https://github.com/googleapis/google-cloud-java/tree/main/java-service-usage) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-service-usage&core=gav) | 104*55e87721SMatt Gilbride| [Shell](https://github.com/googleapis/google-cloud-java/tree/main/java-shell) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-shell&core=gav) | 105*55e87721SMatt Gilbride| [Spanner](https://github.com/googleapis/java-spanner) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-spanner&core=gav) | 106*55e87721SMatt Gilbride| [Spanner JDBC](https://github.com/googleapis/java-spanner-jdbc) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-spanner-jdbc&core=gav) | 107*55e87721SMatt Gilbride| [Speech](https://github.com/googleapis/google-cloud-java/tree/main/java-speech) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-speech&core=gav) | 108*55e87721SMatt Gilbride| [Stackdriver Monitoring](https://github.com/googleapis/google-cloud-java/tree/main/java-monitoring) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-monitoring&core=gav) | 109*55e87721SMatt Gilbride| [Stackdriver Trace](https://github.com/googleapis/google-cloud-java/tree/main/java-trace) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-trace&core=gav) | 110*55e87721SMatt Gilbride| [Storage](https://github.com/googleapis/java-storage) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-storage&core=gav) | 111*55e87721SMatt Gilbride| [Storage Transfer Service](https://github.com/googleapis/google-cloud-java/tree/main/java-storage-transfer) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-storage-transfer&core=gav) | 112*55e87721SMatt Gilbride| [TPU](https://github.com/googleapis/google-cloud-java/tree/main/java-tpu) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-tpu&core=gav) | 113*55e87721SMatt Gilbride| [Talent Solution](https://github.com/googleapis/google-cloud-java/tree/main/java-talent) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-talent&core=gav) | 114*55e87721SMatt Gilbride| [Tasks](https://github.com/googleapis/google-cloud-java/tree/main/java-tasks) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-tasks&core=gav) | 115*55e87721SMatt Gilbride| [Text-to-Speech](https://github.com/googleapis/google-cloud-java/tree/main/java-texttospeech) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-texttospeech&core=gav) | 116*55e87721SMatt Gilbride| [Translation](https://github.com/googleapis/google-cloud-java/tree/main/java-translate) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-translate&core=gav) | 117*55e87721SMatt Gilbride| [VM Migration](https://github.com/googleapis/google-cloud-java/tree/main/java-vmmigration) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-vmmigration&core=gav) | 118*55e87721SMatt Gilbride| [Vertex AI](https://github.com/googleapis/google-cloud-java/tree/main/java-aiplatform) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-aiplatform&core=gav) | 119*55e87721SMatt Gilbride| [Video Intelligence](https://github.com/googleapis/google-cloud-java/tree/main/java-video-intelligence) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-video-intelligence&core=gav) | 120*55e87721SMatt Gilbride| [Video Transcoder](https://github.com/googleapis/google-cloud-java/tree/main/java-video-transcoder) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-video-transcoder&core=gav) | 121*55e87721SMatt Gilbride| [Vision](https://github.com/googleapis/google-cloud-java/tree/main/java-vision) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-vision&core=gav) | 122*55e87721SMatt Gilbride| [Web Risk](https://github.com/googleapis/google-cloud-java/tree/main/java-webrisk) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-webrisk&core=gav) | 123*55e87721SMatt Gilbride| [Workflow Executions](https://github.com/googleapis/google-cloud-java/tree/main/java-workflow-executions) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-workflow-executions&core=gav) | 124*55e87721SMatt Gilbride| [Workflows](https://github.com/googleapis/google-cloud-java/tree/main/java-workflows) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-workflows&core=gav) | 125*55e87721SMatt Gilbride| [Workspace Add-ons API](https://github.com/googleapis/google-cloud-java/tree/main/java-gsuite-addons) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-gsuite-addons&core=gav) | 126*55e87721SMatt Gilbride| [reCAPTCHA Enterprise](https://github.com/googleapis/google-cloud-java/tree/main/java-recaptchaenterprise) | [![stable][stable-stability]][stable-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-recaptchaenterprise&core=gav) | 127*55e87721SMatt Gilbride| [API Keys API](https://github.com/googleapis/google-cloud-java/tree/main/java-apikeys) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-apikeys&core=gav) | 128*55e87721SMatt Gilbride| [Address Validation API](https://github.com/googleapis/google-cloud-java/tree/main/java-maps-addressvalidation) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.maps%20AND%20a:google-maps-addressvalidation&core=gav) | 129*55e87721SMatt Gilbride| [Advisory Notifications API](https://github.com/googleapis/google-cloud-java/tree/main/java-advisorynotifications) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-advisorynotifications&core=gav) | 130*55e87721SMatt Gilbride| [AlloyDB](https://github.com/googleapis/google-cloud-java/tree/main/java-alloydb) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-alloydb&core=gav) | 131*55e87721SMatt Gilbride| [Analytics Admin](https://github.com/googleapis/google-cloud-java/tree/main/java-analytics-admin) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.analytics%20AND%20a:google-analytics-admin&core=gav) | 132*55e87721SMatt Gilbride| [Analytics Data](https://github.com/googleapis/google-cloud-java/tree/main/java-analytics-data) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.analytics%20AND%20a:google-analytics-data&core=gav) | 133*55e87721SMatt Gilbride| [Analytics Hub](https://github.com/googleapis/google-cloud-java/tree/main/java-bigquery-data-exchange) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquery-data-exchange&core=gav) | 134*55e87721SMatt Gilbride| [Analytics Hub API](https://github.com/googleapis/google-cloud-java/tree/main/java-analyticshub) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-analyticshub&core=gav) | 135*55e87721SMatt Gilbride| [Anthos Multicloud](https://github.com/googleapis/google-cloud-java/tree/main/java-gke-multi-cloud) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-gke-multi-cloud&core=gav) | 136*55e87721SMatt Gilbride| [Area 120 Tables](https://github.com/googleapis/google-cloud-java/tree/main/java-area120-tables) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.area120%20AND%20a:google-area120-tables&core=gav) | 137*55e87721SMatt Gilbride| [Backup for GKE](https://github.com/googleapis/google-cloud-java/tree/main/java-gke-backup) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-gke-backup&core=gav) | 138*55e87721SMatt Gilbride| [Bare Metal Solution](https://github.com/googleapis/google-cloud-java/tree/main/java-bare-metal-solution) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bare-metal-solution&core=gav) | 139*55e87721SMatt Gilbride| [Batch](https://github.com/googleapis/google-cloud-java/tree/main/java-batch) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-batch&core=gav) | 140*55e87721SMatt Gilbride| [BeyondCorp AppConnections](https://github.com/googleapis/google-cloud-java/tree/main/java-beyondcorp-appconnections) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-beyondcorp-appconnections&core=gav) | 141*55e87721SMatt Gilbride| [BeyondCorp AppConnectors](https://github.com/googleapis/google-cloud-java/tree/main/java-beyondcorp-appconnectors) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-beyondcorp-appconnectors&core=gav) | 142*55e87721SMatt Gilbride| [BeyondCorp AppGateways](https://github.com/googleapis/google-cloud-java/tree/main/java-beyondcorp-appgateways) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-beyondcorp-appgateways&core=gav) | 143*55e87721SMatt Gilbride| [BeyondCorp ClientConnectorServices](https://github.com/googleapis/google-cloud-java/tree/main/java-beyondcorp-clientconnectorservices) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-beyondcorp-clientconnectorservices&core=gav) | 144*55e87721SMatt Gilbride| [BeyondCorp ClientGateways](https://github.com/googleapis/google-cloud-java/tree/main/java-beyondcorp-clientgateways) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-beyondcorp-clientgateways&core=gav) | 145*55e87721SMatt Gilbride| [BigLake](https://github.com/googleapis/google-cloud-java/tree/main/java-biglake) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-biglake&core=gav) | 146*55e87721SMatt Gilbride| [BigQuery DataPolicy API](https://github.com/googleapis/google-cloud-java/tree/main/java-bigquerydatapolicy) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquerydatapolicy&core=gav) | 147*55e87721SMatt Gilbride| [BigQuery Migration](https://github.com/googleapis/google-cloud-java/tree/main/java-bigquerymigration) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-bigquerymigration&core=gav) | 148*55e87721SMatt Gilbride| [Certificate Manager](https://github.com/googleapis/google-cloud-java/tree/main/java-certificate-manager) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-certificate-manager&core=gav) | 149*55e87721SMatt Gilbride| [Commerce Consumer Procurement](https://github.com/googleapis/google-cloud-java/tree/main/java-cloudcommerceconsumerprocurement) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-cloudcommerceconsumerprocurement&core=gav) | 150*55e87721SMatt Gilbride| [Confidential Computing API](https://github.com/googleapis/google-cloud-java/tree/main/java-confidentialcomputing) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-confidentialcomputing&core=gav) | 151*55e87721SMatt Gilbride| [Connect Gateway API](https://github.com/googleapis/google-cloud-java/tree/main/java-gke-connect-gateway) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-gke-connect-gateway&core=gav) | 152*55e87721SMatt Gilbride| [Data Labeling](https://github.com/googleapis/google-cloud-java/tree/main/java-datalabeling) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-datalabeling&core=gav) | 153*55e87721SMatt Gilbride| [Data Lineage](https://github.com/googleapis/google-cloud-java/tree/main/java-datalineage) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-datalineage&core=gav) | 154*55e87721SMatt Gilbride| [Dataflow](https://github.com/googleapis/google-cloud-java/tree/main/java-dataflow) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dataflow&core=gav) | 155*55e87721SMatt Gilbride| [Dataform](https://github.com/googleapis/google-cloud-java/tree/main/java-dataform) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dataform&core=gav) | 156*55e87721SMatt Gilbride| [Dialogflow CX](https://github.com/googleapis/google-cloud-java/tree/main/java-dialogflow-cx) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-dialogflow-cx&core=gav) | 157*55e87721SMatt Gilbride| [Discovery Engine API](https://github.com/googleapis/google-cloud-java/tree/main/java-discoveryengine) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-discoveryengine&core=gav) | 158*55e87721SMatt Gilbride| [Distributed Edge](https://github.com/googleapis/google-cloud-java/tree/main/java-distributedcloudedge) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-distributedcloudedge&core=gav) | 159*55e87721SMatt Gilbride| [Document AI Warehouse](https://github.com/googleapis/google-cloud-java/tree/main/java-contentwarehouse) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-contentwarehouse&core=gav) | 160*55e87721SMatt Gilbride| [Enterprise Knowledge Graph](https://github.com/googleapis/google-cloud-java/tree/main/java-enterpriseknowledgegraph) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-enterpriseknowledgegraph&core=gav) | 161*55e87721SMatt Gilbride| [Error Reporting](https://github.com/googleapis/google-cloud-java/tree/main/java-errorreporting) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-errorreporting&core=gav) | 162*55e87721SMatt Gilbride| [Eventarc Publishing](https://github.com/googleapis/google-cloud-java/tree/main/java-eventarc-publishing) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-eventarc-publishing&core=gav) | 163*55e87721SMatt Gilbride| [KMS Inventory API](https://github.com/googleapis/google-cloud-java/tree/main/java-kmsinventory) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-kmsinventory&core=gav) | 164*55e87721SMatt Gilbride| [Life Sciences](https://github.com/googleapis/google-cloud-java/tree/main/java-life-sciences) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-life-sciences&core=gav) | 165*55e87721SMatt Gilbride| [Live Stream API](https://github.com/googleapis/google-cloud-java/tree/main/java-video-live-stream) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-live-stream&core=gav) | 166*55e87721SMatt Gilbride| [Logging Logback Appender](https://github.com/googleapis/java-logging-logback) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-logging-logback&core=gav) | 167*55e87721SMatt Gilbride| [Logging Servlet Initializer](https://github.com/googleapis/java-logging-servlet-initializer) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-logging-servlet-initializer&core=gav) | 168*55e87721SMatt Gilbride| [Maps Platform Datasets API](https://github.com/googleapis/google-cloud-java/tree/main/java-maps-mapsplatformdatasets) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.maps%20AND%20a:google-maps-mapsplatformdatasets&core=gav) | 169*55e87721SMatt Gilbride| [Media Translation API](https://github.com/googleapis/google-cloud-java/tree/main/java-mediatranslation) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-mediatranslation&core=gav) | 170*55e87721SMatt Gilbride| [Monitoring Metrics Scopes](https://github.com/googleapis/google-cloud-java/tree/main/java-monitoring-metricsscope) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-monitoring-metricsscope&core=gav) | 171*55e87721SMatt Gilbride| [NIO Filesystem Provider for Storage](https://github.com/googleapis/java-storage-nio) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-nio&core=gav) | 172*55e87721SMatt Gilbride| [Network Security API](https://github.com/googleapis/google-cloud-java/tree/main/java-network-security) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-network-security&core=gav) | 173*55e87721SMatt Gilbride| [Phishing Protection](https://github.com/googleapis/google-cloud-java/tree/main/java-phishingprotection) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-phishingprotection&core=gav) | 174*55e87721SMatt Gilbride| [Private Catalog](https://github.com/googleapis/google-cloud-java/tree/main/java-private-catalog) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-private-catalog&core=gav) | 175*55e87721SMatt Gilbride| [Pub/Sub Lite Flink Connector](https://github.com/googleapis/java-pubsublite-flink) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-pubsublite-flink&core=gav) | 176*55e87721SMatt Gilbride| [Public Certificate Authority](https://github.com/googleapis/google-cloud-java/tree/main/java-publicca) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-publicca&core=gav) | 177*55e87721SMatt Gilbride| [Recommendations AI](https://github.com/googleapis/google-cloud-java/tree/main/java-recommendations-ai) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-recommendations-ai&core=gav) | 178*55e87721SMatt Gilbride| [Registry API](https://github.com/googleapis/google-cloud-java/tree/main/java-apigee-registry) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-apigee-registry&core=gav) | 179*55e87721SMatt Gilbride| [Run](https://github.com/googleapis/google-cloud-java/tree/main/java-run) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-run&core=gav) | 180*55e87721SMatt Gilbride| [Security Command Center Settings API](https://github.com/googleapis/google-cloud-java/tree/main/java-securitycenter-settings) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-securitycenter-settings&core=gav) | 181*55e87721SMatt Gilbride| [Storage Insights API](https://github.com/googleapis/google-cloud-java/tree/main/java-storageinsights) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-storageinsights&core=gav) | 182*55e87721SMatt Gilbride| [Support API](https://github.com/googleapis/google-cloud-java/tree/main/java-cloudsupport) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-cloudsupport&core=gav) | 183*55e87721SMatt Gilbride| [VMware Engine](https://github.com/googleapis/google-cloud-java/tree/main/java-vmwareengine) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-vmwareengine&core=gav) | 184*55e87721SMatt Gilbride| [Video Stitcher API](https://github.com/googleapis/google-cloud-java/tree/main/java-video-stitcher) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-video-stitcher&core=gav) | 185*55e87721SMatt Gilbride| [Workstations](https://github.com/googleapis/google-cloud-java/tree/main/java-workstations) | [![preview][preview-stability]][preview-description] | [](https://search.maven.org/search?q=g:com.google.cloud%20AND%20a:google-cloud-workstations&core=gav) | 186*55e87721SMatt Gilbride 187*55e87721SMatt Gilbride[//]: # (API_TABLE_END) 188*55e87721SMatt Gilbride 189*55e87721SMatt GilbrideIf the service is not listed, [google-api-java-client][google-api-java-client-services] interfaces with additional Google Cloud APIs using a legacy REST interface. 190*55e87721SMatt Gilbride 191*55e87721SMatt Gilbride*When building Java applications, preference should be given to the libraries listed in the table.* 192*55e87721SMatt Gilbride 193*55e87721SMatt Gilbride 194*55e87721SMatt Gilbride 195*55e87721SMatt Gilbride## Specifying a Project ID 196*55e87721SMatt Gilbride 197*55e87721SMatt GilbrideMost `google-cloud` libraries require a project ID. There are multiple ways to specify this project ID. 198*55e87721SMatt Gilbride 199*55e87721SMatt Gilbride1. When using `google-cloud` libraries from within Compute/App Engine, there's no need to specify a project ID. It is automatically inferred from the production environment. 200*55e87721SMatt Gilbride2. When using `google-cloud` elsewhere, you can do one of the following: 201*55e87721SMatt Gilbride* Supply the project ID when building the service options. For example, to use Datastore from a project with ID "PROJECT_ID", you can write: 202*55e87721SMatt Gilbride 203*55e87721SMatt Gilbride ```java 204*55e87721SMatt Gilbride Datastore datastore = DatastoreOptions.newBuilder().setProjectId("PROJECT_ID").build().getService(); 205*55e87721SMatt Gilbride ``` 206*55e87721SMatt Gilbride* Specify the environment variable `GOOGLE_CLOUD_PROJECT` to be your desired project ID. 207*55e87721SMatt Gilbride* Set the project ID using the [Google Cloud SDK](https://cloud.google.com/sdk/?hl=en). To use the SDK, [download the SDK](https://cloud.google.com/sdk/?hl=en) if you haven't already, and set the project ID from the command line. For example: 208*55e87721SMatt Gilbride 209*55e87721SMatt Gilbride ``` 210*55e87721SMatt Gilbride gcloud config set project PROJECT_ID 211*55e87721SMatt Gilbride ``` 212*55e87721SMatt Gilbride 213*55e87721SMatt Gilbride`google-cloud` determines the project ID from the following sources in the listed order, stopping once it finds a value: 214*55e87721SMatt Gilbride 215*55e87721SMatt Gilbride1. The project ID supplied when building the service options 216*55e87721SMatt Gilbride2. Project ID specified by the environment variable `GOOGLE_CLOUD_PROJECT` 217*55e87721SMatt Gilbride3. The App Engine / Compute Engine project ID 218*55e87721SMatt Gilbride4. The project ID specified in the JSON credentials file pointed by the `GOOGLE_APPLICATION_CREDENTIALS` environment variable 219*55e87721SMatt Gilbride5. The Google Cloud SDK project ID 220*55e87721SMatt Gilbride 221*55e87721SMatt GilbrideIn cases where the library may expect a project ID explicitly, we provide a helper that can provide the inferred project ID: 222*55e87721SMatt Gilbride ```java 223*55e87721SMatt Gilbride import com.google.cloud.ServiceOptions; 224*55e87721SMatt Gilbride ... 225*55e87721SMatt Gilbride String projectId = ServiceOptions.getDefaultProjectId(); 226*55e87721SMatt Gilbride ``` 227*55e87721SMatt Gilbride 228*55e87721SMatt Gilbride## Authentication 229*55e87721SMatt Gilbride 230*55e87721SMatt Gilbride`google-cloud-java` uses 231*55e87721SMatt Gilbride[https://github.com/googleapis/google-auth-library-java](https://github.com/googleapis/google-auth-library-java) 232*55e87721SMatt Gilbrideto authenticate requests. `google-auth-library-java` supports a wide range of authentication types; 233*55e87721SMatt Gilbridesee the project's [README](https://github.com/google/google-auth-library-java/blob/main/README.md) 234*55e87721SMatt Gilbrideand [javadoc](https://cloud.google.com/java/docs/reference/google-auth-library/latest/overview) for more 235*55e87721SMatt Gilbridedetails. 236*55e87721SMatt Gilbride 237*55e87721SMatt Gilbride### Google Cloud Platform environment 238*55e87721SMatt Gilbride 239*55e87721SMatt GilbrideWhen using Google Cloud libraries from a Google Cloud Platform environment such as Compute Engine, 240*55e87721SMatt GilbrideKubernetes Engine, or App Engine, no additional authentication steps are necessary. 241*55e87721SMatt Gilbride 242*55e87721SMatt GilbrideFor example: 243*55e87721SMatt Gilbride 244*55e87721SMatt Gilbride```java 245*55e87721SMatt GilbrideStorage storage = StorageOptions.getDefaultInstance().getService(); 246*55e87721SMatt Gilbride``` 247*55e87721SMatt Gilbride 248*55e87721SMatt Gilbrideor: 249*55e87721SMatt Gilbride 250*55e87721SMatt Gilbride```java 251*55e87721SMatt GilbrideCloudTasksClient cloudTasksClient = CloudTasksClient.create(); 252*55e87721SMatt Gilbride``` 253*55e87721SMatt Gilbride 254*55e87721SMatt Gilbride### Other environments 255*55e87721SMatt Gilbride 256*55e87721SMatt Gilbride#### Using a service account (recommended) 257*55e87721SMatt Gilbride 258*55e87721SMatt Gilbride1. [Generate a JSON service account key](https://cloud.google.com/storage/docs/authentication?hl=en#service_accounts). 259*55e87721SMatt Gilbride 260*55e87721SMatt Gilbride2. After downloading that key, you must do one of the following: 261*55e87721SMatt Gilbride * Define the environment variable GOOGLE_APPLICATION_CREDENTIALS to be the location of the key. 262*55e87721SMatt Gilbride For example: 263*55e87721SMatt Gilbride ```bash 264*55e87721SMatt Gilbride export GOOGLE_APPLICATION_CREDENTIALS=/path/to/my/key.json 265*55e87721SMatt Gilbride ``` 266*55e87721SMatt Gilbride * Supply the JSON credentials file when building the service options. For example, this Storage 267*55e87721SMatt Gilbride object has the necessary permissions to interact with your Google Cloud Storage data: 268*55e87721SMatt Gilbride ```java 269*55e87721SMatt Gilbride Storage storage = StorageOptions.newBuilder() 270*55e87721SMatt Gilbride .setCredentials(ServiceAccountCredentials.fromStream(new FileInputStream("/path/to/my/key.json"))) 271*55e87721SMatt Gilbride .build() 272*55e87721SMatt Gilbride .getService(); 273*55e87721SMatt Gilbride ``` 274*55e87721SMatt Gilbride 275*55e87721SMatt Gilbride#### Local development/testing 276*55e87721SMatt Gilbride 277*55e87721SMatt GilbrideIf running locally for development/testing, you can use the [Google Cloud SDK](https://cloud.google.com/sdk/). 278*55e87721SMatt GilbrideCreate Application Default Credentials with `gcloud auth application-default login`, and then 279*55e87721SMatt Gilbride`google-cloud` will automatically detect such credentials. 280*55e87721SMatt Gilbride 281*55e87721SMatt Gilbride#### Existing OAuth2 access token 282*55e87721SMatt Gilbride 283*55e87721SMatt GilbrideIf you already have an OAuth2 access token, you can use it to authenticate (notice that in this case, the 284*55e87721SMatt Gilbrideaccess token will not be automatically refreshed): 285*55e87721SMatt Gilbride 286*55e87721SMatt Gilbride```java 287*55e87721SMatt GilbrideCredentials credentials = GoogleCredentials.create(new AccessToken(accessToken, expirationTime)); 288*55e87721SMatt GilbrideStorage storage = StorageOptions.newBuilder() 289*55e87721SMatt Gilbride .setCredentials(credentials) 290*55e87721SMatt Gilbride .build() 291*55e87721SMatt Gilbride .getService(); 292*55e87721SMatt Gilbride``` 293*55e87721SMatt Gilbride 294*55e87721SMatt Gilbrideor: 295*55e87721SMatt Gilbride 296*55e87721SMatt Gilbride```java 297*55e87721SMatt GilbrideCredentials credentials = GoogleCredentials.create(new AccessToken(accessToken, expirationTime)); 298*55e87721SMatt GilbrideCloudTasksSettings cloudTasksSettings = CloudTasksSettings.newBuilder() 299*55e87721SMatt Gilbride .setCredentialProvider(FixedCredentialsProvider.create(credentials)) 300*55e87721SMatt Gilbride .build(); 301*55e87721SMatt GilbrideCloudTasksClient cloudTasksClient = CloudTasksClient.create(cloudTasksSettings); 302*55e87721SMatt Gilbride``` 303*55e87721SMatt Gilbride 304*55e87721SMatt Gilbride### Application Default Credentials 305*55e87721SMatt Gilbride 306*55e87721SMatt GilbrideIf no credentials are provided, `google-cloud` will attempt to detect them from the environment 307*55e87721SMatt Gilbrideusing `GoogleCredentials.getApplicationDefault()` which will search for Application Default 308*55e87721SMatt GilbrideCredentials in the following locations (in order): 309*55e87721SMatt Gilbride 310*55e87721SMatt Gilbride1. The credentials file pointed to by the `GOOGLE_APPLICATION_CREDENTIALS` environment variable 311*55e87721SMatt Gilbride2. Credentials provided by the Google Cloud SDK `gcloud auth application-default login` command 312*55e87721SMatt Gilbride3. Google App Engine built-in credentials 313*55e87721SMatt Gilbride4. Google Cloud Shell built-in credentials 314*55e87721SMatt Gilbride5. Google Compute Engine built-in credentials 315*55e87721SMatt Gilbride 316*55e87721SMatt Gilbride## Troubleshooting 317*55e87721SMatt Gilbride 318*55e87721SMatt GilbrideTo get help, follow the instructions in the [Troubleshooting document](https://github.com/googleapis/google-cloud-java/blob/main/TROUBLESHOOTING.md). 319*55e87721SMatt Gilbride 320*55e87721SMatt Gilbride## Configuring a Proxy 321*55e87721SMatt Gilbride 322*55e87721SMatt GilbrideGoogle Cloud client libraries use HTTPS and gRPC in underlying communication 323*55e87721SMatt Gilbridewith the services. 324*55e87721SMatt GilbrideIn both protocols, you can configure a proxy using `https.proxyHost` 325*55e87721SMatt Gilbrideand (optional) `https.proxyPort` properties. 326*55e87721SMatt Gilbride 327*55e87721SMatt Gilbride### gRPC Custom Proxy Configuration 328*55e87721SMatt Gilbride 329*55e87721SMatt GilbrideFor a more custom proxy with gRPC, you will need supply a `ProxyDetector` to 330*55e87721SMatt Gilbridethe `ManagedChannelBuilder`: 331*55e87721SMatt Gilbride 332*55e87721SMatt Gilbride```java 333*55e87721SMatt Gilbrideimport com.google.api.core.ApiFunction; 334*55e87721SMatt Gilbrideimport com.google.api.gax.rpc.TransportChannelProvider; 335*55e87721SMatt Gilbrideimport com.google.cloud.tasks.v2.CloudTasksClient; 336*55e87721SMatt Gilbrideimport com.google.cloud.tasks.v2.CloudTasksSettings; 337*55e87721SMatt Gilbrideimport com.google.cloud.tasks.v2.stub.CloudTasksStubSettings; 338*55e87721SMatt Gilbrideimport io.grpc.HttpConnectProxiedSocketAddress; 339*55e87721SMatt Gilbrideimport io.grpc.ManagedChannelBuilder; 340*55e87721SMatt Gilbrideimport io.grpc.ProxiedSocketAddress; 341*55e87721SMatt Gilbrideimport io.grpc.ProxyDetector; 342*55e87721SMatt Gilbride 343*55e87721SMatt Gilbrideimport javax.annotation.Nullable; 344*55e87721SMatt Gilbrideimport java.io.IOException; 345*55e87721SMatt Gilbrideimport java.net.InetSocketAddress; 346*55e87721SMatt Gilbrideimport java.net.SocketAddress; 347*55e87721SMatt Gilbride 348*55e87721SMatt Gilbridepublic CloudTasksClient getService() throws IOException { 349*55e87721SMatt Gilbride TransportChannelProvider transportChannelProvider = 350*55e87721SMatt Gilbride CloudTasksStubSettings.defaultGrpcTransportProviderBuilder() 351*55e87721SMatt Gilbride .setChannelConfigurator( 352*55e87721SMatt Gilbride new ApiFunction<ManagedChannelBuilder, ManagedChannelBuilder>() { 353*55e87721SMatt Gilbride @Override 354*55e87721SMatt Gilbride public ManagedChannelBuilder apply(ManagedChannelBuilder managedChannelBuilder) { 355*55e87721SMatt Gilbride return managedChannelBuilder.proxyDetector( 356*55e87721SMatt Gilbride new ProxyDetector() { 357*55e87721SMatt Gilbride @Nullable 358*55e87721SMatt Gilbride @Override 359*55e87721SMatt Gilbride public ProxiedSocketAddress proxyFor(SocketAddress socketAddress) 360*55e87721SMatt Gilbride throws IOException { 361*55e87721SMatt Gilbride return HttpConnectProxiedSocketAddress.newBuilder() 362*55e87721SMatt Gilbride .setUsername(PROXY_USERNAME) 363*55e87721SMatt Gilbride .setPassword(PROXY_PASSWORD) 364*55e87721SMatt Gilbride .setProxyAddress(new InetSocketAddress(PROXY_HOST, PROXY_PORT)) 365*55e87721SMatt Gilbride .setTargetAddress((InetSocketAddress) socketAddress) 366*55e87721SMatt Gilbride .build(); 367*55e87721SMatt Gilbride } 368*55e87721SMatt Gilbride }); 369*55e87721SMatt Gilbride } 370*55e87721SMatt Gilbride }) 371*55e87721SMatt Gilbride .build(); 372*55e87721SMatt Gilbride CloudTasksSettings cloudTasksSettings = 373*55e87721SMatt Gilbride CloudTasksSettings.newBuilder() 374*55e87721SMatt Gilbride .setTransportChannelProvider(transportChannelProvider) 375*55e87721SMatt Gilbride .build(); 376*55e87721SMatt Gilbride return CloudTasksClient.create(cloudTasksSettings); 377*55e87721SMatt Gilbride} 378*55e87721SMatt Gilbride``` 379*55e87721SMatt Gilbride 380*55e87721SMatt Gilbride## Long Running Operations 381*55e87721SMatt Gilbride 382*55e87721SMatt GilbrideLong running operations (LROs) are often used for API calls that are expected to 383*55e87721SMatt Gilbridetake a long time to complete (e.g. provisioning a GCE instance or a Dataflow pipeline). 384*55e87721SMatt GilbrideThe initial API call creates an "operation" on the server and returns an operation ID 385*55e87721SMatt Gilbrideto track its progress. 386*55e87721SMatt Gilbride 387*55e87721SMatt GilbrideOur generated gRPC clients provide a nice interface for starting the operation and 388*55e87721SMatt Gilbridethen waiting for the operation to complete. This is accomplished by returning an 389*55e87721SMatt Gilbride[`OperationFuture`](https://cloud.google.com/java/docs/reference/gax/latest/com.google.api.gax.longrunning.OperationFuture). 390*55e87721SMatt GilbrideWhen you call `get()` on the `OperationFuture` we poll the operation endpoint to 391*55e87721SMatt Gilbridecheck on the operation. These polling operations have a default timeout that 392*55e87721SMatt Gilbridevaries from service to service and will throw a `java.util.concurrent.CancellationException` 393*55e87721SMatt Gilbridewith the message: `Task was cancelled.` after that timeout has been reached. 394*55e87721SMatt Gilbride 395*55e87721SMatt Gilbride### Configuring LRO Timeouts 396*55e87721SMatt Gilbride 397*55e87721SMatt Gilbride```java 398*55e87721SMatt GilbrideClusterControllerSettings.Builder settingsBuilder = ClusterControllerSettings.newBuilder(); 399*55e87721SMatt GilbrideTimedRetryAlgorithm timedRetryAlgorithm = OperationTimedPollAlgorithm.create( 400*55e87721SMatt Gilbride RetrySettings.newBuilder() 401*55e87721SMatt Gilbride .setInitialRetryDelay(Duration.ofMillis(500L)) 402*55e87721SMatt Gilbride .setRetryDelayMultiplier(1.5) 403*55e87721SMatt Gilbride .setMaxRetryDelay(Duration.ofMillis(5000L)) 404*55e87721SMatt Gilbride .setInitialRpcTimeout(Duration.ZERO) // ignored 405*55e87721SMatt Gilbride .setRpcTimeoutMultiplier(1.0) // ignored 406*55e87721SMatt Gilbride .setMaxRpcTimeout(Duration.ZERO) // ignored 407*55e87721SMatt Gilbride .setTotalTimeout(Duration.ofHours(24L)) // set polling timeout to 24 hours 408*55e87721SMatt Gilbride .build()); 409*55e87721SMatt GilbridesettingsBuilder.createClusterOperationSettings() 410*55e87721SMatt Gilbride .setPollingAlgorithm(timedRetryAlgorithm); 411*55e87721SMatt GilbrideClusterControllerClient clusterControllerClient = ClusterControllerClient.create(settingsBuilder.build()); 412*55e87721SMatt Gilbride``` 413*55e87721SMatt Gilbride 414*55e87721SMatt Gilbride## Managing Dependencies 415*55e87721SMatt Gilbride 416*55e87721SMatt GilbrideIf you are using more than one Google Cloud client library, we recommend you use one of 417*55e87721SMatt Gilbrideour Bill of Material (BOM) artifacts to help manage dependency versions. For more information, 418*55e87721SMatt Gilbridesee [Using the Cloud Client Libraries](https://cloud.google.com/java/docs/bom). 419*55e87721SMatt Gilbride 420*55e87721SMatt Gilbride## Java Versions 421*55e87721SMatt Gilbride 422*55e87721SMatt GilbrideJava 8 or above is required for using the clients in this repository. 423*55e87721SMatt Gilbride 424*55e87721SMatt Gilbride## Supported Platforms 425*55e87721SMatt Gilbride 426*55e87721SMatt GilbrideClients in this repository use either HTTP or gRPC for the transport layer. All 427*55e87721SMatt GilbrideHTTP-based clients should work in all environments. 428*55e87721SMatt Gilbride 429*55e87721SMatt GilbrideFor clients that use gRPC, the supported platforms are constrained by the platforms 430*55e87721SMatt Gilbridethat [Forked Tomcat Native](http://netty.io/wiki/forked-tomcat-native.html) supports, 431*55e87721SMatt Gilbridewhich for architectures means only x86_64, and for operating systems means Mac OS X, 432*55e87721SMatt GilbrideWindows, and Linux. Additionally, gRPC constrains the use of platforms with 433*55e87721SMatt Gilbridethreading restrictions. 434*55e87721SMatt Gilbride 435*55e87721SMatt GilbrideThus, the following are not supported: 436*55e87721SMatt Gilbride 437*55e87721SMatt Gilbride- Android 438*55e87721SMatt Gilbride - Consider [Firebase](https://firebase.google.com), which includes many of these APIs. 439*55e87721SMatt Gilbride - It is possible to use these libraries in many cases, although it is unsupported. 440*55e87721SMatt Gilbride You can find examples, such as [this one](https://github.com/GoogleCloudPlatform/android-docs-samples/tree/main/speech/SpeechRecognitionClient), 441*55e87721SMatt Gilbride in this [example repository](https://github.com/GoogleCloudPlatform/android-docs-samples) but consider the risks carefully before using these libraries in an application. 442*55e87721SMatt Gilbride- Raspberry Pi (since it runs on the ARM architecture) 443*55e87721SMatt Gilbride- Google App Engine Standard Java 7 444*55e87721SMatt Gilbride 445*55e87721SMatt GilbrideThe following environments should work (among others): 446*55e87721SMatt Gilbride 447*55e87721SMatt Gilbride- standalone Windows on x86_64 448*55e87721SMatt Gilbride- standalone Mac OS X on x86_64 449*55e87721SMatt Gilbride- standalone Linux on x86_64 450*55e87721SMatt Gilbride- Google Compute Engine (GCE) 451*55e87721SMatt Gilbride- Google Container Engine (GKE) 452*55e87721SMatt Gilbride- Google App Engine Standard Java 8 (GAE Std J8) 453*55e87721SMatt Gilbride- Google App Engine Flex (GAE Flex) 454*55e87721SMatt Gilbride- Alpine Linux (Java 11+) 455*55e87721SMatt Gilbride 456*55e87721SMatt Gilbride## Testing 457*55e87721SMatt Gilbride 458*55e87721SMatt GilbrideThis library provides tools to help write tests for code that uses google-cloud services. 459*55e87721SMatt Gilbride 460*55e87721SMatt GilbrideSee [TESTING] to read more about using our testing helpers. 461*55e87721SMatt Gilbride 462*55e87721SMatt Gilbride## Versioning 463*55e87721SMatt Gilbride 464*55e87721SMatt GilbrideThis library follows [Semantic Versioning](http://semver.org/), with some 465*55e87721SMatt Gilbrideadditional qualifications: 466*55e87721SMatt Gilbride 467*55e87721SMatt Gilbride1. Components marked with `@BetaApi` or `@Experimental` are considered to be "0.x" 468*55e87721SMatt Gilbride features inside a "1.x" library. This means they can change between minor and 469*55e87721SMatt Gilbride patch releases in incompatible ways. These features should not be used by any 470*55e87721SMatt Gilbride library "B" that itself has consumers, unless the components of library B that 471*55e87721SMatt Gilbride use `@BetaApi` features are also marked with `@BetaApi`. Features marked as 472*55e87721SMatt Gilbride `@BetaApi` are on a path to eventually become "1.x" features with the marker 473*55e87721SMatt Gilbride removed. 474*55e87721SMatt Gilbride 475*55e87721SMatt Gilbride **Special exception for google-cloud-java**: google-cloud-java is 476*55e87721SMatt Gilbride allowed to depend on `@BetaApi` features in gax-java without declaring the consuming 477*55e87721SMatt Gilbride code `@BetaApi`, because gax-java and google-cloud-java move in step 478*55e87721SMatt Gilbride with each other. For this reason, gax-java should not be used 479*55e87721SMatt Gilbride independently of google-cloud-java. 480*55e87721SMatt Gilbride 481*55e87721SMatt Gilbride1. Components marked with `@InternalApi` are technically public, but only 482*55e87721SMatt Gilbride because of the limitations of Java's access 483*55e87721SMatt Gilbride modifiers. For the purposes of semver, they should be considered private. 484*55e87721SMatt Gilbride 485*55e87721SMatt Gilbride1. Interfaces marked with `@InternalExtensionOnly` are public, but should only be 486*55e87721SMatt Gilbride implemented by internal classes. For the purposes of semver, we reserve the right 487*55e87721SMatt Gilbride to add to these interfaces without default implementations (for Java 7). 488*55e87721SMatt Gilbride 489*55e87721SMatt GilbridePlease note these clients are currently under active development. Any release versioned 0.x.y is 490*55e87721SMatt Gilbridesubject to backwards incompatible changes at any time. 491*55e87721SMatt Gilbride 492*55e87721SMatt Gilbride### Stable 493*55e87721SMatt Gilbride 494*55e87721SMatt GilbrideLibraries defined at a Stable quality level are expected to be stable and all updates in the 495*55e87721SMatt Gilbridelibraries are guaranteed to be backwards-compatible. Any backwards-incompatible changes will lead 496*55e87721SMatt Gilbrideto the major version increment (1.x.y -> 2.0.0). 497*55e87721SMatt Gilbride 498*55e87721SMatt Gilbride### Preview 499*55e87721SMatt Gilbride 500*55e87721SMatt GilbrideLibraries defined at a Preview quality level are still a work-in-progress and 501*55e87721SMatt Gilbrideare more likely to get backwards-incompatible updates. Additionally, it's possible for Preview 502*55e87721SMatt Gilbridelibraries to get deprecated and deleted before ever being promoted to Preview or Stable. 503*55e87721SMatt Gilbride 504*55e87721SMatt Gilbride## IDE Plugins 505*55e87721SMatt Gilbride 506*55e87721SMatt GilbrideIf you're using IntelliJ or Eclipse, you can add client libraries to your project using these IDE plugins: 507*55e87721SMatt Gilbride* [Cloud Tools for IntelliJ](https://cloud.google.com/tools/intellij/docs/client-libraries?utm_source=github&utm_medium=google-cloud-java&utm_campaign=ToolsforIntelliJ) 508*55e87721SMatt Gilbride* [Cloud Tools for Eclipse](https://cloud.google.com/eclipse/docs/libraries?utm_source=github&utm_medium=google-cloud-java&utm_campaign=ToolsforEclipse) 509*55e87721SMatt Gilbride 510*55e87721SMatt GilbrideBesides adding client libraries, the plugins provide additional functionality, such as service account 511*55e87721SMatt Gilbridekey management. Refer to the documentation for each plugin for more details. 512*55e87721SMatt Gilbride 513*55e87721SMatt GilbrideThese client libraries can be used on App Engine standard for Java 8 runtime and App Engine flexible 514*55e87721SMatt Gilbride(including the Compat runtime). Most of the libraries do not work on the App Engine standard for Java 7 515*55e87721SMatt Gilbrideruntime. However, Datastore, Storage, and Bigquery should work. 516*55e87721SMatt Gilbride 517*55e87721SMatt Gilbride## Contributing 518*55e87721SMatt Gilbride 519*55e87721SMatt GilbrideContributions to this library are always welcome and highly encouraged. 520*55e87721SMatt Gilbride 521*55e87721SMatt GilbrideSee `google-cloud`'s [CONTRIBUTING] documentation and the [shared documentation](https://github.com/googleapis/google-cloud-common/blob/main/contributing/readme.md#how-to-contribute-to-gcloud) for more information on how to get started. 522*55e87721SMatt Gilbride 523*55e87721SMatt GilbridePlease note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. See [Code of Conduct][code-of-conduct] for more information. 524*55e87721SMatt Gilbride 525*55e87721SMatt Gilbride## License 526*55e87721SMatt Gilbride 527*55e87721SMatt GilbrideApache 2.0 - See [LICENSE] for more information. 528*55e87721SMatt Gilbride 529*55e87721SMatt Gilbride[cloud-java]: https://cloud.google.com/java 530*55e87721SMatt Gilbride[stable-stability]: https://img.shields.io/badge/stability-stable-green 531*55e87721SMatt Gilbride[stable-description]: #stable 532*55e87721SMatt Gilbride[preview-stability]: https://img.shields.io/badge/stability-preview-yellow 533*55e87721SMatt Gilbride[preview-description]: #preview 534*55e87721SMatt Gilbride[google-api-java-client-services]: https://github.com/googleapis/google-api-java-client-services#supported-google-apis 535*55e87721SMatt Gilbride[CONTRIBUTING]:https://github.com/googleapis/google-cloud-java/blob/main/CONTRIBUTING.md 536*55e87721SMatt Gilbride[code-of-conduct]:https://github.com/googleapis/google-cloud-java/blob/main/CODE_OF_CONDUCT.md#contributor-code-of-conduct 537*55e87721SMatt Gilbride[LICENSE]: https://github.com/googleapis/google-cloud-java/blob/main/LICENSE 538*55e87721SMatt Gilbride[TESTING]: https://github.com/googleapis/google-cloud-java/blob/main/TESTING.md 539*55e87721SMatt Gilbride[cloud-platform]: https://cloud.google.com/ 540*55e87721SMatt Gilbride[cloud-platform-docs]: https://cloud.google.com/docs/ 541*55e87721SMatt Gilbride[client-lib-docs]: https://cloud.google.com/java/docs/reference 542