1# Google Cloud Client Libraries for Go 2 3[![GoDoc](https://godoc.org/cloud.google.com/go?status.svg)](https://pkg.go.dev/cloud.google.com/go) 4 5Go packages for [Google Cloud Platform](https://cloud.google.com) services. 6 7``` go 8import "cloud.google.com/go" 9``` 10 11To install the packages on your system, *do not clone the repo*. Instead: 12 131. Change to your project directory: 14 15 ``` 16 cd /my/cloud/project 17 ``` 181. Get the package you want to use. Some products have their own module, so it's 19 best to `go get` the package(s) you want to use: 20 21 ``` 22 $ go get cloud.google.com/go/firestore # Replace with the package you want to use. 23 ``` 24 25**NOTE:** Some of these packages are under development, and may occasionally 26make backwards-incompatible changes. 27 28**NOTE:** Github repo is a mirror of [https://code.googlesource.com/gocloud](https://code.googlesource.com/gocloud). 29 30## Supported APIs 31 32| Google API | Status | Package | 33| ----------------------------------------------- | ------ | ----------------------------------------------------------------------------------------------------------------------------- | 34| [Asset][cloud-asset] | stable | [`cloud.google.com/go/asset/apiv1`](https://pkg.go.dev/cloud.google.com/go/asset/v1beta) | 35| [Automl][cloud-automl] | stable | [`cloud.google.com/go/automl/apiv1`](https://pkg.go.dev/cloud.google.com/go/automl/apiv1) | 36| [BigQuery][cloud-bigquery] | stable | [`cloud.google.com/go/bigquery`](https://pkg.go.dev/cloud.google.com/go/bigquery) | 37| [Bigtable][cloud-bigtable] | stable | [`cloud.google.com/go/bigtable`](https://pkg.go.dev/cloud.google.com/go/bigtable) | 38| [Cloudbuild][cloud-build] | stable | [`cloud.google.com/go/cloudbuild/apiv1`](https://pkg.go.dev/cloud.google.com/go/cloudbuild/apiv1) | 39| [Cloudtasks][cloud-tasks] | stable | [`cloud.google.com/go/cloudtasks/apiv2`](https://pkg.go.dev/cloud.google.com/go/cloudtasks/apiv2) | 40| [Container][cloud-container] | stable | [`cloud.google.com/go/container/apiv1`](https://pkg.go.dev/cloud.google.com/go/container/apiv1) | 41| [ContainerAnalysis][cloud-containeranalysis] | beta | [`cloud.google.com/go/containeranalysis/apiv1`](https://pkg.go.dev/cloud.google.com/go/containeranalysis/apiv1) | 42| [Dataproc][cloud-dataproc] | stable | [`cloud.google.com/go/dataproc/apiv1`](https://pkg.go.dev/cloud.google.com/go/dataproc/apiv1) | 43| [Datastore][cloud-datastore] | stable | [`cloud.google.com/go/datastore`](https://pkg.go.dev/cloud.google.com/go/datastore) | 44| [Debugger][cloud-debugger] | stable | [`cloud.google.com/go/debugger/apiv2`](https://pkg.go.dev/cloud.google.com/go/debugger/apiv2) | 45| [Dialogflow][cloud-dialogflow] | stable | [`cloud.google.com/go/dialogflow/apiv2`](https://pkg.go.dev/cloud.google.com/go/dialogflow/apiv2) | 46| [Data Loss Prevention][cloud-dlp] | stable | [`cloud.google.com/go/dlp/apiv2`](https://pkg.go.dev/cloud.google.com/go/dlp/apiv2) | 47| [ErrorReporting][cloud-errors] | alpha | [`cloud.google.com/go/errorreporting`](https://pkg.go.dev/cloud.google.com/go/errorreporting) | 48| [Firestore][cloud-firestore] | stable | [`cloud.google.com/go/firestore`](https://pkg.go.dev/cloud.google.com/go/firestore) | 49| [IAM][cloud-iam] | stable | [`cloud.google.com/go/iam`](https://pkg.go.dev/cloud.google.com/go/iam) | 50| [IoT][cloud-iot] | stable | [`cloud.google.com/go/iot/apiv1`](https://pkg.go.dev/cloud.google.com/go/iot/apiv1) | 51| [IRM][cloud-irm] | alpha | [`cloud.google.com/go/irm/apiv1alpha2`](https://pkg.go.dev/cloud.google.com/go/irm/apiv1alpha2) | 52| [KMS][cloud-kms] | stable | [`cloud.google.com/go/kms/apiv1`](https://pkg.go.dev/cloud.google.com/go/kms/apiv1) | 53| [Natural Language][cloud-natural-language] | stable | [`cloud.google.com/go/language/apiv1`](https://pkg.go.dev/cloud.google.com/go/language/apiv1) | 54| [Logging][cloud-logging] | stable | [`cloud.google.com/go/logging`](https://pkg.go.dev/cloud.google.com/go/logging) | 55| [Memorystore][cloud-memorystore] | alpha | [`cloud.google.com/go/redis/apiv1`](https://pkg.go.dev/cloud.google.com/go/redis/apiv1) | 56| [Monitoring][cloud-monitoring] | stable | [`cloud.google.com/go/monitoring/apiv3`](https://pkg.go.dev/cloud.google.com/go/monitoring/apiv3) | 57| [OS Login][cloud-oslogin] | stable | [`cloud.google.com/go/oslogin/apiv1`](https://pkg.go.dev/cloud.google.com/go/oslogin/apiv1) | 58| [Pub/Sub][cloud-pubsub] | stable | [`cloud.google.com/go/pubsub`](https://pkg.go.dev/cloud.google.com/go/pubsub) | 59| [Phishing Protection][cloud-phishingprotection] | alpha | [`cloud.google.com/go/phishingprotection/apiv1beta1`](https://pkg.go.dev/cloud.google.com/go/phishingprotection/apiv1beta1) | 60| [reCAPTCHA Enterprise][cloud-recaptcha] | alpha | [`cloud.google.com/go/recaptchaenterprise/apiv1beta1`](https://pkg.go.dev/cloud.google.com/go/recaptchaenterprise/apiv1beta1) | 61| [Recommender][cloud-recommender] | beta | [`cloud.google.com/go/recommender/apiv1beta1`](https://pkg.go.dev/cloud.google.com/go/recommender/apiv1beta1) | 62| [Scheduler][cloud-scheduler] | stable | [`cloud.google.com/go/scheduler/apiv1`](https://pkg.go.dev/cloud.google.com/go/scheduler/apiv1) | 63| [Securitycenter][cloud-securitycenter] | stable | [`cloud.google.com/go/securitycenter/apiv1`](https://pkg.go.dev/cloud.google.com/go/securitycenter/apiv1) | 64| [Spanner][cloud-spanner] | stable | [`cloud.google.com/go/spanner`](https://pkg.go.dev/cloud.google.com/go/spanner) | 65| [Speech][cloud-speech] | stable | [`cloud.google.com/go/speech/apiv1`](https://pkg.go.dev/cloud.google.com/go/speech/apiv1) | 66| [Storage][cloud-storage] | stable | [`cloud.google.com/go/storage`](https://pkg.go.dev/cloud.google.com/go/storage) | 67| [Talent][cloud-talent] | alpha | [`cloud.google.com/go/talent/apiv4beta1`](https://pkg.go.dev/cloud.google.com/go/talent/apiv4beta1) | 68| [Text To Speech][cloud-texttospeech] | stable | [`cloud.google.com/go/texttospeech/apiv1`](https://pkg.go.dev/cloud.google.com/go/texttospeech/apiv1) | 69| [Trace][cloud-trace] | stable | [`cloud.google.com/go/trace/apiv2`](https://pkg.go.dev/cloud.google.com/go/trace/apiv2) | 70| [Translate][cloud-translate] | stable | [`cloud.google.com/go/translate`](https://pkg.go.dev/cloud.google.com/go/translate) | 71| [Video Intelligence][cloud-video] | beta | [`cloud.google.com/go/videointelligence/apiv1beta2`](https://pkg.go.dev/cloud.google.com/go/videointelligence/apiv1beta2) | 72| [Vision][cloud-vision] | stable | [`cloud.google.com/go/vision/apiv1`](https://pkg.go.dev/cloud.google.com/go/vision/apiv1) | 73| [Webrisk][cloud-webrisk] | alpha | [`cloud.google.com/go/webrisk/apiv1beta1`](https://pkg.go.dev/cloud.google.com/go/webrisk/apiv1beta1) | 74 75> **Alpha status**: the API is still being actively developed. As a 76> result, it might change in backward-incompatible ways and is not recommended 77> for production use. 78> 79> **Beta status**: the API is largely complete, but still has outstanding 80> features and bugs to be addressed. There may be minor backwards-incompatible 81> changes where necessary. 82> 83> **Stable status**: the API is mature and ready for production use. We will 84> continue addressing bugs and feature requests. 85 86Documentation and examples are available at [pkg.go.dev/cloud.google.com/go](https://pkg.go.dev/cloud.google.com/go) 87 88## [Go Versions Supported](#supported-versions) 89 90We currently support Go versions 1.11 and newer. 91 92## Authorization 93 94By default, each API will use [Google Application Default Credentials](https://developers.google.com/identity/protocols/application-default-credentials) 95for authorization credentials used in calling the API endpoints. This will allow your 96application to run in many environments without requiring explicit configuration. 97 98[snip]:# (auth) 99```go 100client, err := storage.NewClient(ctx) 101``` 102 103To authorize using a 104[JSON key file](https://cloud.google.com/iam/docs/managing-service-account-keys), 105pass 106[`option.WithCredentialsFile`](https://pkg.go.dev/google.golang.org/api/option#WithCredentialsFile) 107to the `NewClient` function of the desired package. For example: 108 109[snip]:# (auth-JSON) 110```go 111client, err := storage.NewClient(ctx, option.WithCredentialsFile("path/to/keyfile.json")) 112``` 113 114You can exert more control over authorization by using the 115[`golang.org/x/oauth2`](https://pkg.go.dev/golang.org/x/oauth2) package to 116create an `oauth2.TokenSource`. Then pass 117[`option.WithTokenSource`](https://pkg.go.dev/google.golang.org/api/option#WithTokenSource) 118to the `NewClient` function: 119[snip]:# (auth-ts) 120```go 121tokenSource := ... 122client, err := storage.NewClient(ctx, option.WithTokenSource(tokenSource)) 123``` 124 125## Contributing 126 127Contributions are welcome. Please, see the 128[CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/CONTRIBUTING.md) 129document for details. 130 131Please note that this project is released with a Contributor Code of Conduct. 132By participating in this project you agree to abide by its terms. 133See [Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/CONTRIBUTING.md#contributor-code-of-conduct) 134for more information. 135 136[cloud-asset]: https://cloud.google.com/security-command-center/docs/how-to-asset-inventory 137[cloud-automl]: https://cloud.google.com/automl 138[cloud-build]: https://cloud.google.com/cloud-build/ 139[cloud-bigquery]: https://cloud.google.com/bigquery/ 140[cloud-bigtable]: https://cloud.google.com/bigtable/ 141[cloud-container]: https://cloud.google.com/containers/ 142[cloud-containeranalysis]: https://cloud.google.com/container-registry/docs/container-analysis 143[cloud-dataproc]: https://cloud.google.com/dataproc/ 144[cloud-datastore]: https://cloud.google.com/datastore/ 145[cloud-dialogflow]: https://cloud.google.com/dialogflow-enterprise/ 146[cloud-debugger]: https://cloud.google.com/debugger/ 147[cloud-dlp]: https://cloud.google.com/dlp/ 148[cloud-errors]: https://cloud.google.com/error-reporting/ 149[cloud-firestore]: https://cloud.google.com/firestore/ 150[cloud-iam]: https://cloud.google.com/iam/ 151[cloud-iot]: https://cloud.google.com/iot-core/ 152[cloud-irm]: https://cloud.google.com/incident-response/docs/concepts 153[cloud-kms]: https://cloud.google.com/kms/ 154[cloud-pubsub]: https://cloud.google.com/pubsub/ 155[cloud-storage]: https://cloud.google.com/storage/ 156[cloud-language]: https://cloud.google.com/natural-language 157[cloud-logging]: https://cloud.google.com/logging/ 158[cloud-natural-language]: https://cloud.google.com/natural-language/ 159[cloud-memorystore]: https://cloud.google.com/memorystore/ 160[cloud-monitoring]: https://cloud.google.com/monitoring/ 161[cloud-oslogin]: https://cloud.google.com/compute/docs/oslogin/rest 162[cloud-phishingprotection]: https://cloud.google.com/phishing-protection/ 163[cloud-securitycenter]: https://cloud.google.com/security-command-center/ 164[cloud-scheduler]: https://cloud.google.com/scheduler 165[cloud-spanner]: https://cloud.google.com/spanner/ 166[cloud-speech]: https://cloud.google.com/speech 167[cloud-talent]: https://cloud.google.com/solutions/talent-solution/ 168[cloud-tasks]: https://cloud.google.com/tasks/ 169[cloud-texttospeech]: https://cloud.google.com/texttospeech/ 170[cloud-talent]: https://cloud.google.com/solutions/talent-solution/ 171[cloud-trace]: https://cloud.google.com/trace/ 172[cloud-translate]: https://cloud.google.com/translate 173[cloud-recaptcha]: https://cloud.google.com/recaptcha-enterprise/ 174[cloud-recommender]: https://cloud.google.com/recommendations/ 175[cloud-video]: https://cloud.google.com/video-intelligence/ 176[cloud-vision]: https://cloud.google.com/vision 177[cloud-webrisk]: https://cloud.google.com/web-risk/ 178