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

Allow global configuration of gcloud #191

Closed
ryanseys opened this issue Sep 6, 2014 · 38 comments
Closed

Allow global configuration of gcloud #191

ryanseys opened this issue Sep 6, 2014 · 38 comments
Assignees
Labels
core 🚨 This issue needs some love. triage me I really want to be triaged.
Milestone

Comments

@ryanseys
Copy link
Contributor

ryanseys commented Sep 6, 2014

From discussion at #168 (comment)

Support supplying credentials earlier in the gcloud setup process.

var gcloud = require('gcloud');
gcloud.options({ keyFilename: !ON_COMPUTE && '/path/to/the/key.json' });
@stephenplusplus
Copy link
Contributor

#46

If we're continuing the discussion here, I'll just add a couple notes.

// Would be nice if it worked on gce
var gcloud = require('gcloud');
var dataset = new gcloud.datastore.Dataset({ projectId: 'hi' });

// Should work on gae & elsewhere
var gcloud = require('gcloud')({ credentials: {/*... */} });
var dataset = new gcloud.datastore.Dataset({ projectId: 'hi' });

So, a couple things are different from your example:

  1. No need for a user on gce to require any connection configuration. That can be handled for them by us like it is currently (right?)
  2. Remove the .options method, and instead pass the credentials/keyfilename to the gcloud required object.

Here's how I would envision that working...

// lib/index.js
var connection = require('./common/connection.js');
function gcloud(connectionOptions) {
  var conn = new connection(connectionOptions);
  gcloud.datastore.connection = conn;
  gcloud.pubsub.connection = conn;
  gcloud.storage.connection = conn;
}
gcloud.datastore = require('./datastore/index.js');
gcloud.pubsub = require('./pubsub/index.js');
gcloud.storage = require('./storage/index.js');

module.exports = gcloud;

// lib/storage/index.js
var connection = require('./common/connection.js');
var conn = module.exports.connection;
if (!module.exports.connection) {
  // no connection was configured, so we're on gce
  conn = new connection();
}
function Bucket() {}
// ...
module.exports.Bucket = Bucket;

If that example is awful, feel free to re-think it completely. Trying to wrangle a baby over here, so my thought 🚋 could be way off :)

@jgeewax
Copy link
Contributor

jgeewax commented Sep 8, 2014

I'd like to take this to an extra level and include projectId in the connection parameters (it's uncommon for a single chunk of code to operate on more than one project simultaneously).

That is:

var gcloud = require('gcloud')({
  projectId: 'my-project',
  keyFile: '/path/to/keyfile.json'
});

// This is a weird one because there's currently one
// dataset per project, but this may change over time.
var dataset = new gcloud.datastore.Dataset() 

// This one is pretty standard...
var bucket = new gcloud.storage.Bucket({ bucketName: 'my-bucket' });

If you do want to do more than one project, the old config should still be able to be overridden:

// Assuming we have gcloud set as above...
var otherDataset = new gcloud.datastore.Dataset({
  projectId: 'my-other-project',
  keyFile: '/path/to/other/keyfile.json'
});

Or even:

var gcloud = require('gcloud');

var projectOne = gcloud.configure({
  projectId: 'my-project',
  keyFile: '/path/to/keyfile.json'
});

var projectTwo = gcloud.configure({
  projectId: 'my-other-project',
  keyFile: '/path/to/other/keyfile.json'
});

var bucketOne = new projectOne.storage.Bucket( ... );
var bucketTwo = new projectTwo.storage.Bucket( ... );

Thoughts?

CC: @proppy @ryanseys @stephenplusplus @silvolu

@jgeewax
Copy link
Contributor

jgeewax commented Sep 8, 2014

(I should add that if we allow it to be done this way, the Authentication section of the README becomes much easier to write, as the demo isn't service-specific... See #193 )

@stephenplusplus
Copy link
Contributor

I'd like to take this to an extra level and include projectId in the connection parameters (it's uncommon for a single chunk of code to operate on more than one project simultaneously).

Makes sense 👍

How about still avoiding a new method:

var gcloud = require('gcloud');

// one project.
var myProject = gcloud({
  projectId: 'my-project',
  keyFile: '/path/to/keyfile.json'
});

// another project.
var anotherProject = gcloud({
  projectId: 'my-other-project',
  keyFile: '/path/to/other/keyfile.json'
});

@jgeewax
Copy link
Contributor

jgeewax commented Sep 8, 2014

SGTM. Who wants to take this one?

@jgeewax jgeewax added this to the M1: core, datastore & storage milestone Sep 8, 2014
@jgeewax jgeewax changed the title gcloud.options() for all configuration up front Allow global configuration of gcloud Sep 8, 2014
@stephenplusplus
Copy link
Contributor

I'm happy to give it a go, unless @ryanseys wants the honors 👑

@silvolu
Copy link
Contributor

silvolu commented Sep 8, 2014

SGTM as long as we allow overwriting for a single service instance, e.g. as @jgeewax mentioned

var otherDataset = new gcloud.datastore.Dataset({
  projectId: 'my-other-project',
  keyFile: '/path/to/other/keyfile.json'
});

@proppy
Copy link
Contributor

proppy commented Sep 8, 2014

Note that on GCE you can query the projectId from the metadata server, and since you don't need the .json credentials either: var myProject = gcloud(); should just work.

@rakyll
Copy link
Contributor

rakyll commented Sep 9, 2014

var dataset = new gcloud.datastore.Dataset()

Your service account may have read/right permissions for other projects. So, this is not a weird one.

@rakyll
Copy link
Contributor

rakyll commented Sep 9, 2014

I should add that if we allow it to be done this way, the Authentication section of the README becomes much easier to write, as the demo isn't service-specific..

There is no service specific auth. All services work with a credentials object that looks more or less the same -- we can make the object exactly the same for each service.

The credentials object is the global configuration. We don't need need interfaces.

var conf = {
  projectId: 'my-other-project',
  keyFile: '/path/to/other/keyfile.json'
};

var ds = gcloud.datastore.dataset(conf);
// or on GCE
var ds = gcloud.datastore.dataset();
var bucket = gcloud.storage.bucket(conf);

This proposal is not looking good to me.

@stephenplusplus
Copy link
Contributor

That covered the credentials, but not any further config options:

var conf = {
  projectId: 'my-other-project',
  keyFile: '/path/to/other/keyfile.json'
};
// ...
var bucket = gcloud.storage.bucket(conf); // bucketName?

It's not an exhaustive amount of effort we would force on the developer to figure that problem out-- they would probably just inline the entire configuration object again, as opposed to extending the object. However, if we know the developer is going to do something the same way each time they invoke a sub-module, why not plan for this and allow up-front specification?

var gcloud = require('gcloud')({
  projectId: 'my-other-project',
  keyFile: '/path/to/other/keyfile.json'
});
var ds = gcloud.datastore.dataset();
var bucket = gcloud.storage.bucket({ bucketName: 'hi' });

And from config-aware envs:

var gcloud = require('gcloud');
var ds = gcloud.datastore.dataset();
var bucket = gcloud.storage.bucket({ bucketName: 'hi' });

And if you need multiple connection details:

var gcloud = require('gcloud');
var myProject = gcloud({
  projectId: 'my-project',
  keyFile: '/path/to/keyfile.json'
});
var myOtherProject = gcloud({
  projectId: 'my-other-project',
  keyFile: '/path/to/other/keyfile.json'
});
var ds = myProject.datastore.dataset();
var bucket = myOtherProject.storage.bucket({ bucketName: 'hi' });

@stephenplusplus
Copy link
Contributor

I would say, however, providing anything but connection info to the gcloud module can introduce some confusion. I would vote to keep it limited to just credentials or keyFilename. But, maybe there are use-cases where being allowed to specify additional defaults would be beneficial?

@rakyll
Copy link
Contributor

rakyll commented Sep 9, 2014

But, maybe there are use-cases where being allowed to specify additional defaults would be beneficial?

There could be global options. But if there are not default, the configuration object on the service layer (called conf above) should require them as well.

Non-optional options can be set optionally via gcloud.configure(opts), so we still can eliminate gcloud initialisation duality.

var bucket = gcloud.storage.bucket(conf); // bucketName?

We actually never need a projectId field for datastore and storage clients. The configuration is already fragmented. The only option you can pass is the keyFilename or credentials.

Overriding creates more confusion.

// Confusion #1: Should this authorise via metadata server or not?
var gcloud = require('gcloud');
var myProject = gcloud({
  projectId: 'my-project',
  keyFile: '/path/to/keyfile.json'
});
var ds = myProject.datastore.dataset();


// Confusion #2: Will this override keyFilename or not?
var gcloud = require('gcloud');
var myProject = gcloud({
  projectId: 'my-project',
  keyFile: '/path/to/keyfile.json'
});
var ds = myProject.datastore.dataset({ credentials: blah });

// Confusion #3: Will this discover my GCE project Id or not?
var gcloud = require('gcloud');
var myProject = gcloud({
  keyFilename: '/path/to/keyfile.json'
});
var ds = myProject.datastore.dataset();

// Confusion #4: Will this work on GAE devappserver?
var gcloud = require('gcloud');
var ds = myProject.datastore.dataset(); // this will work
var bucket = myProject.storage.bucket(); // this won't work
// Whereas on prod, both will work. So, if this is a GAE user, global config is not usable.

So, configuration object differs per service. Auth behaves differently according to the environment. Some services support devappserver, some don't.

Why do we need to mess with all the logic here (and explaining it) instead of asking user to repeat himself twice by passing a credentials object or a keyFilename string?

Our current way of doing auth is already extremely implicit -- GAE and GCE behaviours are magical. I don't want to add more confusion.

@stephenplusplus
Copy link
Contributor

Our current way of doing auth is already extremely implicit -- GAE and GCE behaviours are magical. I don't want to add more confusion.

I can agree with that. Something similar to this would be nice to have:

var gcloud = require('gcloud');
gcloud.setEnvironment('gae');

@jgeewax
Copy link
Contributor

jgeewax commented Sep 9, 2014

We do need the project ID for storage. When creating a bucket, we need to know which project to put it under. If running outside of GCE, we need to explicitly specify the project ID, right?

With Confusion 4: gcloud({keyFilename: ...}).storage.bucket() in GCE... does that actually work? I think we really need a bucket name... right?

@rakyll
Copy link
Contributor

rakyll commented Sep 9, 2014

We do need the project ID for storage. When creating a bucket, we need to know which project to put it under. If running outside of GCE, we need to explicitly specify the project ID, right?

We don't need a project ID. We need a bucket name. A project may contain more than a single bucket.

Datastore is not any different. A dataset can be managed by any service account as long as it has permissions and no project ID is required -- just the dataset ID.

gcloud({keyFilename: ...}).storage.bucket()

It currently requires an explicit bucket name, so it won't work (until we support GAE devappserver's mock Storage server). But the confusion is still there. A dev feels the necessity to read the code to predict the behaviour and we create more complexity by introducing overriding.

User will just need to pass the same credentials object, and will do it at the construction time for once. Why are we trying to improve a two-line repetition?

@proppy
Copy link
Contributor

proppy commented Sep 9, 2014

So maybe gcloud could have a notion of global and local credentials.

You could do something like this:

var gcloud = require('gcloud');
gcloud.auth({key: '/path/to/json'}); // auth the default connection w/ this credentials
var dataset = gcloud.datastore.dataset('datasetId'); // use the default connection
var bucket = gcloud.storage.bucket('bucketId'); // use the default connection

You can even even go further and similarly to #191 (comment) have gcloud.auth() return a AuthorizedConnection and have .datastore and .bucket be child of that connection.

var conn1 = require('gcloud').auth({key: ...}); // auth and return a new connection
var conn2 = require('gcloud').auth({key: ...}); // auth and return a new connection

var dataset = conn1.datastore.dataset('datasetId'); // access datasetId with conn1 credentials
var bucket = conn2.storage.bucket('bucketId'); // access bucketId with conn2 credentials

I agree with @rakyll that projectId is not useful here, what really matters is:

  • the identity you want to use (.json file)
  • the resource you want to access (bucket, datasetId, ...)

@silvolu
Copy link
Contributor

silvolu commented Sep 9, 2014

+1 to @proppy's proposal.

@rakyll
Copy link
Contributor

rakyll commented Sep 9, 2014

Or

var gcloud = require('gcloud')(auth);
gcloud.datastore.dataset('datasetId');
gcloud.storage.bucket('bucketId');

Global credentials, local identifier, no overriding.

+1 to @proppy.

@stephenplusplus
Copy link
Contributor

@rakyll This looks like what #196 implemented, minus the overriding. Can you answer your earlier points of confusion?

// Confusion #1: Should this authorise via metadata server or not?
var gcloud = require('gcloud');
var myProject = gcloud({
  projectId: 'my-project',
  keyFile: '/path/to/keyfile.json'
});
var ds = myProject.datastore.dataset();
// would then be...
var gcloud = require('gcloud');
var myProject = gcloud({
  keyFile: '/path/to/keyfile.json'
});
var ds = myProject.datastore.dataset('my-project');


// Confusion #2: Will this override keyFilename or not?
-- resolved --

// Confusion #3: Will this discover my GCE project Id or not?
var gcloud = require('gcloud');
var myProject = gcloud({
  keyFilename: '/path/to/keyfile.json'
});
var ds = myProject.datastore.dataset();

// Confusion #4: Will this work on GAE devappserver?
var gcloud = require('gcloud');
var ds = myProject.datastore.dataset(); // this will work
var bucket = myProject.storage.bucket(); // this won't work
// Whereas on prod, both will work. So, if this is a GAE user, global config is not usable.

Will we still support this for gae/gce?:

var gcloud = require('gcloud');
var ds = gcloud.datastore.dataset('projectId'); // connection auto-configured

@rakyll
Copy link
Contributor

rakyll commented Sep 9, 2014

Isn't this resolved? There is a single way to set auth -- globally. And since, there are specified credentials, myProject.datastore.dataset('my-project') will use them instead of GCE metadata server.

// Confusion #1: Should this authorise via metadata server or not?
// would then be...
var gcloud = require('gcloud');
var myProject = gcloud({
  keyFile: '/path/to/keyfile.json'
});
var ds = myProject.datastore.dataset('my-project');

This is still not resolved, we should throw if global auth exists but no local identifier is provided. Such validation should be done in lib/datastore/index.js

var gcloud = require('gcloud');
var myProject = gcloud({
  keyFilename: '/path/to/keyfile.json'
});
var ds = myProject.datastore.dataset();

This is not resolved. GAE users will not be able to use the same gcloud instance.

var gcloud = require('gcloud');
var ds = myProject.datastore.dataset(); // this will work
var bucket = myProject.storage.bucket(); // this won't work
// Whereas on prod, both will work. So, if this is a GAE user, global config is not usable.

They need to create one with credentials to talk to Storage, another one with no credentials for Datastore :'(

var gcloud = require('gcloud');
var ds = gcloud.datastore.dataset(); // this will work via devappserver mock or metadata server

var gcloud2 = require('gcloud')({ keyFilename: '...' });
var bucket = gcloud2.storage.bucket('name');

Will we still support this for gae/gce?:

Yes, we should keep supporting GAE/GCE.

Pass the credentials object twice, just saying :)

@stephenplusplus
Copy link
Contributor

Yeah, at this point, I vote no global config of anything.

@jgeewax
Copy link
Contributor

jgeewax commented Sep 9, 2014

This thread has gotten pretty long, and I think I'm at least a little bit confused... (It's also tricky to reply in-line like an e-mail, or comment on a doc...)

To summarize... I'd love to be able to write...

// Pull in gcloud and deal with auth.
var gcloud = require('gcloud')({
  // ... credential details here ...
  // (Also, allow a default project ID, as most people have only one project...)
  // nulls here means... "default to the 'magic' auth via GAE/GCE SAs if possible".
});

// These don't think about auth.
var bucket = gcloud.storage.bucket('bucket');
var datastore = gcloud.datastore.dataset('dataset');

If I'm required to set credentials in every call to .bucket(), I need to pull in both gcloud and the credentials piece everywhere I want to make that call, which seems kind of obnoxious. Ideally I'd like to pull in my authenticated instance of gcloud so that the code where I'm using it (ie, gcloud.storage.bucket()) doesn't even think about auth.

Is this going to be possible? or are we deciding not to do that?


Regarding confusion...

I don't see the confusion outlined above, making me think I'm missing something big...

  1. project ID is necessary when creating a bucket.
  2. dataset ID is currently the same as a project ID
  3. specifying a project id means use that project id, even if it fails
  4. not specifying a project id means try to find the project id with magic from the environment
  5. specifying a keyfile means use that keyfile, even if it fails
  6. not specifying a keyfile means try to authenticate with magic from the environment

Regarding the different environments...

Can we expose something that lets you check the environment, or set different credentials depending on the environment? The common one is... "If it's not in a 'special' environment, here are the credentials...", ie:

var gcloud = require('gcloud')({projectId: 'my-project'});

// How do we use stuff if we're running in EC2 or on a non-special Linux box?
if (!gcloud.isSpecialMagicalEnvironment()) {
  gcloud = gcloud({
    // ... here are my non-special credentials...
  });
}
var bucket = gcloud.storage.bucket('bucket name');

Huge apology if this is derailing the whole conversation...

@stephenplusplus
Copy link
Contributor

Will we still support this for gae/gce?:

Yes, we should keep supporting GAE/GCE.

To clarify this, I meant not requiring invocation of the returned gcloud value:

// g[ca]e
var gcloud = require('gcloud');
var ds = gcloud.datastore.dataset({});
// vs.
var gcloud = require('gcloud')({ creds });
vs ds = gcloud.datastore.dataset({});

That means we have to support and document using the gcloud module in these two ways (I believe you had a concern about this earlier, "initialisation duality"?)

@rakyll
Copy link
Contributor

rakyll commented Sep 9, 2014

// nulls here means... "default to the 'magic' auth via GAE/GCE SAs if possible". 

This only works if you are on GCE prod and datastore GAE dev. To be able to work with Storage and Pubsub you'll need a new gcloud instance inited with different credentials if you are a GAE/GCE user.

// GAE local user to use datastore
var gcloud = require('gcloud')();
gcloud.datastore.dataset();

// GAE prod user to use datastore
var gcloud = require('gcloud')();
gcloud.datastore.dataset();

// GAE local user to use storage
var gcloud = require('gcloud')({ credentials: ... });
gcloud.storage.bucket('name');

// GAE prod user to use storage
var gcloud = require('gcloud')();
gcloud.storage.bucket('name');

if (!gcloud.isSpecialMagicalEnvironment())

Yes, this has become a must.

We need to support gcloud.isGAEDev(), gcloud.isGAEProd() and gcloud.isGCE() to help the user to correctly initialize gcloud :(

@rakyll
Copy link
Contributor

rakyll commented Sep 9, 2014

That means we have to support and document using the gcloud module in these two ways (I believe you had a concern about this earlier, "initialisation duality"?)

require('gcloud')() looks uglier than the duality IMHO :)

sofisl pushed a commit that referenced this issue Nov 11, 2022
PiperOrigin-RevId: 363478455
Source-Author: Google APIs <noreply@google.com>
Source-Date: Wed Mar 17 12:20:53 2021 -0700
Source-Repo: googleapis/googleapis
Source-Sha: 4fb2f3e141fb4a62c434e1964db0fd2f2763aa08
Source-Link: googleapis/googleapis@4fb2f3e
sofisl pushed a commit that referenced this issue Nov 11, 2022
* updated CHANGELOG.md [ci skip]

* updated package.json [ci skip]

* updated samples/package.json [ci skip]
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/cacd5a12-e156-415f-94a2-533984f6802a/targets

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

Source-Link: googleapis/synthtool@363fe30
sofisl pushed a commit that referenced this issue Nov 11, 2022
[![Mend Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [linkinator](https://togithub.com/JustinBeckwith/linkinator) | [`^2.1.2` -> `^4.0.0`](https://renovatebot.com/diffs/npm/linkinator/2.16.2/4.0.0) | [![age](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/age-slim)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/adoption-slim)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/compatibility-slim/2.16.2)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://badges.renovateapi.com/packages/npm/linkinator/4.0.0/confidence-slim/2.16.2)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>JustinBeckwith/linkinator</summary>

### [`v4.0.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v4.0.0)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.1.0...v4.0.0)

##### Features

-   create new release with notes ([#&#8203;508](https://togithub.com/JustinBeckwith/linkinator/issues/508)) ([2cab633](https://togithub.com/JustinBeckwith/linkinator/commit/2cab633c9659eb10794a4bac06f8b0acdc3e2c0c))

##### BREAKING CHANGES

-   The commits in [#&#8203;507](https://togithub.com/JustinBeckwith/linkinator/issues/507) and [#&#8203;506](https://togithub.com/JustinBeckwith/linkinator/issues/506) both had breaking changes.  They included dropping support for Node.js 12.x and updating the CSV export to be streaming, and to use a new way of writing the CSV file.  This is an empty to commit using the `BREAKING CHANGE` format in the commit message to ensure a release is triggered.

### [`v3.1.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.1.0)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.6...v3.1.0)

##### Features

-   allow --skip to be defined multiple times ([#&#8203;399](https://togithub.com/JustinBeckwith/linkinator/issues/399)) ([5ca5a46](https://togithub.com/JustinBeckwith/linkinator/commit/5ca5a461508e688de12e5ae6b4cfb6565f832ebf))

### [`v3.0.6`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.6)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.5...v3.0.6)

##### Bug Fixes

-   **deps:** upgrade node-glob to v8 ([#&#8203;397](https://togithub.com/JustinBeckwith/linkinator/issues/397)) ([d334dc6](https://togithub.com/JustinBeckwith/linkinator/commit/d334dc6734cd7c2b73d7ed3dea0550a6c3072ad5))

### [`v3.0.5`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.5)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.4...v3.0.5)

##### Bug Fixes

-   **deps:** upgrade to htmlparser2 v8.0.1 ([#&#8203;396](https://togithub.com/JustinBeckwith/linkinator/issues/396)) ([ba3b9a8](https://togithub.com/JustinBeckwith/linkinator/commit/ba3b9a8a9b19d39af6ed91790135e833b80c1eb6))

### [`v3.0.4`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.4)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.3...v3.0.4)

##### Bug Fixes

-   **deps:** update dependency gaxios to v5 ([#&#8203;391](https://togithub.com/JustinBeckwith/linkinator/issues/391)) ([48af50e](https://togithub.com/JustinBeckwith/linkinator/commit/48af50e787731204aeb7eff41325c62291311e45))

### [`v3.0.3`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.3)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.2...v3.0.3)

##### Bug Fixes

-   export getConfig from index ([#&#8203;371](https://togithub.com/JustinBeckwith/linkinator/issues/371)) ([0bc0355](https://togithub.com/JustinBeckwith/linkinator/commit/0bc0355c7e2ea457f247e6b52d1577b8c4ecb3a1))

### [`v3.0.2`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.2)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.1...v3.0.2)

##### Bug Fixes

-   allow server root with trailing slash ([#&#8203;370](https://togithub.com/JustinBeckwith/linkinator/issues/370)) ([8adf6b0](https://togithub.com/JustinBeckwith/linkinator/commit/8adf6b025fda250e38461f1cdad40fe08c3b3b7c))

### [`v3.0.1`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.1)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v3.0.0...v3.0.1)

##### Bug Fixes

-   decode path parts in local web server ([#&#8203;369](https://togithub.com/JustinBeckwith/linkinator/issues/369)) ([4696a0c](https://togithub.com/JustinBeckwith/linkinator/commit/4696a0c38c341b178ed815f47371fca955979feb))

### [`v3.0.0`](https://togithub.com/JustinBeckwith/linkinator/releases/tag/v3.0.0)

[Compare Source](https://togithub.com/JustinBeckwith/linkinator/compare/v2.16.2...v3.0.0)

##### Bug Fixes

-   **deps:** update dependency chalk to v5 ([#&#8203;362](https://togithub.com/JustinBeckwith/linkinator/issues/362)) ([4b17a8d](https://togithub.com/JustinBeckwith/linkinator/commit/4b17a8d87b649eaf813428f8ee6955e1d21dae4f))

-   feat!: convert to es modules, drop node 10 ([#&#8203;359](https://togithub.com/JustinBeckwith/linkinator/issues/359)) ([efee299](https://togithub.com/JustinBeckwith/linkinator/commit/efee299ab8a805accef751eecf8538915a4e7783)), closes [#&#8203;359](https://togithub.com/JustinBeckwith/linkinator/issues/359)

##### BREAKING CHANGES

-   this module now requires node.js 12 and above, and has moved to es modules by default.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 9am and before 3pm" (UTC), Automerge - At any time (no schedule defined).

🚦 **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, click this checkbox.

---

This PR has been generated by [Mend Renovate](https://www.mend.io/free-developer-tools/renovate/). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/nodejs-video-transcoder).
sofisl pushed a commit that referenced this issue Nov 11, 2022
… result docs: added notes on long running operation (#191)

- [ ] Regenerate this pull request now.

PiperOrigin-RevId: 400785744

Source-Link: googleapis/googleapis@bf8851e

Source-Link: googleapis/googleapis-gen@139bae1
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiMTM5YmFlMTg0MGU3ODg3ODk0ZmU2MzhkZjg5MGJiYWUwMzNjNzNkZSJ9

feat: added support for Deployments with ListDeployments and GetDeployment apis
PiperOrigin-RevId: 399726267

Source-Link: googleapis/googleapis@14829f3

Source-Link: googleapis/googleapis-gen@bba746f
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYmJhNzQ2ZjhmYzc0OTQyNTRkZWNhYmNlMTIyNTgyYWQxYTcxNzk1OCJ9

feat: added support for DeployFlow api under Environments
feat: added support for TestCasesConfig under Environment
docs: added long running operation explanation for several apis
fix: marked resource name of security setting as not-required

feat: expose dtmf input info in the query result
PiperOrigin-RevId: 400308975

Source-Link: googleapis/googleapis@02710fa

Source-Link: googleapis/googleapis-gen@a56bce1
Copy-Tag: eyJwIjoiLmdpdGh1Yi8uT3dsQm90LnlhbWwiLCJoIjoiYTU2YmNlMTY4NjNhOWFmMmNiZTU3YzBlZWQ3M2EwYjZlNjNiMWMwYSJ9
sofisl added a commit 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 <github@fenster.name>

* 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 <github@fenster.name>

* 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 <github@fenster.name>

* 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 <fenster@google.com>

* 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 <bencoe@google.com>
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 <noreply@google.com>
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 <justin.beckwith@gmail.com>

* 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 <franziska.hinkelmann@gmail.com>
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 <noreply@google.com>
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 <noreply@google.com>
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 <55454395+sofisl@users.noreply.github.com>

* 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 <tmatsuo@google.com>
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/v3.3.12...webpack-cli@4.0.0)

##### 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 <noreply@google.com>
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 16, 2022
fix: use google-gax v3.3.0
Source-Link: googleapis/synthtool@c73d112
Post-Processor: gcr.io/cloud-devrel-public-resources/owlbot-nodejs:latest@sha256:b15a6f06cc06dcffa11e1bebdf1a74b6775a134aac24a0f86f51ddf728eb373e
sofisl pushed a commit that referenced this issue Nov 30, 2022
…lates (#191)

This PR was generated using Autosynth. 🌈

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: googleapis/synthtool@21f1470
Source-Link: googleapis/synthtool@388e10f
sofisl pushed a commit that referenced this issue Jan 26, 2023
* feat: turns on self-signed JWT feature flag

PiperOrigin-RevId: 392067151

Source-Link: googleapis/googleapis@06345f7

Source-Link: googleapis/googleapis-gen@95882b3

* 🦉 Updates from OwlBot

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

Co-authored-by: Owl Bot <gcf-owl-bot[bot]@users.noreply.github.com>
Co-authored-by: Justin Beckwith <justin.beckwith@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
core 🚨 This issue needs some love. triage me I really want to be triaged.
Projects
None yet
Development

No branches or pull requests

7 participants