diff --git a/.github/.OwlBot.lock.yaml b/.github/.OwlBot.lock.yaml index f60d7749..a79f0627 100644 --- a/.github/.OwlBot.lock.yaml +++ b/.github/.OwlBot.lock.yaml @@ -13,5 +13,5 @@ # limitations under the License. docker: image: gcr.io/cloud-devrel-public-resources/owlbot-java:latest - digest: sha256:fc52b202aa298a50a12c64efd04fea3884d867947effe2fa85382a246c09e813 -# created: 2022-04-06T16:30:03.627422514Z + digest: sha256:2567a120ce90fadb6201999b87d649d9f67459de28815ad239bce9ebfaa18a74 +# created: 2022-05-19T15:12:45.278246753Z diff --git a/.kokoro/build.sh b/.kokoro/build.sh index 055738e0..326130b2 100755 --- a/.kokoro/build.sh +++ b/.kokoro/build.sh @@ -74,6 +74,11 @@ graalvm) mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test RETURN_CODE=$? ;; +graalvm17) + # Run Unit and Integration Tests with Native Image + mvn -B ${INTEGRATION_TEST_ARGS} -ntp -Pnative -Penable-integration-tests test + RETURN_CODE=$? + ;; samples) SAMPLES_DIR=samples # only run ITs in snapshot/ on presubmit PRs. run ITs in all 3 samples/ subdirectories otherwise. diff --git a/.kokoro/presubmit/graalvm-native-17.cfg b/.kokoro/presubmit/graalvm-native-17.cfg new file mode 100644 index 00000000..a3f7fb9d --- /dev/null +++ b/.kokoro/presubmit/graalvm-native-17.cfg @@ -0,0 +1,33 @@ +# Format: //devtools/kokoro/config/proto/build.proto + +# Configure the docker image for kokoro-trampoline. +env_vars: { + key: "TRAMPOLINE_IMAGE" + value: "gcr.io/cloud-devrel-kokoro-resources/graalvm17" +} + +env_vars: { + key: "JOB_TYPE" + value: "graalvm17" +} + +# TODO: remove this after we've migrated all tests and scripts +env_vars: { + key: "GCLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_CLOUD_PROJECT" + value: "gcloud-devel" +} + +env_vars: { + key: "GOOGLE_APPLICATION_CREDENTIALS" + value: "secret_manager/java-it-service-account" +} + +env_vars: { + key: "SECRET_MANAGER_KEYS" + value: "java-it-service-account" +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index fea11462..bb6bc286 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.2.0](https://github.com/googleapis/java-workflows/compare/v2.1.10...v2.2.0) (2022-05-24) + + +### Features + +* add build scripts for native image testing in Java 17 ([#1440](https://github.com/googleapis/java-workflows/issues/1440)) ([#454](https://github.com/googleapis/java-workflows/issues/454)) ([5194c30](https://github.com/googleapis/java-workflows/commit/5194c303012675db89127e1581017ef7ecbda737)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.11.0 ([#453](https://github.com/googleapis/java-workflows/issues/453)) ([8241724](https://github.com/googleapis/java-workflows/commit/824172473845135eee1853aa9d9ccac096182328)) +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.12.0 ([#455](https://github.com/googleapis/java-workflows/issues/455)) ([3b68d9c](https://github.com/googleapis/java-workflows/commit/3b68d9ca4307fd34f913061363015decc73c1b23)) + ### [2.1.10](https://github.com/googleapis/java-workflows/compare/v2.1.9...v2.1.10) (2022-04-15) diff --git a/README.md b/README.md index 6b47ccae..2c1fed10 100644 --- a/README.md +++ b/README.md @@ -27,13 +27,13 @@ If you are using Maven, add this to your pom.xml file: If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-workflows:2.1.9' +implementation 'com.google.cloud:google-cloud-workflows:2.1.10' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-workflows" % "2.1.9" +libraryDependencies += "com.google.cloud" % "google-cloud-workflows" % "2.1.10" ``` ## Authentication diff --git a/google-cloud-workflows-bom/pom.xml b/google-cloud-workflows-bom/pom.xml index 7c68afb7..fe65d989 100644 --- a/google-cloud-workflows-bom/pom.xml +++ b/google-cloud-workflows-bom/pom.xml @@ -3,12 +3,12 @@ 4.0.0 com.google.cloud google-cloud-workflows-bom - 2.1.10 + 2.2.0 pom com.google.cloud google-cloud-shared-config - 1.3.2 + 1.4.0 Google Cloud Workflows BOM @@ -58,27 +58,27 @@ com.google.cloud google-cloud-workflows - 2.1.10 + 2.2.0 com.google.api.grpc grpc-google-cloud-workflows-v1beta - 0.7.10 + 0.8.0 com.google.api.grpc grpc-google-cloud-workflows-v1 - 2.1.10 + 2.2.0 com.google.api.grpc proto-google-cloud-workflows-v1beta - 0.7.10 + 0.8.0 com.google.api.grpc proto-google-cloud-workflows-v1 - 2.1.10 + 2.2.0 diff --git a/google-cloud-workflows/pom.xml b/google-cloud-workflows/pom.xml index b2da15dc..530dfef1 100644 --- a/google-cloud-workflows/pom.xml +++ b/google-cloud-workflows/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-workflows - 2.1.10 + 2.2.0 jar Google Cloud Workflows https://github.com/googleapis/java-workflows @@ -11,7 +11,7 @@ com.google.cloud google-cloud-workflows-parent - 2.1.10 + 2.2.0 google-cloud-workflows diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/WorkflowsClient.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/WorkflowsClient.java index 8677cf9e..70ce92e6 100644 --- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/WorkflowsClient.java +++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/WorkflowsClient.java @@ -1,5 +1,5 @@ /* - * Copyright 2021 Google LLC + * Copyright 2022 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -48,6 +48,8 @@ * calls that map to API methods. Sample code to get started: * *
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
  *   WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
  *   Workflow response = workflowsClient.getWorkflow(name);
@@ -83,6 +85,8 @@
  * 

To customize credentials: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * WorkflowsSettings workflowsSettings =
  *     WorkflowsSettings.newBuilder()
  *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
@@ -93,6 +97,8 @@
  * 

To customize the endpoint: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * WorkflowsSettings workflowsSettings =
  *     WorkflowsSettings.newBuilder().setEndpoint(myEndpoint).build();
  * WorkflowsClient workflowsClient = WorkflowsClient.create(workflowsSettings);
@@ -169,6 +175,8 @@ public final OperationsClient getOperationsClient() {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
    *   for (Workflow element : workflowsClient.listWorkflows(parent).iterateAll()) {
@@ -196,6 +204,8 @@ public final ListWorkflowsPagedResponse listWorkflows(LocationName parent) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
    *   for (Workflow element : workflowsClient.listWorkflows(parent).iterateAll()) {
@@ -220,6 +230,8 @@ public final ListWorkflowsPagedResponse listWorkflows(String parent) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   ListWorkflowsRequest request =
    *       ListWorkflowsRequest.newBuilder()
@@ -249,6 +261,8 @@ public final ListWorkflowsPagedResponse listWorkflows(ListWorkflowsRequest reque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   ListWorkflowsRequest request =
    *       ListWorkflowsRequest.newBuilder()
@@ -278,6 +292,8 @@ public final ListWorkflowsPagedResponse listWorkflows(ListWorkflowsRequest reque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   ListWorkflowsRequest request =
    *       ListWorkflowsRequest.newBuilder()
@@ -313,6 +329,8 @@ public final UnaryCallable listWork
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
    *   Workflow response = workflowsClient.getWorkflow(name);
@@ -336,6 +354,8 @@ public final Workflow getWorkflow(WorkflowName name) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   String name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString();
    *   Workflow response = workflowsClient.getWorkflow(name);
@@ -358,6 +378,8 @@ public final Workflow getWorkflow(String name) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   GetWorkflowRequest request =
    *       GetWorkflowRequest.newBuilder()
@@ -381,6 +403,8 @@ public final Workflow getWorkflow(GetWorkflowRequest request) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   GetWorkflowRequest request =
    *       GetWorkflowRequest.newBuilder()
@@ -405,6 +429,8 @@ public final UnaryCallable getWorkflowCallable() {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
    *   Workflow workflow = Workflow.newBuilder().build();
@@ -448,6 +474,8 @@ public final OperationFuture createWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
    *   Workflow workflow = Workflow.newBuilder().build();
@@ -491,6 +519,8 @@ public final OperationFuture createWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   CreateWorkflowRequest request =
    *       CreateWorkflowRequest.newBuilder()
@@ -519,6 +549,8 @@ public final OperationFuture createWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   CreateWorkflowRequest request =
    *       CreateWorkflowRequest.newBuilder()
@@ -547,6 +579,8 @@ public final OperationFuture createWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   CreateWorkflowRequest request =
    *       CreateWorkflowRequest.newBuilder()
@@ -572,6 +606,8 @@ public final UnaryCallable createWorkflowCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
    *   workflowsClient.deleteWorkflowAsync(name).get();
@@ -596,6 +632,8 @@ public final OperationFuture deleteWorkflowAsync(Workf
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   String name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString();
    *   workflowsClient.deleteWorkflowAsync(name).get();
@@ -619,6 +657,8 @@ public final OperationFuture deleteWorkflowAsync(Strin
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   DeleteWorkflowRequest request =
    *       DeleteWorkflowRequest.newBuilder()
@@ -644,6 +684,8 @@ public final OperationFuture deleteWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   DeleteWorkflowRequest request =
    *       DeleteWorkflowRequest.newBuilder()
@@ -669,6 +711,8 @@ public final OperationFuture deleteWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   DeleteWorkflowRequest request =
    *       DeleteWorkflowRequest.newBuilder()
@@ -693,6 +737,8 @@ public final UnaryCallable deleteWorkflowCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   Workflow workflow = Workflow.newBuilder().build();
    *   FieldMask updateMask = FieldMask.newBuilder().build();
@@ -721,6 +767,8 @@ public final OperationFuture updateWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   UpdateWorkflowRequest request =
    *       UpdateWorkflowRequest.newBuilder()
@@ -748,6 +796,8 @@ public final OperationFuture updateWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   UpdateWorkflowRequest request =
    *       UpdateWorkflowRequest.newBuilder()
@@ -775,6 +825,8 @@ public final OperationFuture updateWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   UpdateWorkflowRequest request =
    *       UpdateWorkflowRequest.newBuilder()
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/WorkflowsSettings.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/WorkflowsSettings.java
index 8feb68f9..b941005a 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/WorkflowsSettings.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/WorkflowsSettings.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -55,6 +55,8 @@
  * 

For example, to set the total timeout of getWorkflow to 30 seconds: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * WorkflowsSettings.Builder workflowsSettingsBuilder = WorkflowsSettings.newBuilder();
  * workflowsSettingsBuilder
  *     .getWorkflowSettings()
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/package-info.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/package-info.java
index 66bbe13a..b3bbac21 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/package-info.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -27,6 +27,8 @@
  * 

Sample for WorkflowsClient: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
  *   WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
  *   Workflow response = workflowsClient.getWorkflow(name);
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsCallableFactory.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsCallableFactory.java
index 09b1b788..d90ca4b8 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsCallableFactory.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsCallableFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsStub.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsStub.java
index f15178cf..8f43fc0e 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsStub.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsStub.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/WorkflowsStub.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/WorkflowsStub.java
index 6edc34db..186534f4 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/WorkflowsStub.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/WorkflowsStub.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/WorkflowsStubSettings.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/WorkflowsStubSettings.java
index 0b801c7d..23f33e67 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/WorkflowsStubSettings.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/WorkflowsStubSettings.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -81,6 +81,8 @@
  * 

For example, to set the total timeout of getWorkflow to 30 seconds: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * WorkflowsStubSettings.Builder workflowsSettingsBuilder = WorkflowsStubSettings.newBuilder();
  * workflowsSettingsBuilder
  *     .getWorkflowSettings()
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/WorkflowsClient.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/WorkflowsClient.java
index 0cb8c949..5832a287 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/WorkflowsClient.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/WorkflowsClient.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -48,6 +48,8 @@
  * calls that map to API methods. Sample code to get started:
  *
  * 
{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
  *   WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
  *   Workflow response = workflowsClient.getWorkflow(name);
@@ -83,6 +85,8 @@
  * 

To customize credentials: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * WorkflowsSettings workflowsSettings =
  *     WorkflowsSettings.newBuilder()
  *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
@@ -93,6 +97,8 @@
  * 

To customize the endpoint: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * WorkflowsSettings workflowsSettings =
  *     WorkflowsSettings.newBuilder().setEndpoint(myEndpoint).build();
  * WorkflowsClient workflowsClient = WorkflowsClient.create(workflowsSettings);
@@ -170,6 +176,8 @@ public final OperationsClient getOperationsClient() {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
    *   for (Workflow element : workflowsClient.listWorkflows(parent).iterateAll()) {
@@ -197,6 +205,8 @@ public final ListWorkflowsPagedResponse listWorkflows(LocationName parent) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
    *   for (Workflow element : workflowsClient.listWorkflows(parent).iterateAll()) {
@@ -221,6 +231,8 @@ public final ListWorkflowsPagedResponse listWorkflows(String parent) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   ListWorkflowsRequest request =
    *       ListWorkflowsRequest.newBuilder()
@@ -250,6 +262,8 @@ public final ListWorkflowsPagedResponse listWorkflows(ListWorkflowsRequest reque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   ListWorkflowsRequest request =
    *       ListWorkflowsRequest.newBuilder()
@@ -279,6 +293,8 @@ public final ListWorkflowsPagedResponse listWorkflows(ListWorkflowsRequest reque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   ListWorkflowsRequest request =
    *       ListWorkflowsRequest.newBuilder()
@@ -314,6 +330,8 @@ public final UnaryCallable listWork
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
    *   Workflow response = workflowsClient.getWorkflow(name);
@@ -337,6 +355,8 @@ public final Workflow getWorkflow(WorkflowName name) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   String name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString();
    *   Workflow response = workflowsClient.getWorkflow(name);
@@ -359,6 +379,8 @@ public final Workflow getWorkflow(String name) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   GetWorkflowRequest request =
    *       GetWorkflowRequest.newBuilder()
@@ -382,6 +404,8 @@ public final Workflow getWorkflow(GetWorkflowRequest request) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   GetWorkflowRequest request =
    *       GetWorkflowRequest.newBuilder()
@@ -406,6 +430,8 @@ public final UnaryCallable getWorkflowCallable() {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
    *   Workflow workflow = Workflow.newBuilder().build();
@@ -449,6 +475,8 @@ public final OperationFuture createWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
    *   Workflow workflow = Workflow.newBuilder().build();
@@ -492,6 +520,8 @@ public final OperationFuture createWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   CreateWorkflowRequest request =
    *       CreateWorkflowRequest.newBuilder()
@@ -520,6 +550,8 @@ public final OperationFuture createWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   CreateWorkflowRequest request =
    *       CreateWorkflowRequest.newBuilder()
@@ -548,6 +580,8 @@ public final OperationFuture createWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   CreateWorkflowRequest request =
    *       CreateWorkflowRequest.newBuilder()
@@ -573,6 +607,8 @@ public final UnaryCallable createWorkflowCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
    *   workflowsClient.deleteWorkflowAsync(name).get();
@@ -597,6 +633,8 @@ public final OperationFuture deleteWorkflowAsync(Workf
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   String name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString();
    *   workflowsClient.deleteWorkflowAsync(name).get();
@@ -620,6 +658,8 @@ public final OperationFuture deleteWorkflowAsync(Strin
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   DeleteWorkflowRequest request =
    *       DeleteWorkflowRequest.newBuilder()
@@ -645,6 +685,8 @@ public final OperationFuture deleteWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   DeleteWorkflowRequest request =
    *       DeleteWorkflowRequest.newBuilder()
@@ -670,6 +712,8 @@ public final OperationFuture deleteWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   DeleteWorkflowRequest request =
    *       DeleteWorkflowRequest.newBuilder()
@@ -694,6 +738,8 @@ public final UnaryCallable deleteWorkflowCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   Workflow workflow = Workflow.newBuilder().build();
    *   FieldMask updateMask = FieldMask.newBuilder().build();
@@ -722,6 +768,8 @@ public final OperationFuture updateWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   UpdateWorkflowRequest request =
    *       UpdateWorkflowRequest.newBuilder()
@@ -749,6 +797,8 @@ public final OperationFuture updateWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   UpdateWorkflowRequest request =
    *       UpdateWorkflowRequest.newBuilder()
@@ -776,6 +826,8 @@ public final OperationFuture updateWorkflowAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
    *   UpdateWorkflowRequest request =
    *       UpdateWorkflowRequest.newBuilder()
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/WorkflowsSettings.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/WorkflowsSettings.java
index 56baa219..c2b32290 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/WorkflowsSettings.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/WorkflowsSettings.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -55,6 +55,8 @@
  * 

For example, to set the total timeout of getWorkflow to 30 seconds: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * WorkflowsSettings.Builder workflowsSettingsBuilder = WorkflowsSettings.newBuilder();
  * workflowsSettingsBuilder
  *     .getWorkflowSettings()
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/package-info.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/package-info.java
index b8b30f39..2d08e312 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/package-info.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/package-info.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -25,6 +25,8 @@
  * 

Sample for WorkflowsClient: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
  *   WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
  *   Workflow response = workflowsClient.getWorkflow(name);
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/GrpcWorkflowsCallableFactory.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/GrpcWorkflowsCallableFactory.java
index 65a47915..387d4358 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/GrpcWorkflowsCallableFactory.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/GrpcWorkflowsCallableFactory.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/GrpcWorkflowsStub.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/GrpcWorkflowsStub.java
index 0d77245e..846bc42d 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/GrpcWorkflowsStub.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/GrpcWorkflowsStub.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/WorkflowsStub.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/WorkflowsStub.java
index 1dfaa2f5..8031bbde 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/WorkflowsStub.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/WorkflowsStub.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/WorkflowsStubSettings.java b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/WorkflowsStubSettings.java
index 76406682..47052d46 100644
--- a/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/WorkflowsStubSettings.java
+++ b/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1beta/stub/WorkflowsStubSettings.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -81,6 +81,8 @@
  * 

For example, to set the total timeout of getWorkflow to 30 seconds: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * WorkflowsStubSettings.Builder workflowsSettingsBuilder = WorkflowsStubSettings.newBuilder();
  * workflowsSettingsBuilder
  *     .getWorkflowSettings()
diff --git a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/MockWorkflows.java b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/MockWorkflows.java
index 37fc8ff3..cd57c1fc 100644
--- a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/MockWorkflows.java
+++ b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/MockWorkflows.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/MockWorkflowsImpl.java b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/MockWorkflowsImpl.java
index 1e1e6b8b..5d960a76 100644
--- a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/MockWorkflowsImpl.java
+++ b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/MockWorkflowsImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/WorkflowsClientTest.java b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/WorkflowsClientTest.java
index 619ffadc..a17462ea 100644
--- a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/WorkflowsClientTest.java
+++ b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1/WorkflowsClientTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/MockWorkflows.java b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/MockWorkflows.java
index 15128b2e..dbc8164d 100644
--- a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/MockWorkflows.java
+++ b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/MockWorkflows.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/MockWorkflowsImpl.java b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/MockWorkflowsImpl.java
index fc08de50..9291f31f 100644
--- a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/MockWorkflowsImpl.java
+++ b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/MockWorkflowsImpl.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/WorkflowsClientTest.java b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/WorkflowsClientTest.java
index 8821d02e..e719474f 100644
--- a/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/WorkflowsClientTest.java
+++ b/google-cloud-workflows/src/test/java/com/google/cloud/workflows/v1beta/WorkflowsClientTest.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/grpc-google-cloud-workflows-v1/pom.xml b/grpc-google-cloud-workflows-v1/pom.xml
index 846f35de..14f2f575 100644
--- a/grpc-google-cloud-workflows-v1/pom.xml
+++ b/grpc-google-cloud-workflows-v1/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   grpc-google-cloud-workflows-v1
-  2.1.10
+  2.2.0
   grpc-google-cloud-workflows-v1
   GRPC library for google-cloud-workflows
   
     com.google.cloud
     google-cloud-workflows-parent
-    2.1.10
+    2.2.0
   
   
     
diff --git a/grpc-google-cloud-workflows-v1beta/pom.xml b/grpc-google-cloud-workflows-v1beta/pom.xml
index 945a32a2..dadaf260 100644
--- a/grpc-google-cloud-workflows-v1beta/pom.xml
+++ b/grpc-google-cloud-workflows-v1beta/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   grpc-google-cloud-workflows-v1beta
-  0.7.10
+  0.8.0
   grpc-google-cloud-workflows-v1beta
   GRPC library for google-cloud-workflows
   
     com.google.cloud
     google-cloud-workflows-parent
-    2.1.10
+    2.2.0
   
   
     
diff --git a/pom.xml b/pom.xml
index ffbee178..0845a55e 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
   com.google.cloud
   google-cloud-workflows-parent
   pom
-  2.1.10
+  2.2.0
   Google Cloud Workflows Parent
   https://github.com/googleapis/java-
   
@@ -14,7 +14,7 @@
   
     com.google.cloud
     google-cloud-shared-config
-    1.3.2
+    1.4.0
   
 
   
@@ -61,33 +61,33 @@
       
         com.google.cloud
         google-cloud-workflows
-        2.1.10
+        2.2.0
       
       
         com.google.api.grpc
         proto-google-cloud-workflows-v1
-        2.1.10
+        2.2.0
       
       
         com.google.api.grpc
         grpc-google-cloud-workflows-v1
-        2.1.10
+        2.2.0
       
       
         com.google.api.grpc
         proto-google-cloud-workflows-v1beta
-        0.7.10
+        0.8.0
       
       
         com.google.api.grpc
         grpc-google-cloud-workflows-v1beta
-        0.7.10
+        0.8.0
       
 
       
         com.google.cloud
         google-cloud-shared-dependencies
-        2.10.0
+        2.12.0
         pom
         import
       
@@ -125,7 +125,7 @@
       
         org.apache.maven.plugins
         maven-project-info-reports-plugin
-        3.2.2
+        3.3.0
         
           
             
@@ -152,7 +152,7 @@
       
         org.apache.maven.plugins
         maven-javadoc-plugin
-        3.3.2
+        3.4.0
         
           
             html
diff --git a/proto-google-cloud-workflows-v1/pom.xml b/proto-google-cloud-workflows-v1/pom.xml
index 850c974e..6c18269a 100644
--- a/proto-google-cloud-workflows-v1/pom.xml
+++ b/proto-google-cloud-workflows-v1/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   proto-google-cloud-workflows-v1
-  2.1.10
+  2.2.0
   proto-google-cloud-workflows-v1
   Proto library for google-cloud-workflows
   
     com.google.cloud
     google-cloud-workflows-parent
-    2.1.10
+    2.2.0
   
   
     
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/CreateWorkflowRequest.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/CreateWorkflowRequest.java
index 2773cc90..b4b52d22 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/CreateWorkflowRequest.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/CreateWorkflowRequest.java
@@ -114,6 +114,8 @@ private CreateWorkflowRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/DeleteWorkflowRequest.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/DeleteWorkflowRequest.java
index e056622c..9956217e 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/DeleteWorkflowRequest.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/DeleteWorkflowRequest.java
@@ -90,6 +90,8 @@ private DeleteWorkflowRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/GetWorkflowRequest.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/GetWorkflowRequest.java
index 16acb053..b0845a35 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/GetWorkflowRequest.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/GetWorkflowRequest.java
@@ -89,6 +89,8 @@ private GetWorkflowRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/ListWorkflowsRequest.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/ListWorkflowsRequest.java
index 6e99ed3a..f51010c6 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/ListWorkflowsRequest.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/ListWorkflowsRequest.java
@@ -119,6 +119,8 @@ private ListWorkflowsRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/ListWorkflowsResponse.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/ListWorkflowsResponse.java
index cb76a3e4..a806d252 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/ListWorkflowsResponse.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/ListWorkflowsResponse.java
@@ -114,6 +114,8 @@ private ListWorkflowsResponse(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/LocationName.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/LocationName.java
index b2c3570f..3d5a334d 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/LocationName.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/LocationName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/OperationMetadata.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/OperationMetadata.java
index 1d5470e6..1fc44d0b 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/OperationMetadata.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/OperationMetadata.java
@@ -134,6 +134,8 @@ private OperationMetadata(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/UpdateWorkflowRequest.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/UpdateWorkflowRequest.java
index 72ac5475..dd8e99af 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/UpdateWorkflowRequest.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/UpdateWorkflowRequest.java
@@ -112,6 +112,8 @@ private UpdateWorkflowRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/Workflow.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/Workflow.java
index f4833a3d..6d4d23a4 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/Workflow.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/Workflow.java
@@ -186,6 +186,8 @@ private Workflow(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
@@ -801,7 +803,7 @@ public int getLabelsCount() {
   @java.lang.Override
   public boolean containsLabels(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     return internalGetLabels().getMap().containsKey(key);
   }
@@ -844,7 +846,7 @@ public java.util.Map getLabelsMap() {
   @java.lang.Override
   public java.lang.String getLabelsOrDefault(java.lang.String key, java.lang.String defaultValue) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map = internalGetLabels().getMap();
     return map.containsKey(key) ? map.get(key) : defaultValue;
@@ -865,7 +867,7 @@ public java.lang.String getLabelsOrDefault(java.lang.String key, java.lang.Strin
   @java.lang.Override
   public java.lang.String getLabelsOrThrow(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map = internalGetLabels().getMap();
     if (!map.containsKey(key)) {
@@ -2691,7 +2693,7 @@ public int getLabelsCount() {
     @java.lang.Override
     public boolean containsLabels(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       return internalGetLabels().getMap().containsKey(key);
     }
@@ -2735,7 +2737,7 @@ public java.util.Map getLabelsMap() {
     public java.lang.String getLabelsOrDefault(
         java.lang.String key, java.lang.String defaultValue) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map = internalGetLabels().getMap();
       return map.containsKey(key) ? map.get(key) : defaultValue;
@@ -2756,7 +2758,7 @@ public java.lang.String getLabelsOrDefault(
     @java.lang.Override
     public java.lang.String getLabelsOrThrow(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map = internalGetLabels().getMap();
       if (!map.containsKey(key)) {
@@ -2784,7 +2786,7 @@ public Builder clearLabels() {
      */
     public Builder removeLabels(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       internalGetMutableLabels().getMutableMap().remove(key);
       return this;
@@ -2809,11 +2811,12 @@ public java.util.Map getMutableLabels() {
      */
     public Builder putLabels(java.lang.String key, java.lang.String value) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       if (value == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map value");
       }
+
       internalGetMutableLabels().getMutableMap().put(key, value);
       return this;
     }
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/WorkflowName.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/WorkflowName.java
index 595515fe..b6c25004 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/WorkflowName.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/WorkflowName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/WorkflowOrBuilder.java b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/WorkflowOrBuilder.java
index d7536b62..7eb0533f 100644
--- a/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/WorkflowOrBuilder.java
+++ b/proto-google-cloud-workflows-v1/src/main/java/com/google/cloud/workflows/v1/WorkflowOrBuilder.java
@@ -323,7 +323,12 @@ public interface WorkflowOrBuilder
    *
    * map<string, string> labels = 8;
    */
-  java.lang.String getLabelsOrDefault(java.lang.String key, java.lang.String defaultValue);
+
+  /* nullable */
+  java.lang.String getLabelsOrDefault(
+      java.lang.String key,
+      /* nullable */
+      java.lang.String defaultValue);
   /**
    *
    *
diff --git a/proto-google-cloud-workflows-v1beta/pom.xml b/proto-google-cloud-workflows-v1beta/pom.xml
index d32344ee..55902095 100644
--- a/proto-google-cloud-workflows-v1beta/pom.xml
+++ b/proto-google-cloud-workflows-v1beta/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   proto-google-cloud-workflows-v1beta
-  0.7.10
+  0.8.0
   proto-google-cloud-workflows-v1beta
   Proto library for google-cloud-workflows
   
     com.google.cloud
     google-cloud-workflows-parent
-    2.1.10
+    2.2.0
   
   
     
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/CreateWorkflowRequest.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/CreateWorkflowRequest.java
index 84e8334e..e6e502e7 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/CreateWorkflowRequest.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/CreateWorkflowRequest.java
@@ -114,6 +114,8 @@ private CreateWorkflowRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/DeleteWorkflowRequest.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/DeleteWorkflowRequest.java
index a37ce019..05ca936e 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/DeleteWorkflowRequest.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/DeleteWorkflowRequest.java
@@ -90,6 +90,8 @@ private DeleteWorkflowRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/GetWorkflowRequest.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/GetWorkflowRequest.java
index de148dd5..849ded9c 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/GetWorkflowRequest.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/GetWorkflowRequest.java
@@ -89,6 +89,8 @@ private GetWorkflowRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/ListWorkflowsRequest.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/ListWorkflowsRequest.java
index c5e0533c..f6724a77 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/ListWorkflowsRequest.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/ListWorkflowsRequest.java
@@ -119,6 +119,8 @@ private ListWorkflowsRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/ListWorkflowsResponse.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/ListWorkflowsResponse.java
index 22ef10db..333e4d29 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/ListWorkflowsResponse.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/ListWorkflowsResponse.java
@@ -114,6 +114,8 @@ private ListWorkflowsResponse(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/LocationName.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/LocationName.java
index 9cde5d78..3e7e7f8b 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/LocationName.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/LocationName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/OperationMetadata.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/OperationMetadata.java
index fe5022d0..4966ef9d 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/OperationMetadata.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/OperationMetadata.java
@@ -134,6 +134,8 @@ private OperationMetadata(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/UpdateWorkflowRequest.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/UpdateWorkflowRequest.java
index 7a746101..24edcf5d 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/UpdateWorkflowRequest.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/UpdateWorkflowRequest.java
@@ -112,6 +112,8 @@ private UpdateWorkflowRequest(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/Workflow.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/Workflow.java
index 9b45f704..8fce68b8 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/Workflow.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/Workflow.java
@@ -186,6 +186,8 @@ private Workflow(
       }
     } catch (com.google.protobuf.InvalidProtocolBufferException e) {
       throw e.setUnfinishedMessage(this);
+    } catch (com.google.protobuf.UninitializedMessageException e) {
+      throw e.asInvalidProtocolBufferException().setUnfinishedMessage(this);
     } catch (java.io.IOException e) {
       throw new com.google.protobuf.InvalidProtocolBufferException(e).setUnfinishedMessage(this);
     } finally {
@@ -801,7 +803,7 @@ public int getLabelsCount() {
   @java.lang.Override
   public boolean containsLabels(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     return internalGetLabels().getMap().containsKey(key);
   }
@@ -844,7 +846,7 @@ public java.util.Map getLabelsMap() {
   @java.lang.Override
   public java.lang.String getLabelsOrDefault(java.lang.String key, java.lang.String defaultValue) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map = internalGetLabels().getMap();
     return map.containsKey(key) ? map.get(key) : defaultValue;
@@ -865,7 +867,7 @@ public java.lang.String getLabelsOrDefault(java.lang.String key, java.lang.Strin
   @java.lang.Override
   public java.lang.String getLabelsOrThrow(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map = internalGetLabels().getMap();
     if (!map.containsKey(key)) {
@@ -2694,7 +2696,7 @@ public int getLabelsCount() {
     @java.lang.Override
     public boolean containsLabels(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       return internalGetLabels().getMap().containsKey(key);
     }
@@ -2738,7 +2740,7 @@ public java.util.Map getLabelsMap() {
     public java.lang.String getLabelsOrDefault(
         java.lang.String key, java.lang.String defaultValue) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map = internalGetLabels().getMap();
       return map.containsKey(key) ? map.get(key) : defaultValue;
@@ -2759,7 +2761,7 @@ public java.lang.String getLabelsOrDefault(
     @java.lang.Override
     public java.lang.String getLabelsOrThrow(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map = internalGetLabels().getMap();
       if (!map.containsKey(key)) {
@@ -2787,7 +2789,7 @@ public Builder clearLabels() {
      */
     public Builder removeLabels(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       internalGetMutableLabels().getMutableMap().remove(key);
       return this;
@@ -2812,11 +2814,12 @@ public java.util.Map getMutableLabels() {
      */
     public Builder putLabels(java.lang.String key, java.lang.String value) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       if (value == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map value");
       }
+
       internalGetMutableLabels().getMutableMap().put(key, value);
       return this;
     }
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/WorkflowName.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/WorkflowName.java
index 64084c92..72fa5aa0 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/WorkflowName.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/WorkflowName.java
@@ -1,5 +1,5 @@
 /*
- * Copyright 2021 Google LLC
+ * Copyright 2022 Google LLC
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
diff --git a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/WorkflowOrBuilder.java b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/WorkflowOrBuilder.java
index a176ea55..9ae9b9c0 100644
--- a/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/WorkflowOrBuilder.java
+++ b/proto-google-cloud-workflows-v1beta/src/main/java/com/google/cloud/workflows/v1beta/WorkflowOrBuilder.java
@@ -323,7 +323,12 @@ public interface WorkflowOrBuilder
    *
    * map<string, string> labels = 8;
    */
-  java.lang.String getLabelsOrDefault(java.lang.String key, java.lang.String defaultValue);
+
+  /* nullable */
+  java.lang.String getLabelsOrDefault(
+      java.lang.String key,
+      /* nullable */
+      java.lang.String defaultValue);
   /**
    *
    *
diff --git a/samples/pom.xml b/samples/pom.xml
index ce2f4128..0f33bfed 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -46,7 +46,7 @@
       
         org.sonatype.plugins
         nexus-staging-maven-plugin
-        1.6.12
+        1.6.13
         
           true
         
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 6e9254c2..39730fa7 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
     
       com.google.cloud
       google-cloud-workflows
-      2.1.10
+      2.2.0
     
     
 
diff --git a/versions.txt b/versions.txt
index 87111a8a..671787c8 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,8 +1,8 @@
 # Format:
 # module:released-version:current-version
 
-google-cloud-workflows:2.1.10:2.1.10
-grpc-google-cloud-workflows-v1beta:0.7.10:0.7.10
-grpc-google-cloud-workflows-v1:2.1.10:2.1.10
-proto-google-cloud-workflows-v1beta:0.7.10:0.7.10
-proto-google-cloud-workflows-v1:2.1.10:2.1.10
+google-cloud-workflows:2.2.0:2.2.0
+grpc-google-cloud-workflows-v1beta:0.8.0:0.8.0
+grpc-google-cloud-workflows-v1:2.2.0:2.2.0
+proto-google-cloud-workflows-v1beta:0.8.0:0.8.0
+proto-google-cloud-workflows-v1:2.2.0:2.2.0