1# Changes
2
3
4## [0.72.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.71.0...v0.72.0) (2020-11-10)
5
6
7### Features
8
9* **all:** auto-regenerate gapics , refs [#3177](https://www.github.com/googleapis/google-cloud-go/issues/3177) [#3164](https://www.github.com/googleapis/google-cloud-go/issues/3164) [#3149](https://www.github.com/googleapis/google-cloud-go/issues/3149) [#3142](https://www.github.com/googleapis/google-cloud-go/issues/3142) [#3136](https://www.github.com/googleapis/google-cloud-go/issues/3136) [#3130](https://www.github.com/googleapis/google-cloud-go/issues/3130) [#3121](https://www.github.com/googleapis/google-cloud-go/issues/3121) [#3119](https://www.github.com/googleapis/google-cloud-go/issues/3119)
10
11
12### Bug Fixes
13
14* **all:** Update hand-written clients to not use WithEndpoint override ([#3111](https://www.github.com/googleapis/google-cloud-go/issues/3111)) ([f0cfd05](https://www.github.com/googleapis/google-cloud-go/commit/f0cfd0532f5204ff16f7bae406efa72603d16f44))
15* **internal/godocfx:** rename README files to pkg-readme ([#3185](https://www.github.com/googleapis/google-cloud-go/issues/3185)) ([d3a8571](https://www.github.com/googleapis/google-cloud-go/commit/d3a85719be411b692aede3331abb29b5a7b3da9a))
16
17
18## [0.71.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.70.0...v0.71.0) (2020-10-30)
19
20
21### Features
22
23* **all:** auto-regenerate gapics , refs [#3115](https://www.github.com/googleapis/google-cloud-go/issues/3115) [#3106](https://www.github.com/googleapis/google-cloud-go/issues/3106) [#3102](https://www.github.com/googleapis/google-cloud-go/issues/3102) [#3083](https://www.github.com/googleapis/google-cloud-go/issues/3083) [#3073](https://www.github.com/googleapis/google-cloud-go/issues/3073) [#3057](https://www.github.com/googleapis/google-cloud-go/issues/3057) [#3044](https://www.github.com/googleapis/google-cloud-go/issues/3044)
24* **billing/budgets:** start generating apiv1 ([#3099](https://www.github.com/googleapis/google-cloud-go/issues/3099)) ([e760c85](https://www.github.com/googleapis/google-cloud-go/commit/e760c859de88a6e79b6dffc653dbf75f1630d8e3))
25* **internal:** auto-run godocfx on new mods ([#3069](https://www.github.com/googleapis/google-cloud-go/issues/3069)) ([49f497e](https://www.github.com/googleapis/google-cloud-go/commit/49f497eab80ce34dfb4ca41f033a5c0429ff5e42))
26* **pubsublite:** Added Pub/Sub Lite clients and routing headers ([#3105](https://www.github.com/googleapis/google-cloud-go/issues/3105)) ([98668fa](https://www.github.com/googleapis/google-cloud-go/commit/98668fa5457d26ed34debee708614f027020e5bc))
27* **pubsublite:** Message type and message routers ([#3077](https://www.github.com/googleapis/google-cloud-go/issues/3077)) ([179fc55](https://www.github.com/googleapis/google-cloud-go/commit/179fc550b545a5344358a243da7007ffaa7b5171))
28* **pubsublite:** Pub/Sub Lite admin client ([#3036](https://www.github.com/googleapis/google-cloud-go/issues/3036)) ([749473e](https://www.github.com/googleapis/google-cloud-go/commit/749473ead30bf1872634821d3238d1299b99acc6))
29* **pubsublite:** Publish settings and errors ([#3075](https://www.github.com/googleapis/google-cloud-go/issues/3075)) ([9eb9fcb](https://www.github.com/googleapis/google-cloud-go/commit/9eb9fcb79f17ad7c08c77c455ba3e8d89e3bdbf2))
30* **pubsublite:** Retryable stream wrapper ([#3068](https://www.github.com/googleapis/google-cloud-go/issues/3068)) ([97cfd45](https://www.github.com/googleapis/google-cloud-go/commit/97cfd4587f2f51996bd685ff486308b70eb51900))
31
32
33### Bug Fixes
34
35* **internal/kokoro:** remove unnecessary cd ([#3071](https://www.github.com/googleapis/google-cloud-go/issues/3071)) ([c1a4c3e](https://www.github.com/googleapis/google-cloud-go/commit/c1a4c3eaffcdc3cffe0e223fcfa1f60879cd23bb))
36* **pubsublite:** Disable integration tests for project id ([#3087](https://www.github.com/googleapis/google-cloud-go/issues/3087)) ([a0982f7](https://www.github.com/googleapis/google-cloud-go/commit/a0982f79d6461feabdf31363f29fed7dc5677fe7))
37
38## [0.70.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.69.0...v0.70.0) (2020-10-19)
39
40
41### Features
42
43* **all:** auto-regenerate gapics , refs [#3047](https://www.github.com/googleapis/google-cloud-go/issues/3047) [#3035](https://www.github.com/googleapis/google-cloud-go/issues/3035) [#3025](https://www.github.com/googleapis/google-cloud-go/issues/3025)
44* **managedidentities:** start generating apiv1 ([#3032](https://www.github.com/googleapis/google-cloud-go/issues/3032)) ([10ccca2](https://www.github.com/googleapis/google-cloud-go/commit/10ccca238074d24fea580a4cd8e64478818b0b44))
45* **pubsublite:** Types for resource paths and topic/subscription configs ([#3026](https://www.github.com/googleapis/google-cloud-go/issues/3026)) ([6f7fa86](https://www.github.com/googleapis/google-cloud-go/commit/6f7fa86ed906258f98d996aab40184f3a46f9714))
46
47## [0.69.1](https://www.github.com/googleapis/google-cloud-go/compare/v0.69.0...v0.69.1) (2020-10-14)
48
49This is an empty release that was created solely to aid in pubsublite's module
50carve out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
51
52## [0.69.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.68.0...v0.69.0) (2020-10-14)
53
54
55### Features
56
57* **accessapproval:** start generating apiv1 ([#3002](https://www.github.com/googleapis/google-cloud-go/issues/3002)) ([709d6e7](https://www.github.com/googleapis/google-cloud-go/commit/709d6e76393e6ac00ff488efd83bfe873173b045))
58* **all:** auto-regenerate gapics , refs [#3010](https://www.github.com/googleapis/google-cloud-go/issues/3010) [#3005](https://www.github.com/googleapis/google-cloud-go/issues/3005) [#2993](https://www.github.com/googleapis/google-cloud-go/issues/2993) [#2989](https://www.github.com/googleapis/google-cloud-go/issues/2989) [#2981](https://www.github.com/googleapis/google-cloud-go/issues/2981) [#2976](https://www.github.com/googleapis/google-cloud-go/issues/2976) [#2968](https://www.github.com/googleapis/google-cloud-go/issues/2968) [#2958](https://www.github.com/googleapis/google-cloud-go/issues/2958)
59* **cmd/go-cloud-debug-agent:** mark as deprecated ([#2964](https://www.github.com/googleapis/google-cloud-go/issues/2964)) ([276ec88](https://www.github.com/googleapis/google-cloud-go/commit/276ec88b05852c33a3ba437e18d072f7ffd8fd33))
60* **godocfx:** add nesting to TOC ([#2972](https://www.github.com/googleapis/google-cloud-go/issues/2972)) ([3a49b2d](https://www.github.com/googleapis/google-cloud-go/commit/3a49b2d142a353f98429235c3f380431430b4dbf))
61* **internal/godocfx:** HTML-ify package summary ([#2986](https://www.github.com/googleapis/google-cloud-go/issues/2986)) ([9e64b01](https://www.github.com/googleapis/google-cloud-go/commit/9e64b018255bd8d9b31d60e8f396966251de946b))
62* **internal/kokoro:** make publish_docs VERSION optional ([#2979](https://www.github.com/googleapis/google-cloud-go/issues/2979)) ([76e35f6](https://www.github.com/googleapis/google-cloud-go/commit/76e35f689cb60bd5db8e14b8c8d367c5902bcb0e))
63* **websecurityscanner:** start generating apiv1 ([#3006](https://www.github.com/googleapis/google-cloud-go/issues/3006)) ([1d92e20](https://www.github.com/googleapis/google-cloud-go/commit/1d92e2062a13f62d7a96be53a7354c0cacca6a85))
64
65
66### Bug Fixes
67
68* **godocfx:** make extra files optional, filter out third_party ([#2985](https://www.github.com/googleapis/google-cloud-go/issues/2985)) ([f268921](https://www.github.com/googleapis/google-cloud-go/commit/f2689214a24b2e325d3e8f54441bb11fbef925f0))
69
70## [0.68.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.67.0...v0.68.0) (2020-10-02)
71
72
73### Features
74
75* **all:** auto-regenerate gapics , refs [#2952](https://www.github.com/googleapis/google-cloud-go/issues/2952) [#2944](https://www.github.com/googleapis/google-cloud-go/issues/2944) [#2935](https://www.github.com/googleapis/google-cloud-go/issues/2935)
76
77## [0.67.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.66.0...v0.67.0) (2020-09-29)
78
79
80### Features
81
82* **all:** auto-regenerate gapics , refs [#2933](https://www.github.com/googleapis/google-cloud-go/issues/2933) [#2919](https://www.github.com/googleapis/google-cloud-go/issues/2919) [#2913](https://www.github.com/googleapis/google-cloud-go/issues/2913) [#2910](https://www.github.com/googleapis/google-cloud-go/issues/2910) [#2899](https://www.github.com/googleapis/google-cloud-go/issues/2899) [#2897](https://www.github.com/googleapis/google-cloud-go/issues/2897) [#2886](https://www.github.com/googleapis/google-cloud-go/issues/2886) [#2877](https://www.github.com/googleapis/google-cloud-go/issues/2877) [#2869](https://www.github.com/googleapis/google-cloud-go/issues/2869) [#2864](https://www.github.com/googleapis/google-cloud-go/issues/2864)
83* **assuredworkloads:** start generating apiv1beta1 ([#2866](https://www.github.com/googleapis/google-cloud-go/issues/2866)) ([7598c4d](https://www.github.com/googleapis/google-cloud-go/commit/7598c4dd2462e8270a2c7b1f496af58ca81ff568))
84* **dialogflow/cx:** start generating apiv3beta1 ([#2875](https://www.github.com/googleapis/google-cloud-go/issues/2875)) ([37ca93a](https://www.github.com/googleapis/google-cloud-go/commit/37ca93ad69eda363d956f0174d444ed5914f5a72))
85* **docfx:** add support for examples ([#2884](https://www.github.com/googleapis/google-cloud-go/issues/2884)) ([0cc0de3](https://www.github.com/googleapis/google-cloud-go/commit/0cc0de300d58be6d3b7eeb2f1baebfa6df076830))
86* **godocfx:** include README in output ([#2927](https://www.github.com/googleapis/google-cloud-go/issues/2927)) ([f084690](https://www.github.com/googleapis/google-cloud-go/commit/f084690a2ea08ce73bafaaced95ad271fd01e11e))
87* **talent:** start generating apiv4 ([#2871](https://www.github.com/googleapis/google-cloud-go/issues/2871)) ([5c98071](https://www.github.com/googleapis/google-cloud-go/commit/5c98071b03822c58862d1fa5442ff36d627f1a61))
88
89
90### Bug Fixes
91
92* **godocfx:** filter out other modules, sort pkgs ([#2894](https://www.github.com/googleapis/google-cloud-go/issues/2894)) ([868db45](https://www.github.com/googleapis/google-cloud-go/commit/868db45e2e6f4e9ad48432be86c849f335e1083d))
93* **godocfx:** shorten function names ([#2880](https://www.github.com/googleapis/google-cloud-go/issues/2880)) ([48a0217](https://www.github.com/googleapis/google-cloud-go/commit/48a0217930750c1f4327f2622b0f2a3ec8afc0b7))
94* **translate:** properly name examples ([#2892](https://www.github.com/googleapis/google-cloud-go/issues/2892)) ([c19e141](https://www.github.com/googleapis/google-cloud-go/commit/c19e1415e6fa76b7ea66a7fc67ad3ba22670a2ba)), refs [#2883](https://www.github.com/googleapis/google-cloud-go/issues/2883)
95
96## [0.66.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.65.0...v0.66.0) (2020-09-15)
97
98
99### Features
100
101* **all:** auto-regenerate gapics , refs [#2849](https://www.github.com/googleapis/google-cloud-go/issues/2849) [#2843](https://www.github.com/googleapis/google-cloud-go/issues/2843) [#2841](https://www.github.com/googleapis/google-cloud-go/issues/2841) [#2819](https://www.github.com/googleapis/google-cloud-go/issues/2819) [#2816](https://www.github.com/googleapis/google-cloud-go/issues/2816) [#2809](https://www.github.com/googleapis/google-cloud-go/issues/2809) [#2801](https://www.github.com/googleapis/google-cloud-go/issues/2801) [#2795](https://www.github.com/googleapis/google-cloud-go/issues/2795) [#2791](https://www.github.com/googleapis/google-cloud-go/issues/2791) [#2788](https://www.github.com/googleapis/google-cloud-go/issues/2788) [#2781](https://www.github.com/googleapis/google-cloud-go/issues/2781)
102* **analytics/data:** start generating apiv1alpha ([#2796](https://www.github.com/googleapis/google-cloud-go/issues/2796)) ([e93132c](https://www.github.com/googleapis/google-cloud-go/commit/e93132c77725de3c80c34d566df269eabfcfde93))
103* **area120/tables:** start generating apiv1alpha1 ([#2807](https://www.github.com/googleapis/google-cloud-go/issues/2807)) ([9e5a4d0](https://www.github.com/googleapis/google-cloud-go/commit/9e5a4d0dee0d83be0c020797a2f579d9e42ef521))
104* **cloudbuild:** Start generating apiv1/v3 ([#2830](https://www.github.com/googleapis/google-cloud-go/issues/2830)) ([358a536](https://www.github.com/googleapis/google-cloud-go/commit/358a5368da64cf4868551652e852ceb453504f64))
105* **godocfx:** create Go DocFX YAML generator ([#2854](https://www.github.com/googleapis/google-cloud-go/issues/2854)) ([37c70ac](https://www.github.com/googleapis/google-cloud-go/commit/37c70acd91768567106ff3b2b130835998d974c5))
106* **security/privateca:** start generating apiv1beta1 ([#2806](https://www.github.com/googleapis/google-cloud-go/issues/2806)) ([f985141](https://www.github.com/googleapis/google-cloud-go/commit/f9851412183989dc69733a7e61ad39a9378cd893))
107* **video/transcoder:** start generating apiv1beta1 ([#2797](https://www.github.com/googleapis/google-cloud-go/issues/2797)) ([390dda8](https://www.github.com/googleapis/google-cloud-go/commit/390dda8ff2c526e325e434ad0aec778b7aa97ea4))
108* **workflows:** start generating apiv1beta ([#2799](https://www.github.com/googleapis/google-cloud-go/issues/2799)) ([0e39665](https://www.github.com/googleapis/google-cloud-go/commit/0e39665ccb788caec800e2887d433ca6e0cf9901))
109* **workflows/executions:** start generating apiv1beta ([#2800](https://www.github.com/googleapis/google-cloud-go/issues/2800)) ([7eaa0d1](https://www.github.com/googleapis/google-cloud-go/commit/7eaa0d184c6a2141d8bf4514b3fd20715b50a580))
110
111
112### Bug Fixes
113
114* **internal/kokoro:** install the right version of docuploader ([#2861](https://www.github.com/googleapis/google-cloud-go/issues/2861)) ([d8489c1](https://www.github.com/googleapis/google-cloud-go/commit/d8489c141b8b02e83d6426f4baebd3658ae11639))
115* **internal/kokoro:** remove extra dash in doc tarball ([#2862](https://www.github.com/googleapis/google-cloud-go/issues/2862)) ([690ddcc](https://www.github.com/googleapis/google-cloud-go/commit/690ddccc5202b5a70f1afa5c518dca37b6a0861c))
116* **profiler:** do not collect disabled profile types ([#2836](https://www.github.com/googleapis/google-cloud-go/issues/2836)) ([faeb498](https://www.github.com/googleapis/google-cloud-go/commit/faeb4985bf6afdcddba4553efa874642bf7f08ed)), refs [#2835](https://www.github.com/googleapis/google-cloud-go/issues/2835)
117
118
119### Reverts
120
121* **cloudbuild): "feat(cloudbuild:** Start generating apiv1/v3" ([#2840](https://www.github.com/googleapis/google-cloud-go/issues/2840)) ([3aaf755](https://www.github.com/googleapis/google-cloud-go/commit/3aaf755476dfea1700986fc086f53fc1ab756557))
122
123## [0.65.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.64.0...v0.65.0) (2020-08-27)
124
125
126### Announcements
127
128The following changes will be included in an upcoming release and are not
129included in this one.
130
131#### Default Deadlines
132
133By default, non-streaming methods, like Create or Get methods, will have a
134default deadline applied to the context provided at call time, unless a context
135deadline is already set. Streaming methods have no default deadline and will run
136indefinitely, unless the context provided at call time contains a deadline.
137
138To opt-out of this behavior, set the environment variable
139`GOOGLE_API_GO_EXPERIMENTAL_DISABLE_DEFAULT_DEADLINE` to `true` prior to
140initializing a client. This opt-out mechanism will be removed in a later
141release, with a notice similar to this one ahead of its removal.
142
143
144### Features
145
146* **all:** auto-regenerate gapics , refs [#2774](https://www.github.com/googleapis/google-cloud-go/issues/2774) [#2764](https://www.github.com/googleapis/google-cloud-go/issues/2764)
147
148
149### Bug Fixes
150
151* **all:** correct minor typos ([#2756](https://www.github.com/googleapis/google-cloud-go/issues/2756)) ([03d78b5](https://www.github.com/googleapis/google-cloud-go/commit/03d78b5627819cb64d1f3866f90043f709e825e1))
152* **compute/metadata:** remove leading slash for Get suffix ([#2760](https://www.github.com/googleapis/google-cloud-go/issues/2760)) ([f0d605c](https://www.github.com/googleapis/google-cloud-go/commit/f0d605ccf32391a9da056a2c551158bd076c128d))
153
154## [0.64.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.63.0...v0.64.0) (2020-08-18)
155
156
157### Features
158
159* **all:** auto-regenerate gapics , refs [#2734](https://www.github.com/googleapis/google-cloud-go/issues/2734) [#2731](https://www.github.com/googleapis/google-cloud-go/issues/2731) [#2730](https://www.github.com/googleapis/google-cloud-go/issues/2730) [#2725](https://www.github.com/googleapis/google-cloud-go/issues/2725) [#2722](https://www.github.com/googleapis/google-cloud-go/issues/2722) [#2706](https://www.github.com/googleapis/google-cloud-go/issues/2706)
160* **pubsublite:** start generating v1 ([#2700](https://www.github.com/googleapis/google-cloud-go/issues/2700)) ([d2e777f](https://www.github.com/googleapis/google-cloud-go/commit/d2e777f56e08146646b3ffb7a78856795094ab4e))
161
162## [0.63.0](https://www.github.com/googleapis/google-cloud-go/compare/v0.62.0...v0.63.0) (2020-08-05)
163
164
165### Features
166
167* **all:** auto-regenerate gapics ([#2682](https://www.github.com/googleapis/google-cloud-go/issues/2682)) ([63bfd63](https://www.github.com/googleapis/google-cloud-go/commit/63bfd638da169e0f1f4fa4a5125da2955022dc04))
168* **analytics/admin:** start generating apiv1alpha ([#2670](https://www.github.com/googleapis/google-cloud-go/issues/2670)) ([268199e](https://www.github.com/googleapis/google-cloud-go/commit/268199e5350a64a83ecf198e0e0fa4863f00fa6c))
169* **functions/metadata:** Special-case marshaling ([#2669](https://www.github.com/googleapis/google-cloud-go/issues/2669)) ([d8d7fc6](https://www.github.com/googleapis/google-cloud-go/commit/d8d7fc66cbc42f79bec25fb0daaf53d926e3645b))
170* **gaming:** start generate apiv1 ([#2681](https://www.github.com/googleapis/google-cloud-go/issues/2681)) ([1adfd0a](https://www.github.com/googleapis/google-cloud-go/commit/1adfd0aed6b2c0e1dd0c575a5ec0f49388fa5601))
171* **internal/kokoro:** add script to test compatibility with samples ([#2637](https://www.github.com/googleapis/google-cloud-go/issues/2637)) ([f2aa76a](https://www.github.com/googleapis/google-cloud-go/commit/f2aa76a0058e86c1c33bb634d2c084b58f77ab32))
172
173## v0.62.0
174
175### Announcements
176
177- There was a breaking change to `cloud.google.com/go/dataproc/apiv1` that was
178  merged in [this PR](https://github.com/googleapis/google-cloud-go/pull/2606).
179  This fixed a broken API response for `DiagnoseCluster`. When polling on the
180  Long Running Operation(LRO), the API now returns
181  `(*dataprocpb.DiagnoseClusterResults, error)` whereas it only returned an
182  `error` before.
183
184### Changes
185
186- all:
187  - Updated all direct dependencies.
188  - Updated contributing guidelines to suggest allowing edits from maintainers.
189- billing/budgets:
190  - Start generating client for apiv1beta1.
191- functions:
192  - Start generating client for apiv1.
193- notebooks:
194  - Start generating client apiv1beta1.
195- profiler:
196  - update proftest to support parsing floating-point backoff durations.
197  - Fix the regexp used to parse backoff duration.
198- Various updates to autogenerated clients.
199
200## v0.61.0
201
202### Changes
203
204- all:
205  - Update all direct dependencies.
206- dashboard:
207  - Start generating client for apiv1.
208- policytroubleshooter:
209  - Start generating client for apiv1.
210- profiler:
211  - Disable OpenCensus Telemetry for requests made by the profiler package by default. You can re-enable it using `profiler.Config.EnableOCTelemetry`.
212- Various updates to autogenerated clients.
213
214## v0.60.0
215
216### Changes
217
218- all:
219  - Refactored examples to reduce module dependencies.
220  - Update sub-modules to use cloud.google.com/go v0.59.0.
221- internal:
222  - Start generating client for gaming apiv1beta.
223- Various updates to autogenerated clients.
224
225## v0.59.0
226
227### Announcements
228
229goolgeapis/google-cloud-go has moved its source of truth to GitHub and is no longer a mirror. This means that our
230contributing process has changed a bit. We will now be conducting all code reviews on GitHub which means we now accept
231pull requests! If you have a version of the codebase previously checked out you may wish to update your git remote to
232point to GitHub.
233
234### Changes
235
236- all:
237  - Remove dependency on honnef.co/go/tools.
238  - Update our contributing instructions now that we use GitHub for reviews.
239  - Remove some un-inclusive terminology.
240- compute/metadata:
241  - Pass cancelable context to DNS lookup.
242- .github:
243  - Update templates issue/PR templates.
244- internal:
245  - Bump several clients to GA.
246  - Fix GoDoc badge source.
247  - Several automation changes related to the move to GitHub.
248  - Start generating a client for asset v1p5beta1.
249- Various updates to autogenerated clients.
250
251## v0.58.0
252
253### Deprecation notice
254
255- `cloud.google.com/go/monitoring/apiv3` has been deprecated due to breaking
256  changes in the API. Please migrate to `cloud.google.com/go/monitoring/apiv3/v2`.
257
258### Changes
259
260- all:
261  - The remaining uses of gtransport.Dial have been removed.
262  - The `genproto` dependency has been updated to a version that makes use of
263    new `protoreflect` library. For more information on these protobuf changes
264    please see the following post from the official Go blog:
265    https://blog.golang.org/protobuf-apiv2.
266- internal:
267  - Started generation of datastore admin v1 client.
268  - Updated protofuf version used for generation to 3.12.X.
269  - Update the release levels for several APIs.
270  - Generate clients with protoc-gen-go@v1.4.1.
271- monitoring:
272  - Re-enable generation of monitoring/apiv3 under v2 directory (see deprecation
273    notice above).
274- profiler:
275  - Fixed flakiness in tests.
276- Various updates to autogenerated clients.
277
278## v0.57.0
279
280- all:
281  - Update module dependency `google.golang.org/api` to `v0.21.0`.
282- errorreporting:
283  - Add exported SetGoogleClientInfo wrappers to manual file.
284- expr/v1alpha1:
285  - Deprecate client. This client will be removed in a future release.
286- internal:
287  - Fix possible data race in TestTracer.
288  - Pin versions of tools used for generation.
289  - Correct the release levels for BigQuery APIs.
290  - Start generation osconfig v1.
291- longrunning:
292  - Add exported SetGoogleClientInfo wrappers to manual file.
293- monitoring:
294  - Stop generation of monitoring/apiv3 because of incoming breaking change.
295- trace:
296  - Add exported SetGoogleClientInfo wrappers to manual file.
297- Various updates to autogenerated clients.
298
299## v0.56.0
300
301- secretmanager:
302  - add IAM helper
303- profiler:
304  - try all us-west1 zones for integration tests
305- internal:
306  - add config to generate webrisk v1
307  - add repo and commit to buildcop invocation
308  - add recaptchaenterprise v1 generation config
309  - update microgenerator to v0.12.5
310  - add datacatalog client
311  - start generating security center settings v1beta
312  - start generating osconfig agentendpoint v1
313  - setup generation for bigquery/connection/v1beta1
314- all:
315  - increase continous testing timeout to 45m
316  - various updates to autogenerated clients.
317
318## v0.55.0
319
320- Various updates to autogenerated clients.
321
322## v0.54.0
323
324- all:
325  - remove unused golang.org/x/exp from mod file
326  - update godoc.org links to pkg.go.dev
327- compute/metadata:
328  - use defaultClient when http.Client is nil
329  - remove subscribeClient
330- iam:
331  - add support for v3 policy and IAM conditions
332- Various updates to autogenerated clients.
333
334## v0.53.0
335
336- all: most clients now use transport/grpc.DialPool rather than Dial (see #1777 for outliers).
337  - Connection pooling now does not use the deprecated (and soon to be removed) gRPC load balancer API.
338- profiler: remove symbolization (drops support for go1.10)
339- Various updates to autogenerated clients.
340
341## v0.52.0
342
343- internal/gapicgen: multiple improvements related to library generation.
344- compute/metadata: unset ResponseHeaderTimeout in defaultClient
345- docs: fix link to KMS in README.md
346- Various updates to autogenerated clients.
347
348## v0.51.0
349
350- secretmanager:
351  - add IAM helper for generic resource IAM handle
352- cloudbuild:
353  - migrate to microgen in a major version
354- Various updates to autogenerated clients.
355
356## v0.50.0
357
358- profiler:
359  - Support disabling CPU profile collection.
360  - Log when a profile creation attempt begins.
361- compute/metadata:
362  - Fix panic on malformed URLs.
363  - InstanceName returns actual instance name.
364- Various updates to autogenerated clients.
365
366## v0.49.0
367
368- functions/metadata:
369  - Handle string resources in JSON unmarshaller.
370- Various updates to autogenerated clients.
371
372## v0.48.0
373
374- Various updates to autogenerated clients
375
376## v0.47.0
377
378This release drops support for Go 1.9 and Go 1.10: we continue to officially
379support Go 1.11, Go 1.12, and Go 1.13.
380
381- Various updates to autogenerated clients.
382- Add cloudbuild/apiv1 client.
383
384## v0.46.3
385
386This is an empty release that was created solely to aid in storage's module
387carve-out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
388
389## v0.46.2
390
391This is an empty release that was created solely to aid in spanner's module
392carve-out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
393
394## v0.46.1
395
396This is an empty release that was created solely to aid in firestore's module
397carve-out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
398
399## v0.46.0
400
401- spanner:
402  - Retry "Session not found" for read-only transactions.
403  - Retry aborted PDMLs.
404- spanner/spannertest:
405  - Fix a bug that was causing 0X-prefixed number to be parsed incorrectly.
406- storage:
407  - Add HMACKeyOptions.
408  - Remove *REGIONAL from StorageClass documentation. Using MULTI_REGIONAL,
409    DURABLE_REDUCED_AVAILABILITY, and REGIONAL are no longer best practice
410    StorageClasses but they are still acceptable values.
411- trace:
412  - Remove cloud.google.com/go/trace. Package cloud.google.com/go/trace has been
413    marked OBSOLETE for several years: it is now no longer provided. If you
414    relied on this package, please vendor it or switch to using
415    https://cloud.google.com/trace/docs/setup/go (which obsoleted it).
416
417## v0.45.1
418
419This is an empty release that was created solely to aid in pubsub's module
420carve-out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
421
422## v0.45.0
423
424- compute/metadata:
425  - Add Email method.
426- storage:
427  - Fix duplicated retry logic.
428  - Add ReaderObjectAttrs.StartOffset.
429  - Support reading last N bytes of a file when a negative range is given, such
430    as `obj.NewRangeReader(ctx, -10, -1)`.
431  - Add HMACKey listing functionality.
432- spanner/spannertest:
433  - Support primary keys with no columns.
434  - Fix MinInt64 parsing.
435  - Implement deletion of key ranges.
436  - Handle reads during a read-write transaction.
437  - Handle returning DATE values.
438- pubsub:
439  - Fix Ack/Modack request size calculation.
440- logging:
441  - Add auto-detection of monitored resources on GAE Standard.
442
443## v0.44.3
444
445This is an empty release that was created solely to aid in bigtable's module
446carve-out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
447
448## v0.44.2
449
450This is an empty release that was created solely to aid in bigquery's module
451carve-out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
452
453## v0.44.1
454
455This is an empty release that was created solely to aid in datastore's module
456carve-out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
457
458## v0.44.0
459
460- datastore:
461  - Interface elements whose underlying types are supported, are now supported.
462  - Reduce time to initial retry from 1s to 100ms.
463- firestore:
464  - Add Increment transformation.
465- storage:
466  - Allow emulator with STORAGE_EMULATOR_HOST.
467  - Add methods for HMAC key management.
468- pubsub:
469  - Add PublishCount and PublishLatency measurements.
470  - Add DefaultPublishViews and DefaultSubscribeViews for convenience of
471  importing all views.
472  - Add add Subscription.PushConfig.AuthenticationMethod.
473- spanner:
474  - Allow emulator usage with SPANNER_EMULATOR_HOST.
475  - Add cloud.google.com/go/spanner/spannertest, a spanner emulator.
476  - Add cloud.google.com/go/spanner/spansql which contains types and a parser
477  for the Cloud Spanner SQL dialect.
478- asset:
479  - Add apiv1p2beta1 client.
480
481## v0.43.0
482
483This is an empty release that was created solely to aid in logging's module
484carve-out. See: https://github.com/golang/go/wiki/Modules#is-it-possible-to-add-a-module-to-a-multi-module-repository.
485
486## v0.42.0
487
488- bigtable:
489  - Add an admin method to update an instance and clusters.
490  - Fix bttest regex matching behavior for alternations (things like `|a`).
491  - Expose BlockAllFilter filter.
492- bigquery:
493  - Add Routines API support.
494- storage:
495  - Add read-only Bucket.LocationType.
496- logging:
497  - Add TraceSampled to Entry.
498  - Fix to properly extract {Trace, Span}Id from X-Cloud-Trace-Context.
499- pubsub:
500  - Add Cloud Key Management to TopicConfig.
501  - Change ExpirationPolicy to optional.Duration.
502- automl:
503  - Add apiv1beta1 client.
504- iam:
505  - Fix compilation problem with iam/credentials/apiv1.
506
507## v0.41.0
508
509- bigtable:
510  - Check results from PredicateFilter in bttest, which fixes certain false matches.
511- profiler:
512  - debugLog checks user defined logging options before logging.
513- spanner:
514  - PartitionedUpdates respect query parameters.
515  - StartInstance allows specifying cloud API access scopes.
516- bigquery:
517  - Use empty slice instead of nil for ValueSaver, fixing an issue with zero-length, repeated, nested fields causing panics.
518- firestore:
519  - Return same number of snapshots as doc refs (in the form of duplicate records) during GetAll.
520- replay:
521  - Change references to IPv4 addresses to localhost, making replay compatible with IPv6.
522
523## v0.40.0
524
525- all:
526  - Update to protobuf-golang v1.3.1.
527- datastore:
528  - Attempt to decode GAE-encoded keys if initial decoding attempt fails.
529  - Support integer time conversion.
530- pubsub:
531  - Add PublishSettings.BundlerByteLimit. If users receive pubsub.ErrOverflow,
532  this value should be adjusted higher.
533  - Use IPv6 compatible target in testutil.
534- bigtable:
535  - Fix Latin-1 regexp filters in bttest, allowing \C.
536  - Expose PassAllFilter.
537- profiler:
538  - Add log messages for slow path in start.
539  - Fix start to allow retry until success.
540- firestore:
541  - Add admin client.
542- containeranalysis:
543  - Add apiv1 client.
544- grafeas:
545  - Add apiv1 client.
546
547## 0.39.0
548
549- bigtable:
550  - Implement DeleteInstance in bttest.
551  - Return an error on invalid ReadRowsRequest.RowRange key ranges in bttest.
552- bigquery:
553  - Move RequirePartitionFilter outside of TimePartioning.
554  - Expose models API.
555- firestore:
556  - Allow array values in create and update calls.
557  - Add CollectionGroup method.
558- pubsub:
559  - Add ExpirationPolicy to Subscription.
560- storage:
561  - Add V4 signing.
562- rpcreplay:
563  - Match streams by first sent request. This further improves rpcreplay's
564  ability to distinguish streams.
565- httpreplay:
566  - Set up Man-In-The-Middle config only once. This should improve proxy
567  creation when multiple proxies are used in a single process.
568  - Remove error on empty Content-Type, allowing requests with no Content-Type
569  header but a non-empty body.
570- all:
571  - Fix an edge case bug in auto-generated library pagination by properly
572  propagating pagetoken.
573
574## 0.38.0
575
576This update includes a substantial reduction in our transitive dependency list
577by way of updating to opencensus@v0.21.0.
578
579- spanner:
580  - Error implements GRPCStatus, allowing status.Convert.
581- bigtable:
582  - Fix a bug in bttest that prevents single column queries returning results
583  that match other filters.
584  - Remove verbose retry logging.
585- logging:
586  - Ensure RequestUrl has proper UTF-8, removing the need for users to wrap and
587  rune replace manually.
588- recaptchaenterprise:
589  - Add v1beta1 client.
590- phishingprotection:
591  - Add v1beta1 client.
592
593## 0.37.4
594
595This patch releases re-builds the go.sum. This was not possible in the
596previous release.
597
598- firestore:
599  - Add sentinel value DetectProjectID for auto-detecting project ID.
600  - Add OpenCensus tracing for public methods.
601  - Marked stable. All future changes come with a backwards compatibility
602  guarantee.
603  - Removed firestore/apiv1beta1. All users relying on this low-level library
604  should migrate to firestore/apiv1. Note that most users should use the
605  high-level firestore package instead.
606- pubsub:
607  - Allow large messages in synchronous pull case.
608  - Cap bundler byte limit. This should prevent OOM conditions when there are
609  a very large number of message publishes occurring.
610- storage:
611  - Add ETag to BucketAttrs and ObjectAttrs.
612- datastore:
613  - Removed some non-sensical OpenCensus traces.
614- webrisk:
615  - Add v1 client.
616- asset:
617  - Add v1 client.
618- cloudtasks:
619  - Add v2 client.
620
621## 0.37.3
622
623This patch release removes github.com/golang/lint from the transitive
624dependency list, resolving `go get -u` problems.
625
626Note: this release intentionally has a broken go.sum. Please use v0.37.4.
627
628## 0.37.2
629
630This patch release is mostly intended to bring in v0.3.0 of
631google.golang.org/api, which fixes a GCF deployment issue.
632
633Note: we had to-date accidentally marked Redis as stable. In this release, we've
634fixed it by downgrading its documentation to alpha, as it is in other languages
635and docs.
636
637- all:
638  - Document context in generated libraries.
639
640## 0.37.1
641
642Small go.mod version bumps to bring in v0.2.0 of google.golang.org/api, which
643introduces a new oauth2 url.
644
645## 0.37.0
646
647- spanner:
648  - Add BatchDML method.
649  - Reduced initial time between retries.
650- bigquery:
651  - Produce better error messages for InferSchema.
652  - Add logical type control for avro loads.
653  - Add support for the GEOGRAPHY type.
654- datastore:
655  - Add sentinel value DetectProjectID for auto-detecting project ID.
656  - Allow flatten tag on struct pointers.
657  - Fixed a bug that caused queries to panic with invalid queries. Instead they
658    will now return an error.
659- profiler:
660  - Add ability to override GCE zone and instance.
661- pubsub:
662  - BEHAVIOR CHANGE: Refactor error code retry logic. RPCs should now more
663    consistently retry specific error codes based on whether they're idempotent
664    or non-idempotent.
665- httpreplay: Fixed a bug when a non-GET request had a zero-length body causing
666  the Content-Length header to be dropped.
667- iot:
668  - Add new apiv1 client.
669- securitycenter:
670  - Add new apiv1 client.
671- cloudscheduler:
672  - Add new apiv1 client.
673
674## 0.36.0
675
676- spanner:
677  - Reduce minimum retry backoff from 1s to 100ms. This makes time between
678    retries much faster and should improve latency.
679- storage:
680  - Add support for Bucket Policy Only.
681- kms:
682  - Add ResourceIAM helper method.
683  - Deprecate KeyRingIAM and CryptoKeyIAM. Please use ResourceIAM.
684- firestore:
685  - Switch from v1beta1 API to v1 API.
686  - Allow emulator with FIRESTORE_EMULATOR_HOST.
687- bigquery:
688  - Add NumLongTermBytes to Table.
689  - Add TotalBytesProcessedAccuracy to QueryStatistics.
690- irm:
691  - Add new v1alpha2 client.
692- talent:
693  - Add new v4beta1 client.
694- rpcreplay:
695  - Fix connection to work with grpc >= 1.17.
696  - It is now required for an actual gRPC server to be running for Dial to
697    succeed.
698
699## 0.35.1
700
701- spanner:
702  - Adds OpenCensus views back to public API.
703
704## v0.35.0
705
706- all:
707  - Add go.mod and go.sum.
708  - Switch usage of gax-go to gax-go/v2.
709- bigquery:
710  - Fix bug where time partitioning could not be removed from a table.
711  - Fix panic that occurred with empty query parameters.
712- bttest:
713  - Fix bug where deleted rows were returned by ReadRows.
714- bigtable/emulator:
715  - Configure max message size to 256 MiB.
716- firestore:
717  - Allow non-transactional queries in transactions.
718  - Allow StartAt/EndBefore on direct children at any depth.
719  - QuerySnapshotIterator.Stop may be called in an error state.
720  - Fix bug the prevented reset of transaction write state in between retries.
721- functions/metadata:
722  - Make Metadata.Resource a pointer.
723- logging:
724  - Make SpanID available in logging.Entry.
725- metadata:
726  - Wrap !200 error code in a typed err.
727- profiler:
728  - Add function to check if function name is within a particular file in the
729    profile.
730  - Set parent field in create profile request.
731  - Return kubernetes client to start cluster, so client can be used to poll
732    cluster.
733  - Add function for checking if filename is in profile.
734- pubsub:
735  - Fix bug where messages expired without an initial modack in
736    synchronous=true mode.
737  - Receive does not retry ResourceExhausted errors.
738- spanner:
739  - client.Close now cancels existing requests and should be much faster for
740    large amounts of sessions.
741  - Correctly allow MinOpened sessions to be spun up.
742
743## v0.34.0
744
745- functions/metadata:
746  - Switch to using JSON in context.
747  - Make Resource a value.
748- vision: Fix ProductSearch return type.
749- datastore: Add an example for how to handle MultiError.
750
751## v0.33.1
752
753- compute: Removes an erroneously added go.mod.
754- logging: Populate source location in fromLogEntry.
755
756## v0.33.0
757
758- bttest:
759  - Add support for apply_label_transformer.
760- expr:
761  - Add expr library.
762- firestore:
763  - Support retrieval of missing documents.
764- kms:
765  - Add IAM methods.
766- pubsub:
767  - Clarify extension documentation.
768- scheduler:
769  - Add v1beta1 client.
770- vision:
771  - Add product search helper.
772  - Add new product search client.
773
774## v0.32.0
775
776Note: This release is the last to support Go 1.6 and 1.8.
777
778- bigquery:
779    - Add support for removing an expiration.
780    - Ignore NeverExpire in Table.Create.
781    - Validate table expiration time.
782- cbt:
783    - Add note about not supporting arbitrary bytes.
784- datastore:
785    - Align key checks.
786- firestore:
787    - Return an error when using Start/End without providing values.
788- pubsub:
789    - Add pstest Close method.
790    - Clarify MaxExtension documentation.
791- securitycenter:
792    - Add v1beta1 client.
793- spanner:
794    - Allow nil in mutations.
795    - Improve doc of SessionPoolConfig.MaxOpened.
796    - Increase session deletion timeout from 5s to 15s.
797
798## v0.31.0
799
800- bigtable:
801    - Group mutations across multiple requests.
802- bigquery:
803    - Link to bigquery troubleshooting errors page in bigquery.Error comment.
804- cbt:
805    - Fix go generate command.
806    - Document usage of both maxage + maxversions.
807- datastore:
808    - Passing nil keys results in ErrInvalidKey.
809- firestore:
810    - Clarify what Document.DataTo does with untouched struct fields.
811- profile:
812    - Validate service name in agent.
813- pubsub:
814    - Fix deadlock with pstest and ctx.Cancel.
815    - Fix a possible deadlock in pstest.
816- trace:
817    - Update doc URL with new fragment.
818
819Special thanks to @fastest963 for going above and beyond helping us to debug
820hard-to-reproduce Pub/Sub issues.
821
822## v0.30.0
823
824- spanner: DML support added. See https://godoc.org/cloud.google.com/go/spanner#hdr-DML_and_Partitioned_DML for more information.
825- bigtable: bttest supports row sample filter.
826- functions: metadata package added for accessing Cloud Functions resource metadata.
827
828## v0.29.0
829
830- bigtable:
831  - Add retry to all idempotent RPCs.
832  - cbt supports complex GC policies.
833  - Emulator supports arbitrary bytes in regex filters.
834- firestore: Add ArrayUnion and ArrayRemove.
835- logging: Add the ContextFunc option to supply the context used for
836  asynchronous RPCs.
837- profiler: Ignore NotDefinedError when fetching the instance name
838- pubsub:
839  - BEHAVIOR CHANGE: Receive doesn't retry if an RPC returns codes.Cancelled.
840  - BEHAVIOR CHANGE: Receive retries on Unavailable intead of returning.
841  - Fix deadlock.
842  - Restore Ack/Nack/Modacks metrics.
843  - Improve context handling in iterator.
844  - Implement synchronous mode for Receive.
845  - pstest: add Pull.
846- spanner: Add a metric for the number of sessions currently opened.
847- storage:
848  - Canceling the context releases all resources.
849  - Add additional RetentionPolicy attributes.
850- vision/apiv1: Add LocalizeObjects method.
851
852## v0.28.0
853
854- bigtable:
855  - Emulator returns Unimplemented for snapshot RPCs.
856- bigquery:
857  - Support zero-length repeated, nested fields.
858- cloud assets:
859  - Add v1beta client.
860- datastore:
861  - Don't nil out transaction ID on retry.
862- firestore:
863  - BREAKING CHANGE: When watching a query with Query.Snapshots, QuerySnapshotIterator.Next
864  returns a QuerySnapshot which contains read time, result size, change list and the DocumentIterator
865  (previously, QuerySnapshotIterator.Next returned just the DocumentIterator). See: https://godoc.org/cloud.google.com/go/firestore#Query.Snapshots.
866  - Add array-contains operator.
867- IAM:
868  - Add iam/credentials/apiv1 client.
869- pubsub:
870  - Canceling the context passed to Subscription.Receive causes Receive to return when
871  processing finishes on all messages currently in progress, even if new messages are arriving.
872- redis:
873  - Add redis/apiv1 client.
874- storage:
875  - Add Reader.Attrs.
876  - Deprecate several Reader getter methods: please use Reader.Attrs for these instead.
877  - Add ObjectHandle.Bucket and ObjectHandle.Object methods.
878
879## v0.27.0
880
881- bigquery:
882  - Allow modification of encryption configuration and partitioning options to a table via the Update call.
883  - Add a SchemaFromJSON function that converts a JSON table schema.
884- bigtable:
885  - Restore cbt count functionality.
886- containeranalysis:
887  - Add v1beta client.
888- spanner:
889  - Fix a case where an iterator might not be closed correctly.
890- storage:
891  - Add ServiceAccount method https://godoc.org/cloud.google.com/go/storage#Client.ServiceAccount.
892  - Add a method to Reader that returns the parsed value of the Last-Modified header.
893
894## v0.26.0
895
896- bigquery:
897  - Support filtering listed jobs  by min/max creation time.
898  - Support data clustering (https://godoc.org/cloud.google.com/go/bigquery#Clustering).
899  - Include job creator email in Job struct.
900- bigtable:
901  - Add `RowSampleFilter`.
902  - emulator: BREAKING BEHAVIOR CHANGE: Regexps in row, family, column and value filters
903    must match the entire target string to succeed. Previously, the emulator was
904    succeeding on  partial matches.
905    NOTE: As of this release, this change only affects the emulator when run
906    from this repo (bigtable/cmd/emulator/cbtemulator.go). The version launched
907    from `gcloud` will be updated in a subsequent `gcloud` release.
908- dataproc: Add apiv1beta2 client.
909- datastore: Save non-nil pointer fields on omitempty.
910- logging: populate Entry.Trace from the HTTP X-Cloud-Trace-Context header.
911- logging/logadmin:  Support writer_identity and include_children.
912- pubsub:
913  - Support labels on topics and subscriptions.
914  - Support message storage policy for topics.
915  - Use the distribution of ack times to determine when to extend ack deadlines.
916    The only user-visible effect of this change should be that programs that
917    call only `Subscription.Receive` need no IAM permissions other than `Pub/Sub
918    Subscriber`.
919- storage:
920  - Support predefined ACLs.
921  - Support additional ACL fields other than Entity and Role.
922  - Support bucket websites.
923  - Support bucket logging.
924
925
926## v0.25.0
927
928- Added [Code of Conduct](https://github.com/googleapis/google-cloud-go/blob/master/CODE_OF_CONDUCT.md)
929- bigtable:
930  - cbt: Support a GC policy of "never".
931- errorreporting:
932  - Support User.
933  - Close now calls Flush.
934  - Use OnError (previously ignored).
935  - Pass through the RPC error as-is to OnError.
936- httpreplay: A tool for recording and replaying HTTP requests
937  (for the bigquery and storage clients in this repo).
938- kms: v1 client added
939- logging: add SourceLocation to Entry.
940- storage: improve CRC checking on read.
941
942## v0.24.0
943
944- bigquery: Support for the NUMERIC type.
945- bigtable:
946  - cbt: Optionally specify columns for read/lookup
947  - Support instance-level administration.
948- oslogin: New client for the OS Login API.
949- pubsub:
950  - The package is now stable. There will be no further breaking changes.
951  - Internal changes to improve Subscription.Receive behavior.
952- storage: Support updating bucket lifecycle config.
953- spanner: Support struct-typed parameter bindings.
954- texttospeech: New client for the Text-to-Speech API.
955
956## v0.23.0
957
958- bigquery: Add DDL stats to query statistics.
959- bigtable:
960  - cbt: Add cells-per-column limit for row lookup.
961  - cbt: Make it possible to combine read filters.
962- dlp: v2beta2 client removed. Use the v2 client instead.
963- firestore, spanner: Fix compilation errors due to protobuf changes.
964
965## v0.22.0
966
967- bigtable:
968  - cbt: Support cells per column limit for row read.
969  - bttest: Correctly handle empty RowSet.
970  - Fix ReadModifyWrite operation in emulator.
971  - Fix API path in GetCluster.
972
973- bigquery:
974  - BEHAVIOR CHANGE: Retry on 503 status code.
975  - Add dataset.DeleteWithContents.
976  - Add SchemaUpdateOptions for query jobs.
977  - Add Timeline to QueryStatistics.
978  - Add more stats to ExplainQueryStage.
979  - Support Parquet data format.
980
981- datastore:
982  - Support omitempty for times.
983
984- dlp:
985  - **BREAKING CHANGE:** Remove v1beta1 client. Please migrate to the v2 client,
986  which is now out of beta.
987  - Add v2 client.
988
989- firestore:
990  - BEHAVIOR CHANGE: Treat set({}, MergeAll) as valid.
991
992- iam:
993  - Support JWT signing via SignJwt callopt.
994
995- profiler:
996  - BEHAVIOR CHANGE: PollForSerialOutput returns an error when context.Done.
997  - BEHAVIOR CHANGE: Increase the initial backoff to 1 minute.
998  - Avoid returning empty serial port output.
999
1000- pubsub:
1001  - BEHAVIOR CHANGE: Don't backoff during next retryable error once stream is healthy.
1002  - BEHAVIOR CHANGE: Don't backoff on EOF.
1003  - pstest: Support Acknowledge and ModifyAckDeadline RPCs.
1004
1005- redis:
1006  - Add v1 beta Redis client.
1007
1008- spanner:
1009  - Support SessionLabels.
1010
1011- speech:
1012  - Add api v1 beta1 client.
1013
1014- storage:
1015  - BEHAVIOR CHANGE: Retry reads when retryable error occurs.
1016  - Fix delete of object in requester-pays bucket.
1017  - Support KMS integration.
1018
1019## v0.21.0
1020
1021- bigquery:
1022  - Add OpenCensus tracing.
1023
1024- firestore:
1025  - **BREAKING CHANGE:** If a document does not exist, return a DocumentSnapshot
1026    whose Exists method returns false. DocumentRef.Get and Transaction.Get
1027    return the non-nil DocumentSnapshot in addition to a NotFound error.
1028    **DocumentRef.GetAll and Transaction.GetAll return a non-nil
1029    DocumentSnapshot instead of nil.**
1030  - Add DocumentIterator.Stop. **Call Stop whenever you are done with a
1031    DocumentIterator.**
1032  - Added Query.Snapshots and DocumentRef.Snapshots, which provide realtime
1033    notification of updates. See https://cloud.google.com/firestore/docs/query-data/listen.
1034  - Canceling an RPC now always returns a grpc.Status with codes.Canceled.
1035
1036- spanner:
1037  - Add `CommitTimestamp`, which supports inserting the commit timestamp of a
1038    transaction into a column.
1039
1040## v0.20.0
1041
1042- bigquery: Support SchemaUpdateOptions for load jobs.
1043
1044- bigtable:
1045  - Add SampleRowKeys.
1046  - cbt: Support union, intersection GCPolicy.
1047  - Retry admin RPCS.
1048  - Add trace spans to retries.
1049
1050- datastore: Add OpenCensus tracing.
1051
1052- firestore:
1053  - Fix queries involving Null and NaN.
1054  - Allow Timestamp protobuffers for time values.
1055
1056- logging: Add a WriteTimeout option.
1057
1058- spanner: Support Batch API.
1059
1060- storage: Add OpenCensus tracing.
1061
1062## v0.19.0
1063
1064- bigquery:
1065  - Support customer-managed encryption keys.
1066
1067- bigtable:
1068  - Improved emulator support.
1069  - Support GetCluster.
1070
1071- datastore:
1072  - Add general mutations.
1073  - Support pointer struct fields.
1074  - Support transaction options.
1075
1076- firestore:
1077  - Add Transaction.GetAll.
1078  - Support document cursors.
1079
1080- logging:
1081  - Support concurrent RPCs to the service.
1082  - Support per-entry resources.
1083
1084- profiler:
1085  - Add config options to disable heap and thread profiling.
1086  - Read the project ID from $GOOGLE_CLOUD_PROJECT when it's set.
1087
1088- pubsub:
1089  - BEHAVIOR CHANGE: Release flow control after ack/nack (instead of after the
1090    callback returns).
1091  - Add SubscriptionInProject.
1092  - Add OpenCensus instrumentation for streaming pull.
1093
1094- storage:
1095  - Support CORS.
1096
1097## v0.18.0
1098
1099- bigquery:
1100  - Marked stable.
1101  - Schema inference of nullable fields supported.
1102  - Added TimePartitioning to QueryConfig.
1103
1104- firestore: Data provided to DocumentRef.Set with a Merge option can contain
1105  Delete sentinels.
1106
1107- logging: Clients can accept parent resources other than projects.
1108
1109- pubsub:
1110  - pubsub/pstest: A lighweight fake for pubsub. Experimental; feedback welcome.
1111  - Support updating more subscription metadata: AckDeadline,
1112    RetainAckedMessages and RetentionDuration.
1113
1114- oslogin/apiv1beta: New client for the Cloud OS Login API.
1115
1116- rpcreplay: A package for recording and replaying gRPC traffic.
1117
1118- spanner:
1119  - Add a ReadWithOptions that supports a row limit, as well as an index.
1120  - Support query plan and execution statistics.
1121  - Added [OpenCensus](http://opencensus.io) support.
1122
1123- storage: Clarify checksum validation for gzipped files (it is not validated
1124  when the file is served uncompressed).
1125
1126
1127## v0.17.0
1128
1129- firestore BREAKING CHANGES:
1130  - Remove UpdateMap and UpdateStruct; rename UpdatePaths to Update.
1131    Change
1132        `docref.UpdateMap(ctx, map[string]interface{}{"a.b", 1})`
1133    to
1134        `docref.Update(ctx, []firestore.Update{{Path: "a.b", Value: 1}})`
1135
1136    Change
1137        `docref.UpdateStruct(ctx, []string{"Field"}, aStruct)`
1138    to
1139        `docref.Update(ctx, []firestore.Update{{Path: "Field", Value: aStruct.Field}})`
1140  - Rename MergePaths to Merge; require args to be FieldPaths
1141  - A value stored as an integer can be read into a floating-point field, and vice versa.
1142- bigtable/cmd/cbt:
1143  - Support deleting a column.
1144  - Add regex option for row read.
1145- spanner: Mark stable.
1146- storage:
1147  - Add Reader.ContentEncoding method.
1148  - Fix handling of SignedURL headers.
1149- bigquery:
1150  - If Uploader.Put is called with no rows, it returns nil without making a
1151    call.
1152  - Schema inference supports the "nullable" option in struct tags for
1153    non-required fields.
1154  - TimePartitioning supports "Field".
1155
1156
1157## v0.16.0
1158
1159- Other bigquery changes:
1160  - `JobIterator.Next` returns `*Job`; removed `JobInfo` (BREAKING CHANGE).
1161  - UseStandardSQL is deprecated; set UseLegacySQL to true if you need
1162    Legacy SQL.
1163  - Uploader.Put will generate a random insert ID if you do not provide one.
1164  - Support time partitioning for load jobs.
1165  - Support dry-run queries.
1166  - A `Job` remembers its last retrieved status.
1167  - Support retrieving job configuration.
1168  - Support labels for jobs and tables.
1169  - Support dataset access lists.
1170  - Improve support for external data sources, including data from Bigtable and
1171    Google Sheets, and tables with external data.
1172  - Support updating a table's view configuration.
1173  - Fix uploading civil times with nanoseconds.
1174
1175- storage:
1176  - Support PubSub notifications.
1177  - Support Requester Pays buckets.
1178
1179- profiler: Support goroutine and mutex profile types.
1180
1181## v0.15.0
1182
1183- firestore: beta release. See the
1184  [announcement](https://firebase.googleblog.com/2017/10/introducing-cloud-firestore.html).
1185
1186- errorreporting: The existing package has been redesigned.
1187
1188- errors: This package has been removed. Use errorreporting.
1189
1190
1191## v0.14.0
1192
1193- bigquery BREAKING CHANGES:
1194  - Standard SQL is the default for queries and views.
1195  - `Table.Create` takes `TableMetadata` as a second argument, instead of
1196    options.
1197  - `Dataset.Create` takes `DatasetMetadata` as a second argument.
1198  - `DatasetMetadata` field `ID` renamed to `FullID`
1199  - `TableMetadata` field `ID` renamed to `FullID`
1200
1201- Other bigquery changes:
1202  - The client will append a random suffix to a provided job ID if you set
1203    `AddJobIDSuffix` to true in a job config.
1204  - Listing jobs is supported.
1205  - Better retry logic.
1206
1207- vision, language, speech: clients are now stable
1208
1209- monitoring: client is now beta
1210
1211- profiler:
1212  - Rename InstanceName to Instance, ZoneName to Zone
1213  - Auto-detect service name and version on AppEngine.
1214
1215## v0.13.0
1216
1217- bigquery: UseLegacySQL options for CreateTable and QueryConfig. Use these
1218  options to continue using Legacy SQL after the client switches its default
1219  to Standard SQL.
1220
1221- bigquery: Support for updating dataset labels.
1222
1223- bigquery: Set DatasetIterator.ProjectID to list datasets in a project other
1224  than the client's. DatasetsInProject is no longer needed and is deprecated.
1225
1226- bigtable: Fail ListInstances when any zones fail.
1227
1228- spanner: support decoding of slices of basic types (e.g. []string, []int64,
1229  etc.)
1230
1231- logging/logadmin: UpdateSink no longer creates a sink if it is missing
1232  (actually a change to the underlying service, not the client)
1233
1234- profiler: Service and ServiceVersion replace Target in Config.
1235
1236## v0.12.0
1237
1238- pubsub: Subscription.Receive now uses streaming pull.
1239
1240- pubsub: add Client.TopicInProject to access topics in a different project
1241  than the client.
1242
1243- errors: renamed errorreporting. The errors package will be removed shortly.
1244
1245- datastore: improved retry behavior.
1246
1247- bigquery: support updates to dataset metadata, with etags.
1248
1249- bigquery: add etag support to Table.Update (BREAKING: etag argument added).
1250
1251- bigquery: generate all job IDs on the client.
1252
1253- storage: support bucket lifecycle configurations.
1254
1255
1256## v0.11.0
1257
1258- Clients for spanner, pubsub and video are now in beta.
1259
1260- New client for DLP.
1261
1262- spanner: performance and testing improvements.
1263
1264- storage: requester-pays buckets are supported.
1265
1266- storage, profiler, bigtable, bigquery: bug fixes and other minor improvements.
1267
1268- pubsub: bug fixes and other minor improvements
1269
1270## v0.10.0
1271
1272- pubsub: Subscription.ModifyPushConfig replaced with Subscription.Update.
1273
1274- pubsub: Subscription.Receive now runs concurrently for higher throughput.
1275
1276- vision: cloud.google.com/go/vision is deprecated. Use
1277cloud.google.com/go/vision/apiv1 instead.
1278
1279- translation: now stable.
1280
1281- trace: several changes to the surface. See the link below.
1282
1283### Code changes required from v0.9.0
1284
1285- pubsub: Replace
1286
1287    ```
1288    sub.ModifyPushConfig(ctx, pubsub.PushConfig{Endpoint: "https://example.com/push"})
1289    ```
1290
1291  with
1292
1293    ```
1294    sub.Update(ctx, pubsub.SubscriptionConfigToUpdate{
1295        PushConfig: &pubsub.PushConfig{Endpoint: "https://example.com/push"},
1296    })
1297    ```
1298
1299- trace: traceGRPCServerInterceptor will be provided from *trace.Client.
1300Given an initialized `*trace.Client` named `tc`, instead of
1301
1302    ```
1303    s := grpc.NewServer(grpc.UnaryInterceptor(trace.GRPCServerInterceptor(tc)))
1304    ```
1305
1306  write
1307
1308    ```
1309    s := grpc.NewServer(grpc.UnaryInterceptor(tc.GRPCServerInterceptor()))
1310    ```
1311
1312- trace trace.GRPCClientInterceptor will also provided from *trace.Client.
1313Instead of
1314
1315    ```
1316    conn, err := grpc.Dial(srv.Addr, grpc.WithUnaryInterceptor(trace.GRPCClientInterceptor()))
1317    ```
1318
1319  write
1320
1321    ```
1322    conn, err := grpc.Dial(srv.Addr, grpc.WithUnaryInterceptor(tc.GRPCClientInterceptor()))
1323    ```
1324
1325- trace: We removed the deprecated `trace.EnableGRPCTracing`. Use the gRPC
1326interceptor as a dial option as shown below when initializing Cloud package
1327clients:
1328
1329    ```
1330    c, err := pubsub.NewClient(ctx, "project-id", option.WithGRPCDialOption(grpc.WithUnaryInterceptor(tc.GRPCClientInterceptor())))
1331    if err != nil {
1332        ...
1333    }
1334    ```
1335
1336
1337## v0.9.0
1338
1339- Breaking changes to some autogenerated clients.
1340- rpcreplay package added.
1341
1342## v0.8.0
1343
1344- profiler package added.
1345- storage:
1346  - Retry Objects.Insert call.
1347  - Add ProgressFunc to WRiter.
1348- pubsub: breaking changes:
1349  - Publish is now asynchronous ([announcement](https://groups.google.com/d/topic/google-api-go-announce/aaqRDIQ3rvU/discussion)).
1350  - Subscription.Pull replaced by Subscription.Receive, which takes a callback ([announcement](https://groups.google.com/d/topic/google-api-go-announce/8pt6oetAdKc/discussion)).
1351  - Message.Done replaced with Message.Ack and Message.Nack.
1352
1353## v0.7.0
1354
1355- Release of a client library for Spanner. See
1356the
1357[blog
1358post](https://cloudplatform.googleblog.com/2017/02/introducing-Cloud-Spanner-a-global-database-service-for-mission-critical-applications.html).
1359Note that although the Spanner service is beta, the Go client library is alpha.
1360
1361## v0.6.0
1362
1363- Beta release of BigQuery, DataStore, Logging and Storage. See the
1364[blog post](https://cloudplatform.googleblog.com/2016/12/announcing-new-google-cloud-client.html).
1365
1366- bigquery:
1367  - struct support. Read a row directly into a struct with
1368`RowIterator.Next`, and upload a row directly from a struct with `Uploader.Put`.
1369You can also use field tags. See the [package documentation][cloud-bigquery-ref]
1370for details.
1371
1372  - The `ValueList` type was removed. It is no longer necessary. Instead of
1373   ```go
1374   var v ValueList
1375   ... it.Next(&v) ..
1376   ```
1377   use
1378
1379   ```go
1380   var v []Value
1381   ... it.Next(&v) ...
1382   ```
1383
1384  - Previously, repeatedly calling `RowIterator.Next` on the same `[]Value` or
1385  `ValueList` would append to the slice. Now each call resets the size to zero first.
1386
1387  - Schema inference will infer the SQL type BYTES for a struct field of
1388  type []byte. Previously it inferred STRING.
1389
1390  - The types `uint`, `uint64` and `uintptr` are no longer supported in schema
1391  inference. BigQuery's integer type is INT64, and those types may hold values
1392  that are not correctly represented in a 64-bit signed integer.
1393
1394## v0.5.0
1395
1396- bigquery:
1397  - The SQL types DATE, TIME and DATETIME are now supported. They correspond to
1398    the `Date`, `Time` and `DateTime` types in the new `cloud.google.com/go/civil`
1399    package.
1400  - Support for query parameters.
1401  - Support deleting a dataset.
1402  - Values from INTEGER columns will now be returned as int64, not int. This
1403    will avoid errors arising from large values on 32-bit systems.
1404- datastore:
1405  - Nested Go structs encoded as Entity values, instead of a
1406flattened list of the embedded struct's fields. This means that you may now have twice-nested slices, eg.
1407    ```go
1408    type State struct {
1409      Cities  []struct{
1410        Populations []int
1411      }
1412    }
1413    ```
1414    See [the announcement](https://groups.google.com/forum/#!topic/google-api-go-announce/79jtrdeuJAg) for
1415more details.
1416  - Contexts no longer hold namespaces; instead you must set a key's namespace
1417    explicitly. Also, key functions have been changed and renamed.
1418  - The WithNamespace function has been removed. To specify a namespace in a Query, use the Query.Namespace method:
1419     ```go
1420     q := datastore.NewQuery("Kind").Namespace("ns")
1421     ```
1422  - All the fields of Key are exported. That means you can construct any Key with a struct literal:
1423     ```go
1424     k := &Key{Kind: "Kind",  ID: 37, Namespace: "ns"}
1425     ```
1426  - As a result of the above, the Key methods Kind, ID, d.Name, Parent, SetParent and Namespace have been removed.
1427  - `NewIncompleteKey` has been removed, replaced by `IncompleteKey`. Replace
1428      ```go
1429      NewIncompleteKey(ctx, kind, parent)
1430      ```
1431      with
1432      ```go
1433      IncompleteKey(kind, parent)
1434      ```
1435      and if you do use namespaces, make sure you set the namespace on the returned key.
1436  - `NewKey` has been removed, replaced by `NameKey` and `IDKey`. Replace
1437      ```go
1438      NewKey(ctx, kind, name, 0, parent)
1439      NewKey(ctx, kind, "", id, parent)
1440      ```
1441      with
1442      ```go
1443      NameKey(kind, name, parent)
1444      IDKey(kind, id, parent)
1445      ```
1446      and if you do use namespaces, make sure you set the namespace on the returned key.
1447  - The `Done` variable has been removed. Replace `datastore.Done` with `iterator.Done`, from the package `google.golang.org/api/iterator`.
1448  - The `Client.Close` method will have a return type of error. It will return the result of closing the underlying gRPC connection.
1449  - See [the announcement](https://groups.google.com/forum/#!topic/google-api-go-announce/hqXtM_4Ix-0) for
1450more details.
1451
1452## v0.4.0
1453
1454- bigquery:
1455  -`NewGCSReference` is now a function, not a method on `Client`.
1456  - `Table.LoaderFrom` now accepts a `ReaderSource`, enabling
1457     loading data into a table from a file or any `io.Reader`.
1458  * Client.Table and Client.OpenTable have been removed.
1459      Replace
1460      ```go
1461      client.OpenTable("project", "dataset", "table")
1462      ```
1463      with
1464      ```go
1465      client.DatasetInProject("project", "dataset").Table("table")
1466      ```
1467
1468  * Client.CreateTable has been removed.
1469      Replace
1470      ```go
1471      client.CreateTable(ctx, "project", "dataset", "table")
1472      ```
1473      with
1474      ```go
1475      client.DatasetInProject("project", "dataset").Table("table").Create(ctx)
1476      ```
1477
1478  * Dataset.ListTables have been replaced with Dataset.Tables.
1479      Replace
1480      ```go
1481      tables, err := ds.ListTables(ctx)
1482      ```
1483      with
1484      ```go
1485      it := ds.Tables(ctx)
1486      for {
1487          table, err := it.Next()
1488          if err == iterator.Done {
1489              break
1490          }
1491          if err != nil {
1492              // TODO: Handle error.
1493          }
1494          // TODO: use table.
1495      }
1496      ```
1497
1498  * Client.Read has been replaced with Job.Read, Table.Read and Query.Read.
1499      Replace
1500      ```go
1501      it, err := client.Read(ctx, job)
1502      ```
1503      with
1504      ```go
1505      it, err := job.Read(ctx)
1506      ```
1507    and similarly for reading from tables or queries.
1508
1509  * The iterator returned from the Read methods is now named RowIterator. Its
1510    behavior is closer to the other iterators in these libraries. It no longer
1511    supports the Schema method; see the next item.
1512      Replace
1513      ```go
1514      for it.Next(ctx) {
1515          var vals ValueList
1516          if err := it.Get(&vals); err != nil {
1517              // TODO: Handle error.
1518          }
1519          // TODO: use vals.
1520      }
1521      if err := it.Err(); err != nil {
1522          // TODO: Handle error.
1523      }
1524      ```
1525      with
1526      ```
1527      for {
1528          var vals ValueList
1529          err := it.Next(&vals)
1530          if err == iterator.Done {
1531              break
1532          }
1533          if err != nil {
1534              // TODO: Handle error.
1535          }
1536          // TODO: use vals.
1537      }
1538      ```
1539      Instead of the `RecordsPerRequest(n)` option, write
1540      ```go
1541      it.PageInfo().MaxSize = n
1542      ```
1543      Instead of the `StartIndex(i)` option, write
1544      ```go
1545      it.StartIndex = i
1546      ```
1547
1548  * ValueLoader.Load now takes a Schema in addition to a slice of Values.
1549      Replace
1550      ```go
1551      func (vl *myValueLoader) Load(v []bigquery.Value)
1552      ```
1553      with
1554      ```go
1555      func (vl *myValueLoader) Load(v []bigquery.Value, s bigquery.Schema)
1556      ```
1557
1558
1559  * Table.Patch is replace by Table.Update.
1560      Replace
1561      ```go
1562      p := table.Patch()
1563      p.Description("new description")
1564      metadata, err := p.Apply(ctx)
1565      ```
1566      with
1567      ```go
1568      metadata, err := table.Update(ctx, bigquery.TableMetadataToUpdate{
1569          Description: "new description",
1570      })
1571      ```
1572
1573  * Client.Copy is replaced by separate methods for each of its four functions.
1574    All options have been replaced by struct fields.
1575
1576    * To load data from Google Cloud Storage into a table, use Table.LoaderFrom.
1577
1578      Replace
1579      ```go
1580      client.Copy(ctx, table, gcsRef)
1581      ```
1582      with
1583      ```go
1584      table.LoaderFrom(gcsRef).Run(ctx)
1585      ```
1586      Instead of passing options to Copy, set fields on the Loader:
1587      ```go
1588      loader := table.LoaderFrom(gcsRef)
1589      loader.WriteDisposition = bigquery.WriteTruncate
1590      ```
1591
1592    * To extract data from a table into Google Cloud Storage, use
1593      Table.ExtractorTo. Set fields on the returned Extractor instead of
1594      passing options.
1595
1596      Replace
1597      ```go
1598      client.Copy(ctx, gcsRef, table)
1599      ```
1600      with
1601      ```go
1602      table.ExtractorTo(gcsRef).Run(ctx)
1603      ```
1604
1605    * To copy data into a table from one or more other tables, use
1606      Table.CopierFrom. Set fields on the returned Copier instead of passing options.
1607
1608      Replace
1609      ```go
1610      client.Copy(ctx, dstTable, srcTable)
1611      ```
1612      with
1613      ```go
1614      dst.Table.CopierFrom(srcTable).Run(ctx)
1615      ```
1616
1617    * To start a query job, create a Query and call its Run method. Set fields
1618    on the query instead of passing options.
1619
1620      Replace
1621      ```go
1622      client.Copy(ctx, table, query)
1623      ```
1624      with
1625      ```go
1626      query.Run(ctx)
1627      ```
1628
1629  * Table.NewUploader has been renamed to Table.Uploader. Instead of options,
1630    configure an Uploader by setting its fields.
1631      Replace
1632      ```go
1633      u := table.NewUploader(bigquery.UploadIgnoreUnknownValues())
1634      ```
1635      with
1636      ```go
1637      u := table.NewUploader(bigquery.UploadIgnoreUnknownValues())
1638      u.IgnoreUnknownValues = true
1639      ```
1640
1641- pubsub: remove `pubsub.Done`. Use `iterator.Done` instead, where `iterator` is the package
1642`google.golang.org/api/iterator`.
1643
1644## v0.3.0
1645
1646- storage:
1647  * AdminClient replaced by methods on Client.
1648      Replace
1649      ```go
1650      adminClient.CreateBucket(ctx, bucketName, attrs)
1651      ```
1652      with
1653      ```go
1654      client.Bucket(bucketName).Create(ctx, projectID, attrs)
1655      ```
1656
1657  * BucketHandle.List replaced by BucketHandle.Objects.
1658      Replace
1659      ```go
1660      for query != nil {
1661          objs, err := bucket.List(d.ctx, query)
1662          if err != nil { ... }
1663          query = objs.Next
1664          for _, obj := range objs.Results {
1665              fmt.Println(obj)
1666          }
1667      }
1668      ```
1669      with
1670      ```go
1671      iter := bucket.Objects(d.ctx, query)
1672      for {
1673          obj, err := iter.Next()
1674          if err == iterator.Done {
1675              break
1676          }
1677          if err != nil { ... }
1678          fmt.Println(obj)
1679      }
1680      ```
1681      (The `iterator` package is at `google.golang.org/api/iterator`.)
1682
1683      Replace `Query.Cursor` with `ObjectIterator.PageInfo().Token`.
1684
1685      Replace `Query.MaxResults` with `ObjectIterator.PageInfo().MaxSize`.
1686
1687
1688  * ObjectHandle.CopyTo replaced by ObjectHandle.CopierFrom.
1689      Replace
1690      ```go
1691      attrs, err := src.CopyTo(ctx, dst, nil)
1692      ```
1693      with
1694      ```go
1695      attrs, err := dst.CopierFrom(src).Run(ctx)
1696      ```
1697
1698      Replace
1699      ```go
1700      attrs, err := src.CopyTo(ctx, dst, &storage.ObjectAttrs{ContextType: "text/html"})
1701      ```
1702      with
1703      ```go
1704      c := dst.CopierFrom(src)
1705      c.ContextType = "text/html"
1706      attrs, err := c.Run(ctx)
1707      ```
1708
1709  * ObjectHandle.ComposeFrom replaced by ObjectHandle.ComposerFrom.
1710      Replace
1711      ```go
1712      attrs, err := dst.ComposeFrom(ctx, []*storage.ObjectHandle{src1, src2}, nil)
1713      ```
1714      with
1715      ```go
1716      attrs, err := dst.ComposerFrom(src1, src2).Run(ctx)
1717      ```
1718
1719  * ObjectHandle.Update's ObjectAttrs argument replaced by ObjectAttrsToUpdate.
1720      Replace
1721      ```go
1722      attrs, err := obj.Update(ctx, &storage.ObjectAttrs{ContextType: "text/html"})
1723      ```
1724      with
1725      ```go
1726      attrs, err := obj.Update(ctx, storage.ObjectAttrsToUpdate{ContextType: "text/html"})
1727      ```
1728
1729  * ObjectHandle.WithConditions replaced by ObjectHandle.If.
1730      Replace
1731      ```go
1732      obj.WithConditions(storage.Generation(gen), storage.IfMetaGenerationMatch(mgen))
1733      ```
1734      with
1735      ```go
1736      obj.Generation(gen).If(storage.Conditions{MetagenerationMatch: mgen})
1737      ```
1738
1739      Replace
1740      ```go
1741      obj.WithConditions(storage.IfGenerationMatch(0))
1742      ```
1743      with
1744      ```go
1745      obj.If(storage.Conditions{DoesNotExist: true})
1746      ```
1747
1748  * `storage.Done` replaced by `iterator.Done` (from package `google.golang.org/api/iterator`).
1749
1750- Package preview/logging deleted. Use logging instead.
1751
1752## v0.2.0
1753
1754- Logging client replaced with preview version (see below).
1755
1756- New clients for some of Google's Machine Learning APIs: Vision, Speech, and
1757Natural Language.
1758
1759- Preview version of a new [Stackdriver Logging][cloud-logging] client in
1760[`cloud.google.com/go/preview/logging`](https://godoc.org/cloud.google.com/go/preview/logging).
1761This client uses gRPC as its transport layer, and supports log reading, sinks
1762and metrics. It will replace the current client at `cloud.google.com/go/logging` shortly.
1763