tree 5b2595404e0c017cd98683da08372d9c2c5d5354
parent de5b73f75f6552afd178d908ad4806f5b2b94c71
author Yoshi Automation Bot <yoshi-automation@google.com> 1607546166 -0800
committer GitHub <noreply@github.com> 1607546166 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJf0TU2CRBK7hj4Ov3rIwAAdHIIAKtE1GpJ6p20y/TylF8AL3W7
 ngNfOvReAoqHiEuR1iymcryu8jzVSq0E5ptngli0lQlDbozMwUZYR6+Qh0E6TLJd
 guUkNSYRm5UHitGd5qhAaA1o+v/rDOV+cak4m/qPk+4cG9WpsTbChuF32cTa4CXt
 1J61Vi3kFyQdTVJNI566FJTTjqvwDLR5QXIPb+JcdAzaHEmykjg/bjGp+08PaqD9
 x9vqy69+U2L7qlFJjTy+l1fSXFc9APF8Xb1hXVwH8f17tLDvhcXHp9BBAmMbP3vX
 cNNqpFihSR4tCxRj9C16QmeQchztAj8emQeKaiZzPmPXroin9usBtbZxC9YQRUI=
 =HlLE
 -----END PGP SIGNATURE-----
 

feat(all): auto-regenerate gapics (#3436)


This is an auto-generated regeneration of the gapic clients by
cloud.google.com/go/internal/gapicgen. Once the corresponding genproto PR is
submitted, genbot will update this PR with a newer dependency to the newer
version of genproto and assign reviewers to this PR.

If you have been assigned to review this PR, please:

- Ensure that the version of genproto in go.mod has been updated.
- Ensure that CI is passing. If it's failing, it requires your manual attention.
- Approve and submit this PR if you believe it's ready to ship.


Corresponding genproto PR: https://github.com/googleapis/go-genproto/pull/505

Changes:
- chore(kms): migrate kms to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346440719
  Source-Link: https://github.com/googleapis/googleapis/commit/85a5954183479a9a7c2641c013cd728b6fa9b7cd

- feat(dialogflow/cx): allowed custom to specify webhook headers through query parameters
  docs: suggested to always use version for production traffic when calling DetectIntent

  PiperOrigin-RevId: 346434847
  Source-Link: https://github.com/googleapis/googleapis/commit/e4d01555afeb93d2f3b467056ea884b092567d1b

- chore(bigquery/storage): migrate java-bigquerystorage to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346405446
  Source-Link: https://github.com/googleapis/googleapis/commit/abc43060f136ce77124754a48f367102e646844a

- chore(firestore/apiv1): migrate firestore/admin to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346387604
  Source-Link: https://github.com/googleapis/googleapis/commit/36e1a9a8e31eef72033033aa910be56a64a1793f

- chore(analytics/admin): Make microgenerators default for all languages

  In particular this applies to Java and Python microgenerators.
  With this change `java_gapic_*` and `py_gapic_*` rules mean microgenerator versions. The monolith versions of the rules are named as `java_gapic_*_legacy` and `py_gapic_*_legacy` respectively.

  Also change Ads BAZEL template to reflect the change in default rule names.

  Also change `DO NOT OVERRIDE` comment warnings meaning (to reflect that now by default microgenerator rules are generated and the generated version must be accepted only if the API is being migrated to the microgenerator).

  PiperOrigin-RevId: 346227314
  Source-Link: https://github.com/googleapis/googleapis/commit/160f80d81d9b75145a2b50877cdb4b6e084a78c0

- fix(dialogflow/cx): use `google.cloud.dialogflowcx` namespace for python

  PiperOrigin-RevId: 346185632
  Source-Link: https://github.com/googleapis/googleapis/commit/d9bc6eb41bdacddcd5bd3a0af581bc769cc080d3

- fix(videointelligence):Introduce tracks and thumbnails fields for FaceDetectionAnnotations proto.

  PiperOrigin-RevId: 346138329
  Source-Link: https://github.com/googleapis/googleapis/commit/674ec0e684b20e57f8ab4811a44ba50631d0ef8b

- chore(billing): migrate java-billing to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346134186
  Source-Link: https://github.com/googleapis/googleapis/commit/adcf2b655d89b256c7be509509f41009b95f683a

- chore(asset): migrate java-asset to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346132907
  Source-Link: https://github.com/googleapis/googleapis/commit/8e32936b5907be362322acfa897130ee0e914bcb

- chore(billing/budgets): migrate java-billingbudgets to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346132901
  Source-Link: https://github.com/googleapis/googleapis/commit/61771acd2932b9396553219abe74a210ca0a0d2d

- chore(dataproc): migrate java-dataproc to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346132878
  Source-Link: https://github.com/googleapis/googleapis/commit/565b9a5f01d7154825c657bca5ee244e86aad918

- chore(cloudbuild/apiv1): migrate cloudbuild to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346132650
  Source-Link: https://github.com/googleapis/googleapis/commit/08869d766d1c5ad0950ba24e9707339024ab63be

- chore(monitoring/dashboard): migrate java-monitoring to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346127853
  Source-Link: https://github.com/googleapis/googleapis/commit/59ef1bc1dad73e435f6038d202fe7ff7455d9bec

- chore(containeranalysis): migrate java-containeranalysis to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346126761
  Source-Link: https://github.com/googleapis/googleapis/commit/3d044d4277aa89f6d82b57f5e57a2b81bcf17200

- chore(firestore): migrate firestore to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346124526
  Source-Link: https://github.com/googleapis/googleapis/commit/68b79503fa3743f64a2559d786c47e4472f449b7

- chore(redis): migrate redis to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346121774
  Source-Link: https://github.com/googleapis/googleapis/commit/fa1a1755bb7d1d211261906886d9608359ba23d9

- chore(analytics/admin): migrate analytics to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346120301
  Source-Link: https://github.com/googleapis/googleapis/commit/70c794b04230f5dafd612300d409dfd7df98ebca

- chore(spanner/admin/database): migrate java-spanner to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346119030
  Source-Link: https://github.com/googleapis/googleapis/commit/57e83fd2ae0804faa22328c41f82ae47220a93c9

- chore(videointelligence): migrate java-videointelligence to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346118883
  Source-Link: https://github.com/googleapis/googleapis/commit/8c987b95fb588f81fc5b626105a88d2fed9f6486

- chore(area120/tables): migrate area120/tables to the Java microgenerator

  Committer: @miraleung
  PiperOrigin-RevId: 346115388
  Source-Link: https://github.com/googleapis/googleapis/commit/46ef525a8da090173ef10d76aeacfb59c6c7c644

