Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Slow Storage uploads and high CPU usage #397

Closed
cbraynor opened this issue Feb 17, 2015 · 22 comments
Closed

Slow Storage uploads and high CPU usage #397

cbraynor opened this issue Feb 17, 2015 · 22 comments
Assignees
Labels
api: storage Issues related to the Cloud Storage API. 🚨 This issue needs some love. triage me I really want to be triaged.

Comments

@cbraynor
Copy link

I'm seeing very slow uploads when sending large numbers of medium-sized files to storage - in the order of it taking 10x the time compared to uploading to S3. I also see excessive CPU usage during this time.

This Gist is a repro in the form of a side-by-side comparison uploading the same set of 750 medium-sized random text files to S3 using knox and to GCS using gcloud-node

gsutil can upload the same number of files just as quickly as anything to S3, so I'm pretty sure it's not the service itself.

I've tried limiting the request module's default maxSockets to 5 or 10 for the request pool but that didn't seem to help. I have a hunch it's the sheer number of outstanding requests or streams that's causing node to spin its wheels and that maybe some form of global queue could fix it, but I haven't been able to validate that yet.

Any help getting this into a usable state would be much appreciated

@jgeewax jgeewax added api: storage Issues related to the Cloud Storage API. perf labels Feb 17, 2015
@jgeewax jgeewax added this to the Storage Stable milestone Feb 17, 2015
@stephenplusplus
Copy link
Contributor

Thanks for the detailed breakdown. For me, the gcloud uploads have completed between 88-90 seconds consistently. However, there are two things that are on by default with every write stream which could be contributing towards higher memory usage and slower speeds overall:

  1. Data integrity - a hash is progressively built during an upload that is compared against the hash returned from the API when the upload is complete
  2. Resumable - writes to a tmp file to keep track of the state of an upload

Shutting these off improved my speeds from 88-90 to 65-67. I'm not sure if the others (knox or gsutil) use these techniques as well.

@cbraynor
Copy link
Author

Ok, so it looks like you're right and a lot of the issue is it being CPU-bound computing the hash - I'm testing on multi-core machines that don't have huge individual processors and I get a 5x improvement turning off the validate functionality. It's still not as fast as the knox implementation but it certainly is a good start for now

@ryanseys
Copy link
Contributor

Should we consider turning validation to false by default?

@jgeewax
Copy link
Contributor

jgeewax commented Feb 18, 2015

I think that's an issue for discussion.

I'd also like to get an idea of what gsutil is doing and how it compares from a performance standpoint. If the only differences are runtime and validation, then I think our work is done and we just need to make a call about whether to validate hashes by default...

@dhermes
Copy link
Contributor

dhermes commented Feb 18, 2015

@jgeewax gsutil uses the hashlib.md5 (standard library) and a third-party crcmod which uses a C extension for speedups.

Also, in terms of turning off checks, @thobrla filed googleapis/google-cloud-python#547 (via @silvolu) with us and said:

We should allow to override the configuration for the checks (e.g. use only
crc32c, do not perform checks), but it should be strongly discouraged.

@ryanseys
Copy link
Contributor

It looks to me like gsutil is hashing the entire file at the end, where as we hash it as the contents comes in. You would think that doing it at the end would have worse performance, but doing it all at the end might reduce thrashing and reduce our CPUs context switching.

@jgeewax
Copy link
Contributor

jgeewax commented Feb 18, 2015

Interesting... Might be worth a benchmark...?

@ryanseys
Copy link
Contributor

I ran on my machine and didn't see a huge spike in CPU (~20% max) but certainly was more time consuming to upload with default settings (validation and resumable is on). I'm running on S3 region us-east-1 and I'm located in Ottawa (mid-east Canada). Seems S3 is really sporadic with performance, as you can see by the fluctuation in numbers with no change in settings. GCS seems a little more stable in that regard.
Here's my numbers:

With default settings:

Run 1:

Finished uploading to s3 in 47.792 seconds
Finished uploading to GCS in 91.161 seconds

Run 2:

Finished uploading to s3 in 41.566 seconds
Finished uploading to GCS in 92.455 seconds

Run 3:

Finished uploading to s3 in 47.247 seconds
Finished uploading to GCS in 93.156 seconds

Without validation or resumable GCS:

Run 1:

Finished uploading to s3 in 39.286 seconds
Finished uploading to GCS in 54.476 seconds

Run 2:

Finished uploading to s3 in 57.732 seconds
Finished uploading to GCS in 56.977 seconds

Run 3:

Finished uploading to s3 in 42.917 seconds
Finished uploading to GCS in 52.861 seconds

I haven't tried with gsutil yet or moving hashing to run at the end.

@jgeewax
Copy link
Contributor

jgeewax commented Feb 18, 2015 via email

@ryanseys
Copy link
Contributor

I'm working on that now.

@ryanseys
Copy link
Contributor

So I used the following command to upload the directory of pre-extracted files to a bucket on GCS using gsutil. The -m option stands for multi-threading or something and allows the uploads to occur in parallel, greatly speeding up the upload time:

$ time gsutil -m cp -r tmp gs://my-test-bucket/my-test-folder

Results:
22.04s user 2.93s system 71% cpu 34.866 total
21.00s user 2.99s system 67% cpu 35.477 total
21.66s user 2.92s system 70% cpu 35.069 total

@thobrla
Copy link

thobrla commented Feb 18, 2015

When possible, gsutil hashes on the fly. I think there's only one case when using the boto library (which is not the default for interacting with GCS) where it hashes at the end.

@ryanseys
Copy link
Contributor

Okay, so I won't bother messing with that. I did try and upload up to 10 at a time in parallel and got better results. It uploaded in 46.42s with default settings. It also seems resumable: false greatly speeds things up on my machine, and frankly I don't think resumable on a createWriteStream makes any sense so let's get rid of that. If they want resumable, they will have to use upload.

@ryanseys
Copy link
Contributor

So, after looking at the different ways we can assist this use case we believe that tweaking the different settings when uploading can help with this specific use case. #400 will remain open in trying to simplify the validation logic, but overall when uploading relatively small files in bulk, it might be best to turn resumable off (which is on by default). We always recommend you keep validation on.

We have no way of specifying to the library that it should upload an arbitrarily large number of files, so it cannot make these decisions for you.

Also, if you want to try and gain more performance (albeit sacrificing a bit of customisability and idiomatic-ness) , you might consider using a leaner and more simplistic equivalent library like knox but for Google Cloud Storage. I would suggest taking a look at googleapis, Google's official Node.JS client library.

Please feel free to re-open if you know of some way that performance could be greatly improved without sacrificing the defaults we have set in place for resumable and validation. Or just send a PR with the fix, that'd be even better and we'd be happy to merge! 😄

@cbraynor
Copy link
Author

I may not have a fix or a way to drastically improve performance, but that doesn't mean I think this is fixed. Turning off validation may have gotten some significant performance gains; it was 5x faster on my setup without it, however, that's still half the speed of the S3 uploads. Whatever we did (and it wasn't just me, or my setup) we couldn't match how fast knox worked (turning resumable on/off didn't seem to make much difference to me, if any) even though the underlying GCS infrastructure could easily match S3 from the locations we tested using gsutil.

Given all this, and how knox managed to keep the 'customisability and idiomatic-ness' without sacrificing any speed, to me that seems a pretty big indicator there're some significant inefficiencies in this client.

Turning off validation is a very temporary solution to fit the timescale I have to work with for my project, but I really think this should be fixed before any 'Storage Stable' milestone - there's no way that a 10x performance hit is acceptable to anyone switching from S3 in my eyes.

@ryanseys
Copy link
Contributor

If we're comparing apples to apples, then validation and resumable will need to be set off because knox is fast and great when everything works, but if something goes wrong, you're out of luck. There is no validation or resumable. That being said, not a lot can go wrong when you're uploading tiny 50kb files. You're right, the performance is terrible for this case. Unsure how to proceed. As a Firebase guy, you deal with the tiny tiny micro-transactions a lot, so I understand your pain, but I'm unsure how relevant that will be to the average GCS user. In any case, I'll re-open to acknowledge the issue, I hope in due time we can come up with a compromise (but hopefully a solution).

@ryanseys ryanseys reopened this Feb 25, 2015
@stephenplusplus
Copy link
Contributor

I spent more time running the tests, including setting up an AWS account, unlike last time.

I remodeled the script a bit to remove duplication. In the process, I used knox.put instead of .putStream. putStream uses put internally.

Here's the new gist, and here are the results:

# 1
Finished uploading to s3 in 84.883  seconds
Finished uploading to google in 65.481  seconds

# 2
Finished uploading to s3 in 87.172  seconds
Finished uploading to google in 74.828  seconds

# 3
Finished uploading to s3 in 94.344  seconds
Finished uploading to google in 64.73  seconds

# 4
Finished uploading to s3 in 102.506  seconds
Finished uploading to google in 69.615  seconds

# 5
Finished uploading to s3 in 87.63  seconds
Finished uploading to google in 66.908  seconds

I can't make s3 work as fast as you reported or gcs as fast as Ryan reported.

@ryanseys
Copy link
Contributor

I'm getting consistent 60 seconds for uploads when using googleapis library (10 uploads max parallel). I'm seeing slightly better performance (between 55 and 60s uploads) from the gcloud-node library surprisingly but only when resumable is false. If resumable is true, it's super super slow and actually is making my fan start on my computer which never happens. CPU is at 99%. The entire upload took a whopping 487 seconds... :( Knox ran in 42-46 seconds.

@stephenplusplus
Copy link
Contributor

Resumable has to do a sync read and a sync write per file passed through. Usually isn't expensive when it's one file, but becomes noticeable (and noisy apparently) with 750, understandably.

@jgeewax
Copy link
Contributor

jgeewax commented Feb 25, 2015

Hi all,

The biggest thing I am interested in here is GCS via gsutil, gcloud-node, and [insert another fast library here]. If we are on par with those libraries, I think we have to consider this bug closed.

Comparisons to S3 are great, but they say more about the GCS service speed than the client library, so I would prefer to leave them out of this discussion.

Do we have a snippet showing a performance comparison between gsutil and gcloud-node (and anything else in Node that talks to GCS) ? Did I miss it somewhere?

@cbraynor
Copy link
Author

Just as a follow-up on this - a lot has changed for the better since we filed this. A combination of the following factors lead me to consider this issue able to be close:

I think we're now seeing speeds in excess of our old system when everything works, and we're tracking individual issues elsewhere. Thank you all for your time

@jgeewax
Copy link
Contributor

jgeewax commented May 14, 2015

Awesome -- thanks for all the help on this!

sofisl pushed a commit that referenced this issue Oct 13, 2022
…397)

This PR was generated using Autosynth. 🌈

Synth log will be available here:
https://source.cloud.google.com/results/invocations/a8ab5675-1982-4cf5-b9b7-36794038b975/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: googleapis/synthtool@8cf6d28
sofisl pushed a commit that referenced this issue Nov 10, 2022
Update npm scripts: add clean, prelint, prefix; make sure that lint and fix are set properly. Use post-process feature of synthtool.
sofisl pushed a commit that referenced this issue Nov 11, 2022
sofisl pushed a commit that referenced this issue Nov 11, 2022
sofisl pushed a commit that referenced this issue Nov 11, 2022
* chore(main): release 4.1.1

* 🦉 Updates from OwlBot post-processor

See https://github.com/googleapis/repo-automation-bots/blob/main/packages/owl-bot/README.md

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
sofisl pushed a commit that referenced this issue Nov 11, 2022
…ncy versions (#397)

Source-Author: Megan Potter <[email protected]>
Source-Date: Fri Sep 11 18:47:00 2020 -0700
Source-Repo: googleapis/synthtool
Source-Sha: fdd03c161003ab97657cc0218f25c82c89ddf4b6
Source-Link: googleapis/synthtool@fdd03c1
sofisl pushed a commit that referenced this issue Nov 11, 2022
- [ ] Regenerate this pull request now.

Committer: @summer-ji-eng
PiperOrigin-RevId: 424244721

Source-Link: googleapis/googleapis@4b6b01f

Source-Link: googleapis/googleapis-gen@8ac83fb
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiOGFjODNmYmE2MDZkMDA4YzdlOGE0MmU3ZDU1YjY1OTZlYzRiZTM1ZiJ9
sofisl pushed a commit that referenced this issue Nov 11, 2022
This PR was generated using Autosynth. 🌈

Synth log will be available here:
https://source.cloud.google.com/results/invocations/325cd597-d8fe-40d6-aad1-01bd299fa976/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: googleapis/synthtool@ba9918c
renovate-bot added a commit to renovate-bot/google-cloud-node that referenced this issue Nov 16, 2022
* docs: use the jsdoc-fresh theme (#190)

* docs: document apiEndpoint over servicePath (#191)

* fix: allow calls with no request, add JSON proto

* chore: release 1.3.1 (#195)

* updated CHANGELOG.md [ci skip]

* updated package.json [ci skip]

* updated samples/package.json [ci skip]

* fix: update retry code settings per API call (#196)

* chore(deps): update dependency yargs to v14

* fix: use process versions object for client header (#199)

* docs: update function documentation

* fix(docs): stop redirecting reference docs to anchor link

* chore: release 1.3.2 (#200)

* feat: load protos from JSON, grpc-fallback support

* [CHANGE ME] Re-generated  to pick up changes in the API or client library generator.

* fixes

* fix webpack.config.js

* fix protos

* chore(deps): update dependency eslint-plugin-node to v10 (#205)

* update .nycrc ignore rules (#206)

* chore: release 1.4.0 (#204)

* updated CHANGELOG.md [ci skip]

* updated package.json [ci skip]

* updated samples/package.json [ci skip]

* feat: .d.ts for protos (#210)

* fix: use compatible version of google-gax

* fix: use compatible version of google-gax

* fix: use gax v1.6.3

* chore: update pull request template (#214)

* chore: update CONTRIBUTING.md and make releaseType node (#219)

* chore: release 1.5.0 (#217)

* updated CHANGELOG.md [ci skip]

* updated package.json [ci skip]

* updated samples/package.json [ci skip]

* fix(deps): bump google-gax to 1.7.5 (#220)

* chore: release 1.5.1 (#222)

* chore: exclude gapic files from code coverage (#228)

* fix(docs): snippets are now replaced in jsdoc comments (#230)

* fix: import long into proto ts declaration file (#231)

* chore: release 1.5.2 (#232)

* docs: add copyright header (#233)

* fix(docs): bump release level to GA (#235)

* chore: update license header for protos.js (#236)

* chore(deps): update dependency yargs to v15 (#238)

* chore: release 1.5.3 (#237)

* feat(samples): add asymmetric samples (#241)

* docs: add asymmetric samples to README files (#247)

* docs: update jsdoc license/samples-README (#249)

* build: use c8 for coverage (#252)

* refactor: use explicit mocha imports

* refactor: use explicit mocha imports

* fixy

* build: add list of tracked files to synth.metadata

* chore(deps): update dependency eslint-plugin-node to v11 (#253)

* chore: release 1.6.0 (#245)

* build: add "**/*.d.ts" to coverage ignore rules

* fix: updated proto annotations (#258)

* [CHANGE ME] Re-generated  to pick up changes in the API or client library generator.

* test: increase timeout for before and after block

Co-authored-by: Alexander Fenster <[email protected]>

* chore: release 1.6.1

* updated CHANGELOG.md [ci skip]

* updated package.json [ci skip]

* updated samples/package.json [ci skip]

* chore(deps): update dependency mocha to v7 (#260)

* fix: protos: removed extra resource annotations, no code changes

* chore: release 1.6.2 (#262)

* docs: update license headers

* chore: clear synth.metadata

* chore: regenerate synth.metadata (#268)

* chore: updated resource annotation in proto file

* chore: skip img.shields.io in docs test

* test: modernize mocha config (#270)

* chore(deps): update dependency linkinator to v2

* fix: proto messages now accept strings for enums

Co-authored-by: Alexander Fenster <[email protected]>

* chore: release 1.6.3 (#274)

* build: add GitHub actions config for unit tests

* build: add GitHub actions config for unit tests

* chore: link root directory before linting

* chore: also need to npm i

* chore: update jsdoc.js (#281)

* chore: update .jsdoc.js by add protos and remove double quotes (#282)

* chore: updated proto annotations

* feat!: move to typescript code generation (#264)

* update from synthtool

* move to typescript

* update synth script and run it

* convert system-test to ts

* try this

* lint

* regenerate to pick up change for path template

* update client

* gts fix

* update copyright

* 2020 copyright

* try this

* fix unit test

* re-generate

* make sample test work

* remove sample test for IAM policy

* liny

* remove doc, revert sample-test

* add iam client to kmsClient

* update sample-test

* lint

* makes samples test work

* lint

* update

* convert system-tets to ts

* rerun synthtool

* sample test

* fix

* mix-in

* update synthtool

* run synthtool & test

* test

* manual add IamClient and pass unit tests

* clean up

* npm run lint

* test samples

* manual iam_service_config

* ts client interface overload

* test

* test

* return value

* return list

* clean up

* remove console warn

* sample-test work!

* require module correctly

* synthtool change

* include all files in tarball, system-test passes

* synthtool, all tests green

* merge

* fix for system-test

* feedback

* update dependencies

* license aligned for helper.ts

* remove helper.ts, tslint from synth.py

* move script around

* add comments to iamclient & synth.py

* rename helperMethods.tmpl

* rerun ynthtool

* give auth the type

* re set up scripts in package.json

* add meaningful comment

* add comments in helperMethods.tmpl

* test

* import * as packagejson from ../package.json;

* remove any

* run synthtool

* feat: deferred client initialization (#286)

This PR includes changes from https://github.com/googleapis/gapic-generator-typescript/pull/317
that will move the asynchronous initialization and authentication from the client constructor
to an `initialize()` method. This method will be automatically called when the first RPC call
is performed.

The client library usage has not changed, there is no need to update any code.

If you want to make sure the client is authenticated _before_ the first RPC call, you can do
```js
await client.initialize();
```
manually before calling any client method.

* build: update linkinator config (#287)

* build(tests): fix coveralls and enable build cop (#288)

* docs: mention templates in contributing section of README (#290)

* chore: update UUID to latest (#293)

There are some slight breaking changes in the newest UUID.

* docs: document version support goals (#297)

* chore: regenerate the code

Co-authored-by: Alexander Fenster <[email protected]>

* feat!: drop node8 support, support for async iterators (#300)

BREAKING CHANGE: The library now supports Node.js v10+. The last version to support Node.js v8 is tagged legacy-8 on NPM.

New feature: methods with pagination now support async iteration.

* build: set AUTOSYNTH_MULTIPLE_COMMITS=true for context aware commits (#301)

* chore(deps): update dependency @types/sinon to v9 (#302)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@types/sinon](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | devDependencies | major | [`^7.5.2` -> `^9.0.0`](https://renovatebot.com/diffs/npm/@types%2fsinon/7.5.2/9.0.0) |

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-kms).

* chore: remove duplicate mocha config (#304)

* fix: export explicit version in protos.js (#303)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/1630485f-7526-4afd-9c13-b5660664d6a2/targets

* feat: add support for Cloud EKM to the Cloud KMS service and resource protos (#306)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/9c94202f-63a5-4df0-9d76-871a00f99b85/targets

* chore: release 2.0.0 (#285)

* chore(deps): update dependency gts to v2.0.0 (#308)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [gts](https://togithub.com/google/gts) | devDependencies | patch | [`2.0.0-alpha.9` -> `2.0.0`](https://renovatebot.com/diffs/npm/gts/2.0.0-alpha.9/2.0.0) |

---

### Release Notes

<details>
<summary>google/gts</summary>

### [`v2.0.0`](https://togithub.com/google/gts/blob/master/CHANGELOG.md#&#8203;200-httpswwwgithubcomgooglegtscomparev112v200-2020-04-02)

[Compare Source](https://togithub.com/google/gts/compare/39a2705e51b4b6329a70f91f8293a2d7a363bf5d...v2.0.0)

##### ⚠ BREAKING CHANGES ⚠

This is a major rewrite of the tool.  Based on community guidance, we've switched from using [tslint](https://palantir.github.io/tslint/) to [eslint](https://eslint.org/).  _Please read all of the steps below to upgrade_.

##### Configuring `eslint`

With the shift to `eslint`, `gts` now will format and lint JavaScript _as well_ as TypeScript. Upgrading will require a number of manual steps.  To format JavaScript and TypeScript, you can run:

    $ npx gts fix

To specify only TypeScript:

    $ npx gts fix '**/*.ts'

##### Delete `tslint.json`

This file is no longer used, and can lead to confusion.

##### Create a `.eslintrc.json`

Now that we're using eslint, you need to extend the eslint configuration baked into the module.  Create a new file named `.eslintrc.json`, and paste the following:

```js
{
  "extends": "./node_modules/gts"
}
```

##### Create a `.eslintignore`

The `.eslintignore` file lets you ignore specific directories.  This tool now lints and formats JavaScript, so it's _really_ important to ignore your build directory!  Here is an example of a `.eslintignore` file:

    **/node_modules
    build/

##### Rule changes

The underlying linter was changed, so naturally there are going to be a variety of rule changes along the way.  To see the full list, check out [.eslintrc.json](https://togithub.com/google/gts/blob/master/.eslintrc.json).

##### Require Node.js 10.x and up

Node.js 8.x is now end of life - this module now requires Ndoe.js 10.x and up.

##### Features

-   add the eol-last rule ([#&#8203;425](https://www.github.com/google/gts/issues/425)) ([50ebd4d](https://www.github.com/google/gts/commit/50ebd4dbaf063615f4c025f567ca28076a734223))
-   allow eslintrc to run over tsx files ([#&#8203;469](https://www.github.com/google/gts/issues/469)) ([a21db94](https://www.github.com/google/gts/commit/a21db94601def563952d677cb0980a12b6730f4c))
-   disable global rule for checking TODO comments ([#&#8203;459](https://www.github.com/google/gts/issues/459)) ([96aa84a](https://www.github.com/google/gts/commit/96aa84a0a42181046daa248750cc8fef0c320619))
-   override require-atomic-updates ([#&#8203;468](https://www.github.com/google/gts/issues/468)) ([8105c93](https://www.github.com/google/gts/commit/8105c9334ee5104b05f6b1b2f150e51419637262))
-   prefer single quotes if possible ([#&#8203;475](https://www.github.com/google/gts/issues/475)) ([39a2705](https://www.github.com/google/gts/commit/39a2705e51b4b6329a70f91f8293a2d7a363bf5d))
-   use eslint instead of tslint ([#&#8203;400](https://www.github.com/google/gts/issues/400)) ([b3096fb](https://www.github.com/google/gts/commit/b3096fbd5076d302d93c2307bf627e12c423e726))

##### Bug Fixes

-   use .prettierrc.js ([#&#8203;437](https://www.github.com/google/gts/issues/437)) ([06efa84](https://www.github.com/google/gts/commit/06efa8444cdf1064b64f3e8d61ebd04f45d90b4c))
-   **deps:** update dependency chalk to v4 ([#&#8203;477](https://www.github.com/google/gts/issues/477)) ([061d64e](https://www.github.com/google/gts/commit/061d64e29d37b93ce55228937cc100e05ddef352))
-   **deps:** update dependency eslint-plugin-node to v11 ([#&#8203;426](https://www.github.com/google/gts/issues/426)) ([a394b7c](https://www.github.com/google/gts/commit/a394b7c1f80437f25017ca5c500b968ebb789ece))
-   **deps:** update dependency execa to v4 ([#&#8203;427](https://www.github.com/google/gts/issues/427)) ([f42ef36](https://www.github.com/google/gts/commit/f42ef36709251553342e655e287e889df72ee3e3))
-   **deps:** update dependency prettier to v2 ([#&#8203;464](https://www.github.com/google/gts/issues/464)) ([20ef43d](https://www.github.com/google/gts/commit/20ef43d566df17d3c93949ef7db3b72ee9123ca3))
-   disable no-use-before-define ([#&#8203;431](https://www.github.com/google/gts/issues/431)) ([dea2c22](https://www.github.com/google/gts/commit/dea2c223d1d3a60a1786aa820eebb93be27016a7))
-   **deps:** update dependency update-notifier to v4 ([#&#8203;403](https://www.github.com/google/gts/issues/403)) ([57393b7](https://www.github.com/google/gts/commit/57393b74c6cf299e8ae09311f0382226b8baa3e3))
-   **deps:** upgrade to meow 6.x ([#&#8203;423](https://www.github.com/google/gts/issues/423)) ([8f93d00](https://www.github.com/google/gts/commit/8f93d0049337a832d9a22b6ae4e86fd41140ec56))
-   align back to the google style guide ([#&#8203;440](https://www.github.com/google/gts/issues/440)) ([8bd78c4](https://www.github.com/google/gts/commit/8bd78c4c78526a72400f618a95a987d2a7c1a8db))
-   disable empty-function check ([#&#8203;467](https://www.github.com/google/gts/issues/467)) ([6455d7a](https://www.github.com/google/gts/commit/6455d7a9d227320d3ffe1b00c9c739b846f339a8))
-   drop support for node 8 ([#&#8203;422](https://www.github.com/google/gts/issues/422)) ([888c686](https://www.github.com/google/gts/commit/888c68692079065f38ce66ec84472f1f3311a050))
-   emit .prettierrc.js with init ([#&#8203;462](https://www.github.com/google/gts/issues/462)) ([b114614](https://www.github.com/google/gts/commit/b114614d22ab5560d2d1dd5cb6695968cc80027b))
-   enable trailing comma ([#&#8203;470](https://www.github.com/google/gts/issues/470)) ([6518f58](https://www.github.com/google/gts/commit/6518f5843d3093e3beb7d3371b56d9aecedf3924))
-   include _.tsx and _.jsx in default fix command ([#&#8203;473](https://www.github.com/google/gts/issues/473)) ([0509780](https://www.github.com/google/gts/commit/050978005ad089d9b3b5d8895b25ea1175d75db2))

##### [1.1.2](https://www.github.com/google/gts/compare/v1.1.1...v1.1.2) (2019-11-20)

##### Bug Fixes

-   **deps:** update to newest prettier (with support for optional chain) ([#&#8203;396](https://www.github.com/google/gts/issues/396)) ([ce8ad06](https://www.github.com/google/gts/commit/ce8ad06c8489c44a9e2ed5292382637b3ebb7601))

##### [1.1.1](https://www.github.com/google/gts/compare/v1.1.0...v1.1.1) (2019-11-11)

##### Bug Fixes

-   **deps:** update dependency chalk to v3 ([#&#8203;389](https://www.github.com/google/gts/issues/389)) ([1ce0f45](https://www.github.com/google/gts/commit/1ce0f450677e143a27efc39def617d13c66503e8))
-   **deps:** update dependency inquirer to v7 ([#&#8203;377](https://www.github.com/google/gts/issues/377)) ([bf2c349](https://www.github.com/google/gts/commit/bf2c349b2208ac63e551542599ac9cd27b461338))
-   **deps:** update dependency rimraf to v3 ([#&#8203;374](https://www.github.com/google/gts/issues/374)) ([2058eaa](https://www.github.com/google/gts/commit/2058eaa682f4baae978b469fd708d1f866e7da74))
-   **deps:** update dependency write-file-atomic to v3 ([#&#8203;353](https://www.github.com/google/gts/issues/353)) ([59e6aa8](https://www.github.com/google/gts/commit/59e6aa8580a2f8e9457d2d2b6fa9e18e86347592))

</details>

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-kms).

* fix: remove eslint, update gax, fix generated protos, run the generator (#309)

Run the latest version of the generator, update google-gax, update gts, and remove direct dependencies on eslint.

* build: remove unused codecov config (#311)

* chore: update lint ignore files (#312)

* feat: clean up synth.py by using IAM service option from generator (#305)

* remove iam from protos

* remove iam config

* sample test

* change it back

* all pass!

* clean

* update callback

* remove hacks in synth.py

* run synthtool

* remove iam protos/

* clean metadata

* updates

* feedback

Co-authored-by: Alexander Fenster <[email protected]>

* chore: remove tslint.json (#314)

* chore: remove unused dev packages (#317)

* chore: update lint rules and synth (#316)

* chore(deps): update dependency ts-loader to v7 (#319)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ts-loader](https://togithub.com/TypeStrong/ts-loader) | devDependencies | major | [`^6.2.1` -> `^7.0.0`](https://renovatebot.com/diffs/npm/ts-loader/6.2.2/7.0.0) |

---

### Release Notes

<details>
<summary>TypeStrong/ts-loader</summary>

### [`v7.0.0`](https://togithub.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md#v700)

[Compare Source](https://togithub.com/TypeStrong/ts-loader/compare/v6.2.2...v7.0.0)

-   [Project reference support enhancements](https://togithub.com/TypeStrong/ts-loader/pull/1076) - thanks [@&#8203;sheetalkamat](https://togithub.com/sheetalkamat)!
-   Following the end of life of Node 8, `ts-loader` no longer supports Node 8 **BREAKING CHANGE**

</details>

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-kms).

* chore(deps): update dependency null-loader to v4 (#320)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [null-loader](https://togithub.com/webpack-contrib/null-loader) | devDependencies | major | [`^3.0.0` -> `^4.0.0`](https://renovatebot.com/diffs/npm/null-loader/3.0.0/4.0.0) |

---

### Release Notes

<details>
<summary>webpack-contrib/null-loader</summary>

### [`v4.0.0`](https://togithub.com/webpack-contrib/null-loader/blob/master/CHANGELOG.md#&#8203;400-httpsgithubcomwebpack-contribnull-loadercomparev300v400-2020-04-15)

[Compare Source](https://togithub.com/webpack-contrib/null-loader/compare/v3.0.0...v4.0.0)

##### Bug Fixes

-   support `webpack@5`

##### ⚠ BREAKING CHANGES

-   minimum required Nodejs version is `10.13`

</details>

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-kms).

* build: use codecov's action, now that it's authless (#499) (#321)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/73563d93-aea4-4354-9013-d19800d55cda/targets

* build: adopt changes to generator formatter (#322)

* chore: update npm scripts and synth.py (#323)

Update npm scripts: add clean, prelint, prefix; make sure that lint and fix are set properly. Use post-process feature of synthtool.

* feat(samples): add new samples (#324)

* docs: remove exception from linkinator.json (#326)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/337a0524-6174-4d44-b6dc-f0ef2c4a7e44/targets

* chore: update UUID to latest (#328)

* fix: regen protos and tests, fix formatting (#329)

* fix: synth.py clean up for multiple version (#330)

* build: do not fail builds on codecov errors (#528) (#331)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/13e8b547-7af0-436b-b85e-2c1942f8f36a/targets

Source-Link: https://github.com/googleapis/synthtool/commit/be74d3e532faa47eb59f1a0eaebde0860d1d8ab4

* fix: update common protos and fix synth (#336)

* chore: release 2.1.0 (#313)

* updated CHANGELOG.md [ci skip]

* updated package.json [ci skip]

* updated samples/package.json

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* fix: samples-test script (#338)

* [CHANGE ME] Re-generated to pick up changes from self. (#341)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/94b5c3f0-0503-436d-9be8-c1804aaa194c/targets

- [ ] To automatically regenerate this PR, check this box.

* chore: release 2.1.1 (#340)

* build(secrets): begin migration to secret manager from keystore (#343)

Source-Author: Benjamin E. Coe <[email protected]>
Source-Date: Mon Jun 8 09:51:11 2020 -0700
Source-Repo: googleapis/synthtool
Source-Sha: 1c92077459db3dc50741e878f98b08c6261181e0
Source-Link: https://github.com/googleapis/synthtool/commit/1c92077459db3dc50741e878f98b08c6261181e0

* chore(deps): update dependency mocha to v8 (#344)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [mocha](https://mochajs.org/) ([source](https://togithub.com/mochajs/mocha)) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/mocha/7.2.0/8.0.1) |

---

### Release Notes

<details>
<summary>mochajs/mocha</summary>

### [`v8.0.1`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#&#8203;801--2020-06-10)

[Compare Source](https://togithub.com/mochajs/mocha/compare/v8.0.0...v8.0.1)

The obligatory patch after a major.

#### :bug: Fixes

-   [#&#8203;4328](https://togithub.com/mochajs/mocha/issues/4328): Fix `--parallel` when combined with `--watch` ([**@&#8203;boneskull**](https://togithub.com/boneskull))

### [`v8.0.0`](https://togithub.com/mochajs/mocha/blob/master/CHANGELOG.md#&#8203;800--2020-06-10)

[Compare Source](https://togithub.com/mochajs/mocha/compare/v7.2.0...v8.0.0)

In this major release, Mocha adds the ability to _run tests in parallel_. Better late than never! Please note the **breaking changes** detailed below.

Let's welcome [**@&#8203;giltayar**](https://togithub.com/giltayar) and [**@&#8203;nicojs**](https://togithub.com/nicojs) to the maintenance team!

#### :boom: Breaking Changes

-   [#&#8203;4164](https://togithub.com/mochajs/mocha/issues/4164): **Mocha v8.0.0 now requires Node.js v10.0.0 or newer.** Mocha no longer supports the Node.js v8.x line ("Carbon"), which entered End-of-Life at the end of 2019 ([**@&#8203;UlisesGascon**](https://togithub.com/UlisesGascon))

-   [#&#8203;4175](https://togithub.com/mochajs/mocha/issues/4175): Having been deprecated with a warning since v7.0.0, **`mocha.opts` is no longer supported** ([**@&#8203;juergba**](https://togithub.com/juergba))

    :sparkles: **WORKAROUND:** Replace `mocha.opts` with a [configuration file](https://mochajs.org/#configuring-mocha-nodejs).

-   [#&#8203;4260](https://togithub.com/mochajs/mocha/issues/4260): Remove `enableTimeout()` (`this.enableTimeout()`) from the context object ([**@&#8203;craigtaub**](https://togithub.com/craigtaub))

    :sparkles: **WORKAROUND:** Replace usage of `this.enableTimeout(false)` in your tests with `this.timeout(0)`.

-   [#&#8203;4315](https://togithub.com/mochajs/mocha/issues/4315): The `spec` option no longer supports a comma-delimited list of files ([**@&#8203;juergba**](https://togithub.com/juergba))

    :sparkles: **WORKAROUND**: Use an array instead (e.g., `"spec": "foo.js,bar.js"` becomes `"spec": ["foo.js", "bar.js"]`).

-   [#&#8203;4309](https://togithub.com/mochajs/mocha/issues/4309): Drop support for Node.js v13.x line, which is now End-of-Life ([**@&#8203;juergba**](https://togithub.com/juergba))

-   [#&#8203;4282](https://togithub.com/mochajs/mocha/issues/4282): `--forbid-only` will throw an error even if exclusive tests are avoided via `--grep` or other means ([**@&#8203;arvidOtt**](https://togithub.com/arvidOtt))

-   [#&#8203;4223](https://togithub.com/mochajs/mocha/issues/4223): The context object's `skip()` (`this.skip()`) in a "before all" (`before()`) hook will no longer execute subsequent sibling hooks, in addition to hooks in child suites ([**@&#8203;juergba**](https://togithub.com/juergba))

-   [#&#8203;4178](https://togithub.com/mochajs/mocha/issues/4178): Remove previously soft-deprecated APIs ([**@&#8203;wnghdcjfe**](https://togithub.com/wnghdcjfe)):
    -   `Mocha.prototype.ignoreLeaks()`
    -   `Mocha.prototype.useColors()`
    -   `Mocha.prototype.useInlineDiffs()`
    -   `Mocha.prototype.hideDiff()`

#### :tada: Enhancements

-   [#&#8203;4245](https://togithub.com/mochajs/mocha/issues/4245): Add ability to run tests in parallel for Node.js (see [docs](https://mochajs.org/#parallel-tests)) ([**@&#8203;boneskull**](https://togithub.com/boneskull))

    :exclamation: See also [#&#8203;4244](https://togithub.com/mochajs/mocha/issues/4244); [Root Hook Plugins (docs)](https://mochajs.org/#root-hook-plugins) -- _root hooks must be defined via Root Hook Plugins to work in parallel mode_

-   [#&#8203;4304](https://togithub.com/mochajs/mocha/issues/4304): `--require` now works with ES modules ([**@&#8203;JacobLey**](https://togithub.com/JacobLey))

-   [#&#8203;4299](https://togithub.com/mochajs/mocha/issues/4299): In some circumstances, Mocha can run ES modules under Node.js v10 -- _use at your own risk!_ ([**@&#8203;giltayar**](https://togithub.com/giltayar))

#### :book: Documentation

-   [#&#8203;4246](https://togithub.com/mochajs/mocha/issues/4246): Add documentation for parallel mode and Root Hook plugins ([**@&#8203;boneskull**](https://togithub.com/boneskull))

#### :bug: Fixes

(All bug fixes in Mocha v8.0.0 are also breaking changes, and are listed above)

</details>

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-kms).

* chore(nodejs_templates): add script logging to node_library populate-secrets.sh (#345)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/e306327b-605f-4c07-9420-c106e40c47d5/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/e7034945fbdc0e79d3c57f6e299e5c90b0f11469

* fix: handle fallback option properly

autosynth cannot find the source of changes triggered by earlier changes in this
        repository, or by version upgrades to tools such as linters.

* chore: release 2.1.2 (#347)

* updated CHANGELOG.md [ci skip]

* updated package.json [ci skip]

* updated samples/package.json

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* chore: update node issue template (#349)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/37f383f8-7560-459e-b66c-def10ff830cb/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/b10590a4a1568548dd13cfcea9aa11d40898144b

* docs: change relative URLs to absolute URLs to fix broken links. (#348)

PiperOrigin-RevId: 314805551

Source-Author: Google APIs <[email protected]>
Source-Date: Thu Jun 4 14:36:25 2020 -0700
Source-Repo: googleapis/googleapis
Source-Sha: ef180e07d360d86ce0f71c448edffbf6b7ceb8c9
Source-Link: https://github.com/googleapis/googleapis/commit/ef180e07d360d86ce0f71c448edffbf6b7ceb8c9

Co-authored-by: Justin Beckwith <[email protected]>

* build: add config .gitattributes (#350)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/2a81bca4-7abd-4108-ac1f-21340f858709/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/dc9caca650c77b7039e2bbc3339ffb34ae78e5b7

* build: use bazel build (#352)

* typeo: typeo in .gitattribute (#355)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/cc99acfa-05b8-434b-9500-2f6faf2eaa02/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/799d8e6522c1ef7cb55a70d9ea0b15e045c3d00b

* chore(deps): update dependency ts-loader to v8 (#354)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [ts-loader](https://togithub.com/TypeStrong/ts-loader) | devDependencies | major | [`^7.0.0` -> `^8.0.0`](https://renovatebot.com/diffs/npm/ts-loader/7.0.5/8.0.0) |

---

### Release Notes

<details>
<summary>TypeStrong/ts-loader</summary>

### [`v8.0.0`](https://togithub.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md#v800)

[Compare Source](https://togithub.com/TypeStrong/ts-loader/compare/v7.0.5...v8.0.0)

-   [Support for symlinks in project references](https://togithub.com/TypeStrong/ts-loader/pull/1136) - thanks [@&#8203;sheetalkamat](https://togithub.com/sheetalkamat)!
-   `ts-loader` now supports TypeScript 3.6 and greater **BREAKING CHANGE**

</details>

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-kms).

* chore(deps): update dependency @types/mocha to v8 (#356)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [@types/mocha](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | devDependencies | major | [`^7.0.2` -> `^8.0.0`](https://renovatebot.com/diffs/npm/@types%2fmocha/7.0.2/8.0.0) |

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#googleapis/nodejs-kms).

* chore: update generated protos.js (#358)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/9c6207e5-a7a6-4e44-ab6b-91751e0230b1/targets

- [ ] To automatically regenerate this PR, check this box.

* build: missing closing paren in publish script (#359)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/9c6207e5-a7a6-4e44-ab6b-91751e0230b1/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/d82deccf657a66e31bd5da9efdb96c6fa322fc7e

* chore: add config files for cloud-rad for node.js, delete Node 8 templates (#363)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/5e903fff-57bb-4395-bb94-8b4d1909dbf6/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/21f1470ecd01424dc91c70f1a7c798e4e87d1eec
Source-Link: https://github.com/googleapis/synthtool/commit/388e10f5ae302d3e8de1fac99f3a95d1ab8f824a

* chore: add dev dependencies for cloud-rad ref docs (#364)

* build: rename _toc to toc (#365)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/940354f9-15cd-4361-bbf4-dc9af1426979/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/99c93fe09f8c1dca09dfc0301c8668e3a70dd796

* chore: move gitattributes files to node templates (#366)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/d43b90cc-a087-4c57-864c-1e4f93292dc6/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/3a00b7fea8c4c83eaff8eb207f530a2e3e8e1de3

* chore(node): fix kokoro build path for cloud-rad (#367)

Source-Author: F. Hinkelmann <[email protected]>
Source-Date: Wed Jul 29 00:28:42 2020 -0400
Source-Repo: googleapis/synthtool
Source-Sha: 89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa
Source-Link: https://github.com/googleapis/synthtool/commit/89d431fb2975fc4e0ed24995a6e6dfc8ff4c24fa

* build: update protos (#368)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/b205fd33-200c-4298-88b8-18b0d1c79a3e/targets

- [ ] To automatically regenerate this PR, check this box.

* docs: add links to the CHANGELOG from the README.md for Java and Node (#369)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/7b446397-88f3-4463-9e7d-d2ce7069989d/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/5936421202fb53ed4641bcb824017dd393a3dbcc

* build: --credential-file-override is no longer required (#371)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/4de22315-84b1-493d-8da2-dfa7688128f5/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/94421c47802f56a44c320257b2b4c190dc7d6b68

* chore: update cloud rad kokoro build job (#373)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/b742586e-df31-4aac-8092-78288e9ea8e7/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/bd0deaa1113b588d70449535ab9cbf0f2bd0e72f

* build: use gapic-generator-typescript v.1.0.7, and add client integrity verification fields to protos (#372)

* build: use gapic-generator-typescript v1.0.7.

This new generator will bring some changes to the generated code across all libraries, but the behavior will only change for nodejs-logging and nodejs-pubsub (those two libraries that use request batching). For other libraries, the changes should be minor (the createApiCall call is simplified) and it should be safe to merge them. Please talk to @alexander-fenster if you have any questions.

PiperOrigin-RevId: 325949033

Source-Author: Google APIs <[email protected]>
Source-Date: Mon Aug 10 21:11:13 2020 -0700
Source-Repo: googleapis/googleapis
Source-Sha: 94006b3cb8d2fb44703cf535da15608eed6bf7db
Source-Link: https://github.com/googleapis/googleapis/commit/94006b3cb8d2fb44703cf535da15608eed6bf7db

* Add client integrity verification fields to the KMS protos

PiperOrigin-RevId: 326100874

Source-Author: Google APIs <[email protected]>
Source-Date: Tue Aug 11 14:22:10 2020 -0700
Source-Repo: googleapis/googleapis
Source-Sha: b40e4533f841c96aac1d9d7d342514d146b5b4cb
Source-Link: https://github.com/googleapis/googleapis/commit/b40e4533f841c96aac1d9d7d342514d146b5b4cb

Co-authored-by: sofisl <[email protected]>

* build: perform publish using Node 12 (#374)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/c36c6dbc-ab79-4f17-b70b-523b420b2a70/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/5747555f7620113d9a2078a48f4c047a99d31b3e

* chore: start tracking obsolete files (#376)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/7a1b0b96-8ddb-4836-a1a2-d2f73b7e6ffe/targets

- [ ] To automatically regenerate this PR, check this box.

* build: move system and samples test from Node 10 to Node 12 (#377)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/ba2d388f-b3b2-4ad7-a163-0c6b4d86894f/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/05de3e1e14a0b07eab8b474e669164dbd31f81fb

* build: track flaky tests for "nightly", add new secrets for tagging (#379)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/a5e2285a-d4b2-4f1e-81b4-60b8e55ed328/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/8cf6d2834ad14318e64429c3b94f6443ae83daf9

* build(test): recursively find test files; fail on unsupported dependency versions (#383)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/396d1a63-c8ed-42ae-811f-d2b08d6e2089/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/fdd03c161003ab97657cc0218f25c82c89ddf4b6

* chore: update bucket for cloud-rad (#385)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/fca23fa0-3627-48c1-abed-db8e850d5a5a/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/079dcce498117f9570cebe6e6cff254b38ba3860

* build(node_library): migrate to Trampoline V2 (#386)

Source-Author: Takashi Matsuo <[email protected]>
Source-Date: Fri Oct 2 12:13:27 2020 -0700
Source-Repo: googleapis/synthtool
Source-Sha: 0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9
Source-Link: https://github.com/googleapis/synthtool/commit/0c868d49b8e05bc1f299bc773df9eb4ef9ed96e9

* chore(deps): update dependency webpack-cli to v4 (#389)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [webpack-cli](https://togithub.com/webpack/webpack-cli) | devDependencies | major | [`^3.3.11` -> `^4.0.0`](https://renovatebot.com/diffs/npm/webpack-cli/3.3.12/4.0.0) |

---

### Release Notes

<details>
<summary>webpack/webpack-cli</summary>

### [`v4.0.0`](https://togithub.com/webpack/webpack-cli/blob/master/CHANGELOG.md#&#8203;400-httpsgithubcomwebpackwebpack-clicomparewebpack-cli400-rc1webpack-cli400-2020-10-10)

[Compare Source](https://togithub.com/webpack/webpack-cli/compare/[email protected])

##### Bug Fixes

-   add compilation lifecycle in watch instance ([#&#8203;1903](https://togithub.com/webpack/webpack-cli/issues/1903)) ([02b6d21](https://togithub.com/webpack/webpack-cli/commit/02b6d21eaa20166a7ed37816de716b8fc22b756a))
-   cleanup `package-utils` package ([#&#8203;1822](https://togithub.com/webpack/webpack-cli/issues/1822)) ([fd5b92b](https://togithub.com/webpack/webpack-cli/commit/fd5b92b3cd40361daec5bf4486e455a41f4c9738))
-   cli-executer supplies args further up ([#&#8203;1904](https://togithub.com/webpack/webpack-cli/issues/1904)) ([097564a](https://togithub.com/webpack/webpack-cli/commit/097564a851b36b63e0a6bf88144997ef65aa057a))
-   exit code for validation errors ([59f6303](https://togithub.com/webpack/webpack-cli/commit/59f63037fcbdbb8934b578b9adf5725bc4ae1235))
-   exit process in case of schema errors ([71e89b4](https://togithub.com/webpack/webpack-cli/commit/71e89b4092d953ea587cc4f606451ab78cbcdb93))

##### Features

-   assign config paths in build dependencies in cache config ([#&#8203;1900](https://togithub.com/webpack/webpack-cli/issues/1900)) ([7e90f11](https://togithub.com/webpack/webpack-cli/commit/7e90f110b119f36ef9def4f66cf4e17ccf1438cd))

</details>

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-kms).

* chore(deps): update dependency webpack to v5 (#388)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [webpack](https://togithub.com/webpack/webpack) | devDependencies | major | [`^4.42.0` -> `^5.0.0`](https://renovatebot.com/diffs/npm/webpack/4.44.2/5.1.0) |

---

### Release Notes

<details>
<summary>webpack/webpack</summary>

### [`v5.1.0`](https://togithub.com/webpack/webpack/releases/v5.1.0)

[Compare Source](https://togithub.com/webpack/webpack/compare/v5.0.0...v5.1.0)

### Features

-   expose `webpack` property from `Compiler`
-   expose `cleverMerge`, `EntryOptionPlugin`, `DynamicEntryPlugin`

### Bugfixes

-   missing `require("..").xxx` in try-catch produces a warning instead of an error now
-   handle reexports in concatenated modules correctly when they are side-effect-free
-   fix incorrect deprecation message for ModuleTemplate.hooks.hash

### [`v5.0.0`](https://togithub.com/webpack/webpack/releases/v5.0.0)

[Compare Source](https://togithub.com/webpack/webpack/compare/v4.44.2...v5.0.0)

[Announcement and changelog](https://webpack.js.org/blog/2020-10-10-webpack-5-release/)

</details>

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-kms).

* build: only check --engine-strict for production deps (#390)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/1c7a19e0-0642-4da9-a86e-676ae8965b89/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/5451633881133e5573cc271a18e73b18caca8b1b

* chore: clean up Node.js TOC for cloud-rad (#392)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/bea77be5-6371-49cb-b1fc-88500cc4fade/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/901ddd44e9ef7887ee681b9183bbdea99437fdcc
Source-Link: https://github.com/googleapis/synthtool/commit/f96d3b455fe27c3dc7bc37c3c9cd27b1c6d269c8

* docs: updated code of conduct (includes update to actions) (#396)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/87546435-a6be-41b1-b439-16b7d6c5df65/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/89c849ba5013e45e8fb688b138f33c2ec6083dc5
Source-Link: https://github.com/googleapis/synthtool/commit/a783321fd55f010709294455584a553f4b24b944
Source-Link: https://github.com/googleapis/synthtool/commit/b7413d38b763827c72c0360f0a3d286c84656eeb
Source-Link: https://github.com/googleapis/synthtool/commit/5f6ef0ec5501d33c4667885b37a7685a30d41a76

* build(node): add KOKORO_BUILD_ARTIFACTS_SUBDIR to env (#397)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/325cd597-d8fe-40d6-aad1-01bd299fa976/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/ba9918cd22874245b55734f57470c719b577e591

* build: add v1.KeyManagementServiceClient type (#398)

* fix: do not modify options object, use defaultScopes (#399)

Regenerated the library using
[gapic-generator-typescript](https://github.com/googleapis/gapic-generator-typescript)
v1.2.1.

* chore: release 2.1.3 (#400)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* fix(browser): check for fetch on window (#404)

* docs: spelling correction for "targetting" (#406)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/4ae6b577-4a5f-4ba7-885b-7384aaed05b5/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/15013eff642a7e7e855aed5a29e6e83c39beba2a

* chore: release 2.1.4 (#405)

:robot: I have created a release \*beep\* \*boop\* 
---
### [2.1.4](https://www.github.com/googleapis/nodejs-kms/compare/v2.1.3...v2.1.4) (2020-11-25)


### Bug Fixes

* **browser:** check for fetch on window ([#404](https://www.github.com/googleapis/nodejs-kms/issues/404)) ([96a90e3](https://www.github.com/googleapis/nodejs-kms/commit/96a90e3bea1c8b7e8e2d57cc1eb6204ed326b915))
---


This PR was generated with [Release Please](https://github.com/googleapis/release-please).

* chore: generate GAPIC metadata JSON file (#407)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/4e7abbc6-c648-4473-9499-aa96f63c63a8/targets

- [ ] To automatically regenerate this PR, check this box.

PiperOrigin-RevId: 345596855
Source-Link: https://github.com/googleapis/googleapis/commit/d189e871205fea665a9648f7c4676f027495ccaf

* docs: add instructions for authenticating for system tests (#410)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/910b6b4c-44a8-42e1-939c-9018f9008df4/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/363fe305e9ce34a6cd53951c6ee5f997094b54ee

* chore: update license headers (#411)

* feat: introduces style enum

* chore: release 2.2.0 (#413)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* feat(samples): add integrity verification to Cloud KMS crypto samples (#409)

* chore: release 2.3.0 (#414)

:robot: I have created a release \*beep\* \*boop\* 
---
## [2.3.0](https://www.github.com/googleapis/nodejs-kms/compare/v2.2.0...v2.3.0) (2021-01-08)


### Features

* **samples:** add integrity verification to Cloud KMS crypto samples ([#409](https://www.github.com/googleapis/nodejs-kms/issues/409)) ([d2897f6](https://www.github.com/googleapis/nodejs-kms/commit/d2897f681ae409b34a50b91ea718fa9e294895c5))
---


This PR was generated with [Release Please](https://github.com/googleapis/release-please).

* refactor(nodejs): move build cop to flakybot (#415)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/79c017af-4fff-4b22-8cb4-5c2208642be6/targets

- [ ] To automatically regenerate this PR, check this box.

Source-Link: https://github.com/googleapis/synthtool/commit/57c23fa5705499a4181095ced81f0ee0933b64f6

* build: adds UNORDERED_LIST enum (#417)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/2ae671ee-21a8-4bed-96cc-bdcf6b4638b5/targets

- [ ] To automatically regenerate this PR, check this box.

* fix: do not retry on 13 INTERNAL (#418)

Fixes https://github.com/googleapis/nodejs-kms/issues/375. The malformed request triggers `13 INTERNAL` from gRPC and we should not silently retry on this code.
Committer: @alexander-fenster

PiperOrigin-RevId: 357022763

Source-Author: Google APIs <[email protected]>
Source-Date: Thu Feb 11 11:39:31 2021 -0800
Source-Repo: googleapis/googleapis
Source-Sha: 3f914b89ae1ef459955f470f9ccb498314ad28d5
Source-Link: https://github.com/googleapis/googleapis/commit/3f914b89ae1ef459955f470f9ccb498314ad28d5

* chore: release 2.3.1 (#419)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* build: update gapic-generator-typescript to v1.2.10. (#420)

This PR was generated using Autosynth. :rainbow:

Synth log will be available here:
https://source.cloud.google.com/results/invocations/7d84eafd-4925-434f-9ffd-6407671972cb/targets

- [ ] To automatically regenerate this PR, check this box.

PiperOrigin-RevId: 361273630
Source-Link: https://github.com/googleapis/googleapis/commit/5477122b3e8037a1dc5bc920536158edbd151dc4

* chore: migrate to owl bot (#422)

generated via script

* chore(deps): update dependency sinon to v10 (#428)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^9.0.1` -> `^10.0.0`](https://renovatebot.com/diffs/npm/sinon/9.2.4/10.0.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/10.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/10.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/10.0.0/compatibility-slim/9.2.4)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/10.0.0/confidence-slim/9.2.4)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>sinonjs/sinon</summary>

### [`v10.0.0`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#&#8203;1000--2021-03-22)

[Compare Source](https://togithub.com/sinonjs/sinon/compare/v9.2.4...v10.0.0)

==================

-   Upgrade nise to 4.1.0
-   Use [@&#8203;sinonjs/eslint-config](https://togithub.com/sinonjs/eslint-config)[@&#8203;4](https://togithub.com/4) => Adopts ES2017 => Drops support for IE 11, Legacy Edge and legacy Safari

</details>

---

### Renovate configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-kms).

* chore(deps): update dependency @types/sinon to v10 (#438)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@types/sinon](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^9.0.0` -> `^10.0.0`](https://renovatebot.com/diffs/npm/@types%2fsinon/9.0.11/10.0.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fsinon/10.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fsinon/10.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fsinon/10.0.0/compatibility-slim/9.0.11)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fsinon/10.0.0/confidence-slim/9.0.11)](https://docs.renovatebot.com/merge-confidence/) |

---

### Configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box.

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-kms).

* chore(deps): update dependency ts-loader to v9 (#442)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [ts-loader](https://togithub.com/TypeStrong/ts-loader) | [`^8.0.0` -> `^9.0.0`](https://renovatebot.com/diffs/npm/ts-loader/8.1.0/9.0.0) | [![age](https://badges.renovateapi.com/packages/npm/ts-loader/9.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/ts-loader/9.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/ts-loader/9.0.0/compatibility-slim/8.1.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/ts-loader/9.0.0/confidence-slim/8.1.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>TypeStrong/ts-loader</summary>

### [`v9.0.0`](https://togithub.com/TypeStrong/ts-loader/blob/master/CHANGELOG.md#v900)

[Compare Source](https://togithub.com/TypeStrong/ts-loader/compare/v8.1.0...v9.0.0)

Breaking changes:

-   minimum webpack version: 5
-   minimum node version: 12

Changes:

-   [webpack 5 migration](https://togithub.com/TypeStrong/ts-loader/pull/1251) - thanks [@&#8203;johnnyreilly](https://togithub.com/johnnyreilly), [@&#8203;jonwallsten](https://togithub.com/jonwallsten), [@&#8203;sokra](https://togithub.com/sokra), [@&#8203;appzuka](https://togithub.com/appzuka), [@&#8203;alexander-akait](https://togithub.com/alexander-akait)

</details>

---

### Configuration

:date: **Schedule**: "after 9am and before 3pm" (UTC).

:vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

:recycle: **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

:no_bell: **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box.

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-kms).

* fix(deps): require google-gax v2.12.0 (#447)

* chore: new owl bot post processor docker image (#449)

gcr.io/repo-automation-bots/owlbot-nodejs:latest@sha256:f93bb861d6f12574437bb9aee426b71eafd63b419669ff0ed029f4b7e7162e3f

* fix: use require() to load JSON protos (#450)

The library is regenerated with gapic-generator-typescript v1.3.1.

Committer: @alexander-fenster
PiperOrigin-RevId: 372468161

Source-Link: https://github.com/googleapis/googleapis/commit/75880c3e6a6aa2597400582848e81bbbfac51dea

Source-Link: https://github.com/googleapis/googleapis-gen/commit/77b18044813d4c8c415ff9ea68e76e307eb8e904

* chore: update gapic-generator-typescript to v1.3.2 (#451)

Committer: @alexander-fenster
PiperOrigin-RevId: 372656503

Source-Link: https://github.com/googleapis/googleapis/commit/6fa858c6489b1bbc505a7d7afe39f2dc45819c38

Source-Link: https://github.com/googleapis/googleapis-gen/commit/d7c95df3ab1ea1b4c22a4542bad4924cc46d1388

* chore: release 2.3.2 (#448)

Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>

* chore(deps): update dependency @types/node to v14 (#454)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [@types/node](https://togithub.com/DefinitelyTyped/DefinitelyTyped) | [`^13.13.4` -> `^14.0.0`](https://renovatebot.com/diffs/npm/@types%2fnode/13.13.52/14.17.0) | [![age](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/compatibility-slim/13.13.52)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/@types%2fnode/14.17.0/confidence-slim/13.13.52)](https://docs.renovatebot.com/merge-confidence/) |

---

### Configuration

📅 **Schedule**: "after 9am and before 3pm" (UTC).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻️ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box.

---

This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-kms).

* chore(deps): update dependency sinon to v11 (#455)

[![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [sinon](https://sinonjs.org/) ([source](https://togithub.com/sinonjs/sinon)) | [`^10.0.0` -> `^11.0.0`](https://renovatebot.com/diffs/npm/sinon/10.0.0/11.1.0) | [![age](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/compatibility-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/sinon/11.1.0/confidence-slim/10.0.0)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>sinonjs/sinon</summary>

### [`v11.1.0`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#&#8203;1110--2021-05-25)

[Compare Source](https://togithub.com/sinonjs/sinon/compare/v11.0.0...31be9a5d5a4762ef01cb195f29024616dfee9ce8)

\==================

-   Add sinon.promise() implementation ([#&#8203;2369](https://togithub.com/sinonjs/sinon/issues/2369))
-   Set wrappedMethod on getters/setters ([#&#8203;2378](https://togithub.com/sinonjs/sinon/issues/2378))
-   \[Docs] Update fake-server usage & descriptions ([#&#8203;2365](https://togithub.com/sinonjs/sinon/issues/2365))
-   Fake docs improvement ([#&#8203;2360](https://togithub.com/sinonjs/sinon/issues/2360))
-   Update nise to 5.1.0 (fixed [#&#8203;2318](https://togithub.com/sinonjs/sinon/issues/2318))

### [`v11.0.0`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#&#8203;1100--2021-05-24)

[Compare Source](https://togithub.com/sinonjs/sinon/compare/v10.0.1...v11.0.0)

\==================

-   Explicitly use samsam 6.0.2 with fix for [#&#8203;2345](https://togithub.com/sinonjs/sinon/issues/2345)
-   Update most packages ([#&#8203;2371](https://togithub.com/sinonjs/sinon/issues/2371))
-   Update compatibility docs ([#&#8203;2366](https://togithub.com/sinonjs/sinon/issues/2366))
-   Update packages (includes breaking fake-timers change, see [#&#8203;2352](https://togithub.com/sinonjs/sinon/issues/2352))
-   Warn of potential memory leaks ([#&#8203;2357](https://togithub.com/sinonjs/sinon/issues/2357))
-   Fix clock test errors

### [`v10.0.1`](https://togithub.com/sinonjs/sinon/blob/master/CHANGELOG.md#&#8203;1001--2021-04-08)

[Compare Source](https://togithub.com/sinonjs/sinon/compare/v10.0.0...v10.0.1)

\==================

-   Upgrade sinon components (bumps y18n to 4.0.1)
-   Bump y18n from 4.0.0 to 4.0.1

</details>

---

### Configuration

📅 **Schedule**: "after 9…
sofisl pushed a commit that referenced this issue Nov 17, 2022
sofisl pushed a commit that referenced this issue Nov 18, 2022
Co-authored-by: release-please[bot] <55107282+release-please[bot]@users.noreply.github.com>
sofisl pushed a commit that referenced this issue Jan 10, 2023
sofisl pushed a commit that referenced this issue Sep 13, 2023
For each client method returning a long running operation, a separate method to check its status is added.

Added methods: `checkBatchPredictProgress`, `checkCreateDatasetProgress`, `checkCreateModelProgress`, `checkDeleteDatasetProgress`, `checkDeleteModelProgress`, `checkDeployModelProgress`, `checkExportDataProgress`, `checkExportEvaluatedExamplesProgress`, `checkExportModelProgress`, `checkImportDataProgress`, `checkUndeployModelProgress`.
sofisl pushed a commit that referenced this issue Sep 14, 2023
…secrets.sh (#397)

Co-authored-by: Benjamin E. Coe <[email protected]>

Source-Author: BenWhitehead <[email protected]>
Source-Date: Wed Jun 10 22:24:28 2020 -0400
Source-Repo: googleapis/synthtool
Source-Sha: e7034945fbdc0e79d3c57f6e299e5c90b0f11469
Source-Link: googleapis/synthtool@e703494
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
api: storage Issues related to the Cloud Storage API. 🚨 This issue needs some love. triage me I really want to be triaged.
Projects
None yet
Development

No branches or pull requests

7 participants