README.md
1# Google Cloud Client Libraries for Go
2
3[![Go Reference](https://pkg.go.dev/badge/cloud.google.com/go.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 ```bash
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## Supported APIs
29
30For an updated list of all of our released APIs please see our
31[reference docs](https://cloud.google.com/go/docs/reference).
32
33## [Go Versions Supported](#supported-versions)
34
35We currently support Go versions 1.11 and newer.
36
37## Authorization
38
39By default, each API will use [Google Application Default Credentials](https://developers.google.com/identity/protocols/application-default-credentials)
40for authorization credentials used in calling the API endpoints. This will allow your
41application to run in many environments without requiring explicit configuration.
42
43[snip]:# (auth)
44```go
45client, err := storage.NewClient(ctx)
46```
47
48To authorize using a
49[JSON key file](https://cloud.google.com/iam/docs/managing-service-account-keys),
50pass
51[`option.WithCredentialsFile`](https://pkg.go.dev/google.golang.org/api/option#WithCredentialsFile)
52to the `NewClient` function of the desired package. For example:
53
54[snip]:# (auth-JSON)
55```go
56client, err := storage.NewClient(ctx, option.WithCredentialsFile("path/to/keyfile.json"))
57```
58
59You can exert more control over authorization by using the
60[`golang.org/x/oauth2`](https://pkg.go.dev/golang.org/x/oauth2) package to
61create an `oauth2.TokenSource`. Then pass
62[`option.WithTokenSource`](https://pkg.go.dev/google.golang.org/api/option#WithTokenSource)
63to the `NewClient` function:
64[snip]:# (auth-ts)
65```go
66tokenSource := ...
67client, err := storage.NewClient(ctx, option.WithTokenSource(tokenSource))
68```
69
70## Contributing
71
72Contributions are welcome. Please, see the
73[CONTRIBUTING](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/CONTRIBUTING.md)
74document for details.
75
76Please note that this project is released with a Contributor Code of Conduct.
77By participating in this project you agree to abide by its terms.
78See [Contributor Code of Conduct](https://github.com/GoogleCloudPlatform/google-cloud-go/blob/master/CONTRIBUTING.md#contributor-code-of-conduct)
79for more information.
80
81[cloud-asset]: https://cloud.google.com/security-command-center/docs/how-to-asset-inventory
82[cloud-automl]: https://cloud.google.com/automl
83[cloud-build]: https://cloud.google.com/cloud-build/
84[cloud-bigquery]: https://cloud.google.com/bigquery/
85[cloud-bigtable]: https://cloud.google.com/bigtable/
86[cloud-compute]: https://cloud.google.com/compute
87[cloud-container]: https://cloud.google.com/containers/
88[cloud-containeranalysis]: https://cloud.google.com/container-registry/docs/container-analysis
89[cloud-dataproc]: https://cloud.google.com/dataproc/
90[cloud-datastore]: https://cloud.google.com/datastore/
91[cloud-dialogflow]: https://cloud.google.com/dialogflow-enterprise/
92[cloud-debugger]: https://cloud.google.com/debugger/
93[cloud-dlp]: https://cloud.google.com/dlp/
94[cloud-errors]: https://cloud.google.com/error-reporting/
95[cloud-firestore]: https://cloud.google.com/firestore/
96[cloud-iam]: https://cloud.google.com/iam/
97[cloud-iot]: https://cloud.google.com/iot-core/
98[cloud-irm]: https://cloud.google.com/incident-response/docs/concepts
99[cloud-kms]: https://cloud.google.com/kms/
100[cloud-pubsub]: https://cloud.google.com/pubsub/
101[cloud-pubsublite]: https://cloud.google.com/pubsub/lite
102[cloud-storage]: https://cloud.google.com/storage/
103[cloud-language]: https://cloud.google.com/natural-language
104[cloud-logging]: https://cloud.google.com/logging/
105[cloud-natural-language]: https://cloud.google.com/natural-language/
106[cloud-memorystore]: https://cloud.google.com/memorystore/
107[cloud-monitoring]: https://cloud.google.com/monitoring/
108[cloud-oslogin]: https://cloud.google.com/compute/docs/oslogin/rest
109[cloud-phishingprotection]: https://cloud.google.com/phishing-protection/
110[cloud-securitycenter]: https://cloud.google.com/security-command-center/
111[cloud-scheduler]: https://cloud.google.com/scheduler
112[cloud-spanner]: https://cloud.google.com/spanner/
113[cloud-speech]: https://cloud.google.com/speech
114[cloud-talent]: https://cloud.google.com/solutions/talent-solution/
115[cloud-tasks]: https://cloud.google.com/tasks/
116[cloud-texttospeech]: https://cloud.google.com/texttospeech/
117[cloud-talent]: https://cloud.google.com/solutions/talent-solution/
118[cloud-trace]: https://cloud.google.com/trace/
119[cloud-translate]: https://cloud.google.com/translate
120[cloud-recaptcha]: https://cloud.google.com/recaptcha-enterprise/
121[cloud-recommender]: https://cloud.google.com/recommendations/
122[cloud-video]: https://cloud.google.com/video-intelligence/
123[cloud-vision]: https://cloud.google.com/vision
124[cloud-webrisk]: https://cloud.google.com/web-risk/
125
126## Links
127
128- [Go on Google Cloud](https://cloud.google.com/go/home)
129- [Getting started with Go on Google Cloud](https://cloud.google.com/go/getting-started)
130- [App Engine Quickstart](https://cloud.google.com/appengine/docs/standard/go/quickstart)
131- [Cloud Functions Quickstart](https://cloud.google.com/functions/docs/quickstart-go)
132- [Cloud Run Quickstart](https://cloud.google.com/run/docs/quickstarts/build-and-deploy#go)
133