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/.github/release-please.yml b/.github/release-please.yml index 118a4019..a9135e1a 100644 --- a/.github/release-please.yml +++ b/.github/release-please.yml @@ -10,3 +10,7 @@ branches: handleGHRelease: true releaseType: java-backport branch: 2.0.x + - bumpMinorPreMajor: true + handleGHRelease: true + releaseType: java-backport + branch: 2.4.x diff --git a/.github/sync-repo-settings.yaml b/.github/sync-repo-settings.yaml index e5b05793..b3e01053 100644 --- a/.github/sync-repo-settings.yaml +++ b/.github/sync-repo-settings.yaml @@ -48,6 +48,21 @@ branchProtectionRules: - 'Kokoro - Test: Integration' - cla/google - OwlBot Post Processor + - pattern: 2.4.x + isAdminEnforced: true + requiredApprovingReviewCount: 1 + requiresCodeOwnerReviews: true + requiresStrictStatusChecks: false + requiredStatusCheckContexts: + - dependencies (8) + - dependencies (11) + - lint + - clirr + - units (8) + - units (11) + - 'Kokoro - Test: Integration' + - cla/google + - OwlBot Post Processor permissionRules: - team: yoshi-admins permission: admin diff --git a/.kokoro/build.sh b/.kokoro/build.sh index a943453c..9b8017d3 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 a0526cce..a27a6917 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,18 @@ # Changelog +## [2.5.0](https://github.com/googleapis/java-redis/compare/v2.4.1...v2.5.0) (2022-05-19) + + +### Features + +* add build scripts for native image testing in Java 17 ([#1440](https://github.com/googleapis/java-redis/issues/1440)) ([#647](https://github.com/googleapis/java-redis/issues/647)) ([3e657a2](https://github.com/googleapis/java-redis/commit/3e657a2a7beaeb4d428d675940c41e41df39821f)) +* next release from main branch is 2.4.1 ([#641](https://github.com/googleapis/java-redis/issues/641)) ([b1ddca7](https://github.com/googleapis/java-redis/commit/b1ddca73ba1183d9c97cd2419db64599a66fabd2)) + + +### Dependencies + +* update dependency com.google.cloud:google-cloud-shared-dependencies to v2.12.0 ([#646](https://github.com/googleapis/java-redis/issues/646)) ([0ba1b4d](https://github.com/googleapis/java-redis/commit/0ba1b4d139be2bb3e558ab597faac53f7e56656d)) + ### [2.4.1](https://github.com/googleapis/java-redis/compare/v2.4.0...v2.4.1) (2022-04-15) diff --git a/README.md b/README.md index 9c1cdbd1..58afd464 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ If you are using Maven with [BOM][libraries-bom], add this to your pom.xml file com.google.cloud libraries-bom - 25.1.0 + 25.3.0 pom import @@ -41,7 +41,7 @@ If you are using Maven without BOM, add this to your dependencies: com.google.cloud google-cloud-redis - 2.4.0 + 2.4.1 ``` @@ -49,20 +49,20 @@ If you are using Maven without BOM, add this to your dependencies: If you are using Gradle 5.x or later, add this to your dependencies ```Groovy -implementation platform('com.google.cloud:libraries-bom:25.1.0') +implementation platform('com.google.cloud:libraries-bom:25.3.0') implementation 'com.google.cloud:google-cloud-redis' ``` If you are using Gradle without BOM, add this to your dependencies ```Groovy -implementation 'com.google.cloud:google-cloud-redis:2.4.0' +implementation 'com.google.cloud:google-cloud-redis:2.4.1' ``` If you are using SBT, add this to your dependencies ```Scala -libraryDependencies += "com.google.cloud" % "google-cloud-redis" % "2.4.0" +libraryDependencies += "com.google.cloud" % "google-cloud-redis" % "2.4.1" ``` ## Authentication diff --git a/google-cloud-redis-bom/pom.xml b/google-cloud-redis-bom/pom.xml index 34a4a210..338223ca 100644 --- a/google-cloud-redis-bom/pom.xml +++ b/google-cloud-redis-bom/pom.xml @@ -3,12 +3,12 @@ 4.0.0 com.google.cloud google-cloud-redis-bom - 2.4.1 + 2.5.0 pom com.google.cloud google-cloud-shared-config - 1.3.2 + 1.4.0 Google Cloud Redis BOM @@ -52,27 +52,27 @@ com.google.cloud google-cloud-redis - 2.4.1 + 2.5.0 com.google.api.grpc grpc-google-cloud-redis-v1beta1 - 0.92.1 + 0.93.0 com.google.api.grpc grpc-google-cloud-redis-v1 - 2.4.1 + 2.5.0 com.google.api.grpc proto-google-cloud-redis-v1 - 2.4.1 + 2.5.0 com.google.api.grpc proto-google-cloud-redis-v1beta1 - 0.92.1 + 0.93.0 diff --git a/google-cloud-redis/pom.xml b/google-cloud-redis/pom.xml index 8755417f..6f46347e 100644 --- a/google-cloud-redis/pom.xml +++ b/google-cloud-redis/pom.xml @@ -3,7 +3,7 @@ 4.0.0 com.google.cloud google-cloud-redis - 2.4.1 + 2.5.0 jar Google Cloud Redis https://github.com/googleapis/java-redis @@ -11,7 +11,7 @@ com.google.cloud google-cloud-redis-parent - 2.4.1 + 2.5.0 google-cloud-redis diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisClient.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisClient.java index 6a16ece0..50eae77e 100644 --- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisClient.java +++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisClient.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. @@ -67,6 +67,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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
  *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
  *   Instance response = cloudRedisClient.getInstance(name);
@@ -102,6 +104,8 @@
  * 

To customize credentials: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * CloudRedisSettings cloudRedisSettings =
  *     CloudRedisSettings.newBuilder()
  *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
@@ -112,6 +116,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.
  * CloudRedisSettings cloudRedisSettings =
  *     CloudRedisSettings.newBuilder().setEndpoint(myEndpoint).build();
  * CloudRedisClient cloudRedisClient = CloudRedisClient.create(cloudRedisSettings);
@@ -198,6 +204,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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
    *   for (Instance element : cloudRedisClient.listInstances(parent).iterateAll()) {
@@ -235,6 +243,8 @@ public final ListInstancesPagedResponse listInstances(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
    *   for (Instance element : cloudRedisClient.listInstances(parent).iterateAll()) {
@@ -269,6 +279,8 @@ public final ListInstancesPagedResponse listInstances(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ListInstancesRequest request =
    *       ListInstancesRequest.newBuilder()
@@ -306,6 +318,8 @@ public final ListInstancesPagedResponse listInstances(ListInstancesRequest reque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ListInstancesRequest request =
    *       ListInstancesRequest.newBuilder()
@@ -344,6 +358,8 @@ public final ListInstancesPagedResponse listInstances(ListInstancesRequest reque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ListInstancesRequest request =
    *       ListInstancesRequest.newBuilder()
@@ -377,6 +393,8 @@ public final UnaryCallable listInst
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   Instance response = cloudRedisClient.getInstance(name);
@@ -401,6 +419,8 @@ public final Instance getInstance(InstanceName name) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   Instance response = cloudRedisClient.getInstance(name);
@@ -424,6 +444,8 @@ public final Instance getInstance(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   GetInstanceRequest request =
    *       GetInstanceRequest.newBuilder()
@@ -447,6 +469,8 @@ public final Instance getInstance(GetInstanceRequest request) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   GetInstanceRequest request =
    *       GetInstanceRequest.newBuilder()
@@ -470,6 +494,8 @@ public final UnaryCallable getInstanceCallable() {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   InstanceAuthString response = cloudRedisClient.getInstanceAuthString(name);
@@ -497,6 +523,8 @@ public final InstanceAuthString getInstanceAuthString(InstanceName name) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   InstanceAuthString response = cloudRedisClient.getInstanceAuthString(name);
@@ -522,6 +550,8 @@ public final InstanceAuthString getInstanceAuthString(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   GetInstanceAuthStringRequest request =
    *       GetInstanceAuthStringRequest.newBuilder()
@@ -546,6 +576,8 @@ public final InstanceAuthString getInstanceAuthString(GetInstanceAuthStringReque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   GetInstanceAuthStringRequest request =
    *       GetInstanceAuthStringRequest.newBuilder()
@@ -581,6 +613,8 @@ public final InstanceAuthString getInstanceAuthString(GetInstanceAuthStringReque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
    *   String instanceId = "instanceId902024336";
@@ -633,6 +667,8 @@ public final OperationFuture createInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
    *   String instanceId = "instanceId902024336";
@@ -685,6 +721,8 @@ public final OperationFuture createInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   CreateInstanceRequest request =
    *       CreateInstanceRequest.newBuilder()
@@ -722,6 +760,8 @@ public final OperationFuture createInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   CreateInstanceRequest request =
    *       CreateInstanceRequest.newBuilder()
@@ -759,6 +799,8 @@ public final OperationFuture createInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   CreateInstanceRequest request =
    *       CreateInstanceRequest.newBuilder()
@@ -787,6 +829,8 @@ public final UnaryCallable createInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   FieldMask updateMask = FieldMask.newBuilder().build();
    *   Instance instance = Instance.newBuilder().build();
@@ -820,6 +864,8 @@ public final OperationFuture updateInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpdateInstanceRequest request =
    *       UpdateInstanceRequest.newBuilder()
@@ -849,6 +895,8 @@ public final OperationFuture updateInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpdateInstanceRequest request =
    *       UpdateInstanceRequest.newBuilder()
@@ -878,6 +926,8 @@ public final OperationFuture updateInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpdateInstanceRequest request =
    *       UpdateInstanceRequest.newBuilder()
@@ -901,6 +951,8 @@ public final UnaryCallable updateInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   String redisVersion = "redisVersion-1972584739";
@@ -931,6 +983,8 @@ public final OperationFuture upgradeInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   String redisVersion = "redisVersion-1972584739";
@@ -958,6 +1012,8 @@ public final OperationFuture upgradeInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpgradeInstanceRequest request =
    *       UpgradeInstanceRequest.newBuilder()
@@ -983,6 +1039,8 @@ public final OperationFuture upgradeInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpgradeInstanceRequest request =
    *       UpgradeInstanceRequest.newBuilder()
@@ -1008,6 +1066,8 @@ public final OperationFuture upgradeInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpgradeInstanceRequest request =
    *       UpgradeInstanceRequest.newBuilder()
@@ -1037,6 +1097,8 @@ public final UnaryCallable upgradeInstanceCal
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = "name3373707";
    *   InputConfig inputConfig = InputConfig.newBuilder().build();
@@ -1070,6 +1132,8 @@ public final OperationFuture importInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ImportInstanceRequest request =
    *       ImportInstanceRequest.newBuilder()
@@ -1101,6 +1165,8 @@ public final OperationFuture importInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ImportInstanceRequest request =
    *       ImportInstanceRequest.newBuilder()
@@ -1132,6 +1198,8 @@ public final OperationFuture importInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ImportInstanceRequest request =
    *       ImportInstanceRequest.newBuilder()
@@ -1160,6 +1228,8 @@ public final UnaryCallable importInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = "name3373707";
    *   OutputConfig outputConfig = OutputConfig.newBuilder().build();
@@ -1192,6 +1262,8 @@ public final OperationFuture exportInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ExportInstanceRequest request =
    *       ExportInstanceRequest.newBuilder()
@@ -1222,6 +1294,8 @@ public final OperationFuture exportInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ExportInstanceRequest request =
    *       ExportInstanceRequest.newBuilder()
@@ -1252,6 +1326,8 @@ public final OperationFuture exportInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ExportInstanceRequest request =
    *       ExportInstanceRequest.newBuilder()
@@ -1276,6 +1352,8 @@ public final UnaryCallable exportInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   FailoverInstanceRequest.DataProtectionMode dataProtectionMode =
@@ -1309,6 +1387,8 @@ public final OperationFuture failoverInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   FailoverInstanceRequest.DataProtectionMode dataProtectionMode =
@@ -1342,6 +1422,8 @@ public final OperationFuture failoverInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   FailoverInstanceRequest request =
    *       FailoverInstanceRequest.newBuilder()
@@ -1367,6 +1449,8 @@ public final OperationFuture failoverInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   FailoverInstanceRequest request =
    *       FailoverInstanceRequest.newBuilder()
@@ -1392,6 +1476,8 @@ public final OperationFuture failoverInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   FailoverInstanceRequest request =
    *       FailoverInstanceRequest.newBuilder()
@@ -1414,6 +1500,8 @@ public final UnaryCallable failoverInstanceC
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   cloudRedisClient.deleteInstanceAsync(name).get();
@@ -1438,6 +1526,8 @@ public final OperationFuture deleteInstanceAsync(Insta
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   cloudRedisClient.deleteInstanceAsync(name).get();
@@ -1461,6 +1551,8 @@ public final OperationFuture deleteInstanceAsync(Strin
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   DeleteInstanceRequest request =
    *       DeleteInstanceRequest.newBuilder()
@@ -1485,6 +1577,8 @@ public final OperationFuture deleteInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   DeleteInstanceRequest request =
    *       DeleteInstanceRequest.newBuilder()
@@ -1509,6 +1603,8 @@ public final OperationFuture deleteInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   DeleteInstanceRequest request =
    *       DeleteInstanceRequest.newBuilder()
@@ -1531,6 +1627,8 @@ public final UnaryCallable deleteInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   RescheduleMaintenanceRequest.RescheduleType rescheduleType =
@@ -1570,6 +1668,8 @@ public final OperationFuture rescheduleMaintenanceA
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   RescheduleMaintenanceRequest.RescheduleType rescheduleType =
@@ -1609,6 +1709,8 @@ public final OperationFuture rescheduleMaintenanceA
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   RescheduleMaintenanceRequest request =
    *       RescheduleMaintenanceRequest.newBuilder()
@@ -1634,6 +1736,8 @@ public final OperationFuture rescheduleMaintenanceA
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   RescheduleMaintenanceRequest request =
    *       RescheduleMaintenanceRequest.newBuilder()
@@ -1659,6 +1763,8 @@ public final OperationFuture rescheduleMaintenanceA
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   RescheduleMaintenanceRequest request =
    *       RescheduleMaintenanceRequest.newBuilder()
diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisSettings.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisSettings.java
index 10faf478..34734bc6 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisSettings.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/CloudRedisSettings.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 getInstance to 30 seconds: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * CloudRedisSettings.Builder cloudRedisSettingsBuilder = CloudRedisSettings.newBuilder();
  * cloudRedisSettingsBuilder
  *     .getInstanceSettings()
diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/package-info.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/package-info.java
index 40caea49..9fdd69e4 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/package-info.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/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.
@@ -45,6 +45,8 @@
  * 

Sample for CloudRedisClient: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
  *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
  *   Instance response = cloudRedisClient.getInstance(name);
diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStub.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStub.java
index fe1d9144..031749a4 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStub.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStub.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-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStubSettings.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStubSettings.java
index e427b703..35259367 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStubSettings.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/CloudRedisStubSettings.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.
@@ -88,6 +88,8 @@
  * 

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

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * CloudRedisStubSettings.Builder cloudRedisSettingsBuilder = CloudRedisStubSettings.newBuilder();
  * cloudRedisSettingsBuilder
  *     .getInstanceSettings()
diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/GrpcCloudRedisCallableFactory.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/GrpcCloudRedisCallableFactory.java
index 3ef5f0d0..9b7a7a4b 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/GrpcCloudRedisCallableFactory.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/GrpcCloudRedisCallableFactory.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-redis/src/main/java/com/google/cloud/redis/v1/stub/GrpcCloudRedisStub.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/GrpcCloudRedisStub.java
index 1cfe1e46..528e750a 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/GrpcCloudRedisStub.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1/stub/GrpcCloudRedisStub.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-redis/src/main/java/com/google/cloud/redis/v1beta1/CloudRedisClient.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/CloudRedisClient.java
index 368e68b6..da68b278 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/CloudRedisClient.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/CloudRedisClient.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.
@@ -68,6 +68,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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
  *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
  *   Instance response = cloudRedisClient.getInstance(name);
@@ -103,6 +105,8 @@
  * 

To customize credentials: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * CloudRedisSettings cloudRedisSettings =
  *     CloudRedisSettings.newBuilder()
  *         .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
@@ -113,6 +117,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.
  * CloudRedisSettings cloudRedisSettings =
  *     CloudRedisSettings.newBuilder().setEndpoint(myEndpoint).build();
  * CloudRedisClient cloudRedisClient = CloudRedisClient.create(cloudRedisSettings);
@@ -200,6 +206,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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
    *   for (Instance element : cloudRedisClient.listInstances(parent).iterateAll()) {
@@ -237,6 +245,8 @@ public final ListInstancesPagedResponse listInstances(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
    *   for (Instance element : cloudRedisClient.listInstances(parent).iterateAll()) {
@@ -271,6 +281,8 @@ public final ListInstancesPagedResponse listInstances(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ListInstancesRequest request =
    *       ListInstancesRequest.newBuilder()
@@ -308,6 +320,8 @@ public final ListInstancesPagedResponse listInstances(ListInstancesRequest reque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ListInstancesRequest request =
    *       ListInstancesRequest.newBuilder()
@@ -346,6 +360,8 @@ public final ListInstancesPagedResponse listInstances(ListInstancesRequest reque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ListInstancesRequest request =
    *       ListInstancesRequest.newBuilder()
@@ -379,6 +395,8 @@ public final UnaryCallable listInst
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   Instance response = cloudRedisClient.getInstance(name);
@@ -403,6 +421,8 @@ public final Instance getInstance(InstanceName name) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   Instance response = cloudRedisClient.getInstance(name);
@@ -426,6 +446,8 @@ public final Instance getInstance(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   GetInstanceRequest request =
    *       GetInstanceRequest.newBuilder()
@@ -449,6 +471,8 @@ public final Instance getInstance(GetInstanceRequest request) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   GetInstanceRequest request =
    *       GetInstanceRequest.newBuilder()
@@ -472,6 +496,8 @@ public final UnaryCallable getInstanceCallable() {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   InstanceAuthString response = cloudRedisClient.getInstanceAuthString(name);
@@ -499,6 +525,8 @@ public final InstanceAuthString getInstanceAuthString(InstanceName name) {
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   InstanceAuthString response = cloudRedisClient.getInstanceAuthString(name);
@@ -524,6 +552,8 @@ public final InstanceAuthString getInstanceAuthString(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   GetInstanceAuthStringRequest request =
    *       GetInstanceAuthStringRequest.newBuilder()
@@ -548,6 +578,8 @@ public final InstanceAuthString getInstanceAuthString(GetInstanceAuthStringReque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   GetInstanceAuthStringRequest request =
    *       GetInstanceAuthStringRequest.newBuilder()
@@ -583,6 +615,8 @@ public final InstanceAuthString getInstanceAuthString(GetInstanceAuthStringReque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]");
    *   String instanceId = "instanceId902024336";
@@ -635,6 +669,8 @@ public final OperationFuture createInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString();
    *   String instanceId = "instanceId902024336";
@@ -687,6 +723,8 @@ public final OperationFuture createInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   CreateInstanceRequest request =
    *       CreateInstanceRequest.newBuilder()
@@ -723,6 +761,8 @@ public final OperationFuture createInstanceAsync(CreateInstanceRe
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   CreateInstanceRequest request =
    *       CreateInstanceRequest.newBuilder()
@@ -760,6 +800,8 @@ public final OperationFuture createInstanceAsync(CreateInstanceRe
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   CreateInstanceRequest request =
    *       CreateInstanceRequest.newBuilder()
@@ -788,6 +830,8 @@ public final UnaryCallable createInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   FieldMask updateMask = FieldMask.newBuilder().build();
    *   Instance instance = Instance.newBuilder().build();
@@ -821,6 +865,8 @@ public final OperationFuture updateInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpdateInstanceRequest request =
    *       UpdateInstanceRequest.newBuilder()
@@ -849,6 +895,8 @@ public final OperationFuture updateInstanceAsync(UpdateInstanceRe
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpdateInstanceRequest request =
    *       UpdateInstanceRequest.newBuilder()
@@ -878,6 +926,8 @@ public final OperationFuture updateInstanceAsync(UpdateInstanceRe
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpdateInstanceRequest request =
    *       UpdateInstanceRequest.newBuilder()
@@ -901,6 +951,8 @@ public final UnaryCallable updateInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   String redisVersion = "redisVersion-1972584739";
@@ -931,6 +983,8 @@ public final OperationFuture upgradeInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   String redisVersion = "redisVersion-1972584739";
@@ -958,6 +1012,8 @@ public final OperationFuture upgradeInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpgradeInstanceRequest request =
    *       UpgradeInstanceRequest.newBuilder()
@@ -982,6 +1038,8 @@ public final OperationFuture upgradeInstanceAsync(UpgradeInstance
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpgradeInstanceRequest request =
    *       UpgradeInstanceRequest.newBuilder()
@@ -1007,6 +1065,8 @@ public final OperationFuture upgradeInstanceAsync(UpgradeInstance
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   UpgradeInstanceRequest request =
    *       UpgradeInstanceRequest.newBuilder()
@@ -1036,6 +1096,8 @@ public final UnaryCallable upgradeInstanceCal
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = "name3373707";
    *   InputConfig inputConfig = InputConfig.newBuilder().build();
@@ -1069,6 +1131,8 @@ public final OperationFuture importInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ImportInstanceRequest request =
    *       ImportInstanceRequest.newBuilder()
@@ -1099,6 +1163,8 @@ public final OperationFuture importInstanceAsync(ImportInstanceRe
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ImportInstanceRequest request =
    *       ImportInstanceRequest.newBuilder()
@@ -1130,6 +1196,8 @@ public final OperationFuture importInstanceAsync(ImportInstanceRe
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ImportInstanceRequest request =
    *       ImportInstanceRequest.newBuilder()
@@ -1158,6 +1226,8 @@ public final UnaryCallable importInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = "name3373707";
    *   OutputConfig outputConfig = OutputConfig.newBuilder().build();
@@ -1190,6 +1260,8 @@ public final OperationFuture exportInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ExportInstanceRequest request =
    *       ExportInstanceRequest.newBuilder()
@@ -1219,6 +1291,8 @@ public final OperationFuture exportInstanceAsync(ExportInstanceRe
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ExportInstanceRequest request =
    *       ExportInstanceRequest.newBuilder()
@@ -1249,6 +1323,8 @@ public final OperationFuture exportInstanceAsync(ExportInstanceRe
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   ExportInstanceRequest request =
    *       ExportInstanceRequest.newBuilder()
@@ -1273,6 +1349,8 @@ public final UnaryCallable exportInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   FailoverInstanceRequest.DataProtectionMode dataProtectionMode =
@@ -1306,6 +1384,8 @@ public final OperationFuture failoverInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   FailoverInstanceRequest.DataProtectionMode dataProtectionMode =
@@ -1339,6 +1419,8 @@ public final OperationFuture failoverInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   FailoverInstanceRequest request =
    *       FailoverInstanceRequest.newBuilder()
@@ -1364,6 +1446,8 @@ public final OperationFuture failoverInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   FailoverInstanceRequest request =
    *       FailoverInstanceRequest.newBuilder()
@@ -1389,6 +1473,8 @@ public final OperationFuture failoverInstanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   FailoverInstanceRequest request =
    *       FailoverInstanceRequest.newBuilder()
@@ -1411,6 +1497,8 @@ public final UnaryCallable failoverInstanceC
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   cloudRedisClient.deleteInstanceAsync(name).get();
@@ -1435,6 +1523,8 @@ public final OperationFuture deleteInstanceAsync(InstanceName name)
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   cloudRedisClient.deleteInstanceAsync(name).get();
@@ -1458,6 +1548,8 @@ public final OperationFuture deleteInstanceAsync(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 (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   DeleteInstanceRequest request =
    *       DeleteInstanceRequest.newBuilder()
@@ -1481,6 +1573,8 @@ public final OperationFuture deleteInstanceAsync(DeleteInstanceReque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   DeleteInstanceRequest request =
    *       DeleteInstanceRequest.newBuilder()
@@ -1505,6 +1599,8 @@ public final OperationFuture deleteInstanceAsync(DeleteInstanceReque
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   DeleteInstanceRequest request =
    *       DeleteInstanceRequest.newBuilder()
@@ -1527,6 +1623,8 @@ public final UnaryCallable deleteInstanceCalla
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
    *   RescheduleMaintenanceRequest.RescheduleType rescheduleType =
@@ -1566,6 +1664,8 @@ public final OperationFuture rescheduleMaintenanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   String name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]").toString();
    *   RescheduleMaintenanceRequest.RescheduleType rescheduleType =
@@ -1605,6 +1705,8 @@ public final OperationFuture rescheduleMaintenanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   RescheduleMaintenanceRequest request =
    *       RescheduleMaintenanceRequest.newBuilder()
@@ -1630,6 +1732,8 @@ public final OperationFuture rescheduleMaintenanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   RescheduleMaintenanceRequest request =
    *       RescheduleMaintenanceRequest.newBuilder()
@@ -1655,6 +1759,8 @@ public final OperationFuture rescheduleMaintenanceAsync(
    * 

Sample code: * *

{@code
+   * // This snippet has been automatically generated for illustrative purposes only.
+   * // It may require modifications to work in your environment.
    * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
    *   RescheduleMaintenanceRequest request =
    *       RescheduleMaintenanceRequest.newBuilder()
diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/CloudRedisSettings.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/CloudRedisSettings.java
index 8a048725..1ec7406b 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/CloudRedisSettings.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/CloudRedisSettings.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.
@@ -56,6 +56,8 @@
  * 

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

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * CloudRedisSettings.Builder cloudRedisSettingsBuilder = CloudRedisSettings.newBuilder();
  * cloudRedisSettingsBuilder
  *     .getInstanceSettings()
diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/package-info.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/package-info.java
index cd7feb7b..9b934c1d 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/package-info.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/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.
@@ -45,6 +45,8 @@
  * 

Sample for CloudRedisClient: * *

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * try (CloudRedisClient cloudRedisClient = CloudRedisClient.create()) {
  *   InstanceName name = InstanceName.of("[PROJECT]", "[LOCATION]", "[INSTANCE]");
  *   Instance response = cloudRedisClient.getInstance(name);
diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/CloudRedisStub.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/CloudRedisStub.java
index 9281dfa3..5c9f2594 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/CloudRedisStub.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/CloudRedisStub.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-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/CloudRedisStubSettings.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/CloudRedisStubSettings.java
index 71565b33..05ce9661 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/CloudRedisStubSettings.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/CloudRedisStubSettings.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.
@@ -88,6 +88,8 @@
  * 

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

{@code
+ * // This snippet has been automatically generated for illustrative purposes only.
+ * // It may require modifications to work in your environment.
  * CloudRedisStubSettings.Builder cloudRedisSettingsBuilder = CloudRedisStubSettings.newBuilder();
  * cloudRedisSettingsBuilder
  *     .getInstanceSettings()
diff --git a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/GrpcCloudRedisCallableFactory.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/GrpcCloudRedisCallableFactory.java
index 3f8b2118..7a58d242 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/GrpcCloudRedisCallableFactory.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/GrpcCloudRedisCallableFactory.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-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/GrpcCloudRedisStub.java b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/GrpcCloudRedisStub.java
index 92238868..f1ea1032 100644
--- a/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/GrpcCloudRedisStub.java
+++ b/google-cloud-redis/src/main/java/com/google/cloud/redis/v1beta1/stub/GrpcCloudRedisStub.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-redis/src/test/java/com/google/cloud/redis/v1/CloudRedisClientTest.java b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/CloudRedisClientTest.java
index 7d5b576a..01d8d30c 100644
--- a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/CloudRedisClientTest.java
+++ b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/CloudRedisClientTest.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-redis/src/test/java/com/google/cloud/redis/v1/MockCloudRedis.java b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/MockCloudRedis.java
index 4a3372cd..8f7d9f0f 100644
--- a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/MockCloudRedis.java
+++ b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/MockCloudRedis.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-redis/src/test/java/com/google/cloud/redis/v1/MockCloudRedisImpl.java b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/MockCloudRedisImpl.java
index 7f8a63cd..af2a779a 100644
--- a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/MockCloudRedisImpl.java
+++ b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/MockCloudRedisImpl.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-redis/src/test/java/com/google/cloud/redis/v1/it/ITSystemTest.java b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/it/ITSystemTest.java
index 757f30fb..3e67d7db 100644
--- a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/it/ITSystemTest.java
+++ b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1/it/ITSystemTest.java
@@ -46,7 +46,7 @@ public class ITSystemTest {
 
   private static final Logger LOG = Logger.getLogger(ITSystemTest.class.getName());
   private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId();
-  private static final String NETWORK = System.getProperty("redis.network", "default");
+  private static final String NETWORK = System.getProperty("redis.network", "redis-vpc");
   private static final String INSTANCE =
       "test-instance-" + UUID.randomUUID().toString().substring(0, 8);
   private static final String LOCATION = "us-central1";
diff --git a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/CloudRedisClientTest.java b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/CloudRedisClientTest.java
index 09011d99..75d10103 100644
--- a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/CloudRedisClientTest.java
+++ b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/CloudRedisClientTest.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-redis/src/test/java/com/google/cloud/redis/v1beta1/MockCloudRedis.java b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/MockCloudRedis.java
index 61d9b1ea..17eb9547 100644
--- a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/MockCloudRedis.java
+++ b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/MockCloudRedis.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-redis/src/test/java/com/google/cloud/redis/v1beta1/MockCloudRedisImpl.java b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/MockCloudRedisImpl.java
index 3e1796cc..f3e4266f 100644
--- a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/MockCloudRedisImpl.java
+++ b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/MockCloudRedisImpl.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-redis/src/test/java/com/google/cloud/redis/v1beta1/it/ITSystemTest.java b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/it/ITSystemTest.java
index c3680402..4da1c166 100644
--- a/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/it/ITSystemTest.java
+++ b/google-cloud-redis/src/test/java/com/google/cloud/redis/v1beta1/it/ITSystemTest.java
@@ -43,7 +43,7 @@ public class ITSystemTest {
 
   private static final Logger LOG = Logger.getLogger(ITSystemTest.class.getName());
   private static final String PROJECT_ID = ServiceOptions.getDefaultProjectId();
-  private static final String NETWORK = System.getProperty("redis.network", "default");
+  private static final String NETWORK = System.getProperty("redis.network", "redis-vpc");
   private static final String INSTANCE =
       "test-instance-" + UUID.randomUUID().toString().substring(0, 8);
   private static final String LOCATION = "us-central1";
diff --git a/grpc-google-cloud-redis-v1/pom.xml b/grpc-google-cloud-redis-v1/pom.xml
index ba07e7ab..e0ff8c08 100644
--- a/grpc-google-cloud-redis-v1/pom.xml
+++ b/grpc-google-cloud-redis-v1/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   grpc-google-cloud-redis-v1
-  2.4.1
+  2.5.0
   grpc-google-cloud-redis-v1
   GRPC library for grpc-google-cloud-redis-v1
   
     com.google.cloud
     google-cloud-redis-parent
-    2.4.1
+    2.5.0
   
   
     
diff --git a/grpc-google-cloud-redis-v1beta1/pom.xml b/grpc-google-cloud-redis-v1beta1/pom.xml
index fee498c8..55b208f5 100644
--- a/grpc-google-cloud-redis-v1beta1/pom.xml
+++ b/grpc-google-cloud-redis-v1beta1/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   grpc-google-cloud-redis-v1beta1
-  0.92.1
+  0.93.0
   grpc-google-cloud-redis-v1beta1
   GRPC library for grpc-google-cloud-redis-v1beta1
   
     com.google.cloud
     google-cloud-redis-parent
-    2.4.1
+    2.5.0
   
   
     
diff --git a/pom.xml b/pom.xml
index 38fb3b2a..20422ec0 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
   com.google.cloud
   google-cloud-redis-parent
   pom
-  2.4.1
+  2.5.0
   Google Cloud Redis Parent
   https://github.com/googleapis/java-redis
   
@@ -14,7 +14,7 @@
   
     com.google.cloud
     google-cloud-shared-config
-    1.3.2
+    1.4.0
   
 
   
@@ -61,33 +61,33 @@
       
         com.google.api.grpc
         proto-google-cloud-redis-v1
-        2.4.1
+        2.5.0
       
       
         com.google.api.grpc
         proto-google-cloud-redis-v1beta1
-        0.92.1
+        0.93.0
       
       
         com.google.api.grpc
         grpc-google-cloud-redis-v1beta1
-        0.92.1
+        0.93.0
       
       
         com.google.api.grpc
         grpc-google-cloud-redis-v1
-        2.4.1
+        2.5.0
       
       
         com.google.cloud
         google-cloud-redis
-        2.4.1
+        2.5.0
       
 
       
         com.google.cloud
         google-cloud-shared-dependencies
-        2.10.0
+        2.12.0
         pom
         import
       
@@ -132,7 +132,7 @@
       
         org.apache.maven.plugins
         maven-project-info-reports-plugin
-        3.2.2
+        3.3.0
         
           
             
@@ -159,7 +159,7 @@
       
         org.apache.maven.plugins
         maven-javadoc-plugin
-        3.3.1
+        3.4.0
         
           
             html
diff --git a/proto-google-cloud-redis-v1/pom.xml b/proto-google-cloud-redis-v1/pom.xml
index 6ed00831..b06bacb5 100644
--- a/proto-google-cloud-redis-v1/pom.xml
+++ b/proto-google-cloud-redis-v1/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   proto-google-cloud-redis-v1
-  2.4.1
+  2.5.0
   proto-google-cloud-redis-v1
   PROTO library for proto-google-cloud-redis-v1
   
     com.google.cloud
     google-cloud-redis-parent
-    2.4.1
+    2.5.0
   
   
     
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/CreateInstanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/CreateInstanceRequest.java
index b907dc80..4a74d878 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/CreateInstanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/CreateInstanceRequest.java
@@ -111,6 +111,8 @@ private CreateInstanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/DeleteInstanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/DeleteInstanceRequest.java
index ce1097f7..7c77347a 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/DeleteInstanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/DeleteInstanceRequest.java
@@ -88,6 +88,8 @@ private DeleteInstanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/ExportInstanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ExportInstanceRequest.java
index 2d62e0bb..12a3a3cb 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ExportInstanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ExportInstanceRequest.java
@@ -104,6 +104,8 @@ private ExportInstanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/FailoverInstanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/FailoverInstanceRequest.java
index 23d5b3fa..470a41ca 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/FailoverInstanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/FailoverInstanceRequest.java
@@ -96,6 +96,8 @@ private FailoverInstanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/GcsDestination.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GcsDestination.java
index bc208a87..f14d21d0 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GcsDestination.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GcsDestination.java
@@ -88,6 +88,8 @@ private GcsDestination(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/GcsSource.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GcsSource.java
index 89862fb2..97283154 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GcsSource.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GcsSource.java
@@ -88,6 +88,8 @@ private GcsSource(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/GetInstanceAuthStringRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GetInstanceAuthStringRequest.java
index bf4d1389..3f5941cc 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GetInstanceAuthStringRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GetInstanceAuthStringRequest.java
@@ -88,6 +88,8 @@ private GetInstanceAuthStringRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/GetInstanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GetInstanceRequest.java
index e81eaa90..b5fd25b3 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GetInstanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/GetInstanceRequest.java
@@ -88,6 +88,8 @@ private GetInstanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/ImportInstanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ImportInstanceRequest.java
index 6d6efef3..657d811a 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ImportInstanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ImportInstanceRequest.java
@@ -104,6 +104,8 @@ private ImportInstanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/InputConfig.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InputConfig.java
index dfe759d5..e6c014f0 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InputConfig.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InputConfig.java
@@ -95,6 +95,8 @@ private InputConfig(
       }
     } 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 {
@@ -681,8 +683,9 @@ public Builder mergeGcsSource(com.google.cloud.redis.v1.GcsSource value) {
       } else {
         if (sourceCase_ == 1) {
           gcsSourceBuilder_.mergeFrom(value);
+        } else {
+          gcsSourceBuilder_.setMessage(value);
         }
-        gcsSourceBuilder_.setMessage(value);
       }
       sourceCase_ = 1;
       return this;
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/Instance.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/Instance.java
index 642791c0..390a27f6 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/Instance.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/Instance.java
@@ -350,6 +350,8 @@ private Instance(
       }
     } 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 {
@@ -1477,7 +1479,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);
   }
@@ -1512,7 +1514,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;
@@ -1529,7 +1531,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)) {
@@ -2148,7 +2150,7 @@ public int getRedisConfigsCount() {
   @java.lang.Override
   public boolean containsRedisConfigs(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     return internalGetRedisConfigs().getMap().containsKey(key);
   }
@@ -2212,7 +2214,7 @@ public java.util.Map getRedisConfigsMap() {
   public java.lang.String getRedisConfigsOrDefault(
       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 = internalGetRedisConfigs().getMap();
     return map.containsKey(key) ? map.get(key) : defaultValue;
@@ -2243,7 +2245,7 @@ public java.lang.String getRedisConfigsOrDefault(
   @java.lang.Override
   public java.lang.String getRedisConfigsOrThrow(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map = internalGetRedisConfigs().getMap();
     if (!map.containsKey(key)) {
@@ -4150,7 +4152,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);
     }
@@ -4186,7 +4188,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;
@@ -4203,7 +4205,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)) {
@@ -4227,7 +4229,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;
@@ -4248,11 +4250,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;
     }
@@ -5671,7 +5674,7 @@ public int getRedisConfigsCount() {
     @java.lang.Override
     public boolean containsRedisConfigs(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       return internalGetRedisConfigs().getMap().containsKey(key);
     }
@@ -5735,7 +5738,7 @@ public java.util.Map getRedisConfigsMap() {
     public java.lang.String getRedisConfigsOrDefault(
         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 = internalGetRedisConfigs().getMap();
       return map.containsKey(key) ? map.get(key) : defaultValue;
@@ -5766,7 +5769,7 @@ public java.lang.String getRedisConfigsOrDefault(
     @java.lang.Override
     public java.lang.String getRedisConfigsOrThrow(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map = internalGetRedisConfigs().getMap();
       if (!map.containsKey(key)) {
@@ -5804,7 +5807,7 @@ public Builder clearRedisConfigs() {
      */
     public Builder removeRedisConfigs(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       internalGetMutableRedisConfigs().getMutableMap().remove(key);
       return this;
@@ -5839,11 +5842,12 @@ public java.util.Map getMutableRedisConfigs(
      */
     public Builder putRedisConfigs(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");
       }
+
       internalGetMutableRedisConfigs().getMutableMap().put(key, value);
       return this;
     }
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceAuthString.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceAuthString.java
index 95844576..6ff75592 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceAuthString.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceAuthString.java
@@ -88,6 +88,8 @@ private InstanceAuthString(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceName.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceName.java
index 7b73385d..f1ca8fda 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceName.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceName.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-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceOrBuilder.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceOrBuilder.java
index f578e32c..47651d59 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceOrBuilder.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/InstanceOrBuilder.java
@@ -129,7 +129,12 @@ public interface InstanceOrBuilder
    *
    * map<string, string> labels = 3;
    */
-  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);
   /**
    *
    *
@@ -577,7 +582,12 @@ public interface InstanceOrBuilder
    * map<string, string> redis_configs = 16 [(.google.api.field_behavior) = OPTIONAL];
    * 
    */
-  java.lang.String getRedisConfigsOrDefault(java.lang.String key, java.lang.String defaultValue);
+
+  /* nullable */
+  java.lang.String getRedisConfigsOrDefault(
+      java.lang.String key,
+      /* nullable */
+      java.lang.String defaultValue);
   /**
    *
    *
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ListInstancesRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ListInstancesRequest.java
index be3d9f4a..2a627e01 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ListInstancesRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ListInstancesRequest.java
@@ -101,6 +101,8 @@ private ListInstancesRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/ListInstancesResponse.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ListInstancesResponse.java
index d827c092..b5fa83b4 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ListInstancesResponse.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ListInstancesResponse.java
@@ -112,6 +112,8 @@ private ListInstancesResponse(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationMetadata.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationMetadata.java
index 99b7e0d5..8d4b360b 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationMetadata.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationMetadata.java
@@ -101,6 +101,8 @@ private LocationMetadata(
       }
     } 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 {
@@ -183,7 +185,7 @@ public int getAvailableZonesCount() {
   @java.lang.Override
   public boolean containsAvailableZones(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     return internalGetAvailableZones().getMap().containsKey(key);
   }
@@ -231,7 +233,7 @@ public boolean containsAvailableZones(java.lang.String key) {
   public com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrDefault(
       java.lang.String key, com.google.cloud.redis.v1.ZoneMetadata defaultValue) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map =
         internalGetAvailableZones().getMap();
@@ -254,7 +256,7 @@ public com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrDefault(
   @java.lang.Override
   public com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrThrow(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map =
         internalGetAvailableZones().getMap();
@@ -658,7 +660,7 @@ public int getAvailableZonesCount() {
     @java.lang.Override
     public boolean containsAvailableZones(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       return internalGetAvailableZones().getMap().containsKey(key);
     }
@@ -706,7 +708,7 @@ public boolean containsAvailableZones(java.lang.String key) {
     public com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrDefault(
         java.lang.String key, com.google.cloud.redis.v1.ZoneMetadata defaultValue) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map =
           internalGetAvailableZones().getMap();
@@ -729,7 +731,7 @@ public com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrDefault(
     @java.lang.Override
     public com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrThrow(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map =
           internalGetAvailableZones().getMap();
@@ -759,7 +761,7 @@ public Builder clearAvailableZones() {
      */
     public Builder removeAvailableZones(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       internalGetMutableAvailableZones().getMutableMap().remove(key);
       return this;
@@ -787,11 +789,12 @@ public Builder removeAvailableZones(java.lang.String key) {
     public Builder putAvailableZones(
         java.lang.String key, com.google.cloud.redis.v1.ZoneMetadata 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");
       }
+
       internalGetMutableAvailableZones().getMutableMap().put(key, value);
       return this;
     }
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationMetadataOrBuilder.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationMetadataOrBuilder.java
index 7af9a871..bc4a7231 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationMetadataOrBuilder.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationMetadataOrBuilder.java
@@ -85,8 +85,12 @@ public interface LocationMetadataOrBuilder
    * map<string, .google.cloud.redis.v1.ZoneMetadata> available_zones = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
    * 
    */
+
+  /* nullable */
   com.google.cloud.redis.v1.ZoneMetadata getAvailableZonesOrDefault(
-      java.lang.String key, com.google.cloud.redis.v1.ZoneMetadata defaultValue);
+      java.lang.String key,
+      /* nullable */
+      com.google.cloud.redis.v1.ZoneMetadata defaultValue);
   /**
    *
    *
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationName.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationName.java
index 28ad9212..3d0452c9 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/LocationName.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/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-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenancePolicy.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenancePolicy.java
index 65f54730..45744e00 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenancePolicy.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenancePolicy.java
@@ -133,6 +133,8 @@ private MaintenancePolicy(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenanceSchedule.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenanceSchedule.java
index 056d5920..e6626a35 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenanceSchedule.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenanceSchedule.java
@@ -130,6 +130,8 @@ private MaintenanceSchedule(
       }
     } 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 {
@@ -262,6 +264,8 @@ public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
    *
    * bool can_reschedule = 3 [deprecated = true];
    *
+   * @deprecated google.cloud.redis.v1.MaintenanceSchedule.can_reschedule is deprecated. See
+   *     google/cloud/redis/v1/cloud_redis.proto;l=576
    * @return The canReschedule.
    */
   @java.lang.Override
@@ -1114,6 +1118,8 @@ public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
      *
      * bool can_reschedule = 3 [deprecated = true];
      *
+     * @deprecated google.cloud.redis.v1.MaintenanceSchedule.can_reschedule is deprecated. See
+     *     google/cloud/redis/v1/cloud_redis.proto;l=576
      * @return The canReschedule.
      */
     @java.lang.Override
@@ -1130,6 +1136,8 @@ public boolean getCanReschedule() {
      *
      * bool can_reschedule = 3 [deprecated = true];
      *
+     * @deprecated google.cloud.redis.v1.MaintenanceSchedule.can_reschedule is deprecated. See
+     *     google/cloud/redis/v1/cloud_redis.proto;l=576
      * @param value The canReschedule to set.
      * @return This builder for chaining.
      */
@@ -1149,6 +1157,8 @@ public Builder setCanReschedule(boolean value) {
      *
      * bool can_reschedule = 3 [deprecated = true];
      *
+     * @deprecated google.cloud.redis.v1.MaintenanceSchedule.can_reschedule is deprecated. See
+     *     google/cloud/redis/v1/cloud_redis.proto;l=576
      * @return This builder for chaining.
      */
     @java.lang.Deprecated
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenanceScheduleOrBuilder.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenanceScheduleOrBuilder.java
index d317a82a..5be9680e 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenanceScheduleOrBuilder.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/MaintenanceScheduleOrBuilder.java
@@ -108,6 +108,8 @@ public interface MaintenanceScheduleOrBuilder
    *
    * bool can_reschedule = 3 [deprecated = true];
    *
+   * @deprecated google.cloud.redis.v1.MaintenanceSchedule.can_reschedule is deprecated. See
+   *     google/cloud/redis/v1/cloud_redis.proto;l=576
    * @return The canReschedule.
    */
   @java.lang.Deprecated
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/NodeInfo.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/NodeInfo.java
index a366d5d4..3b78009b 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/NodeInfo.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/NodeInfo.java
@@ -96,6 +96,8 @@ private NodeInfo(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadata.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadata.java
index 629a44d2..666a6b76 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadata.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OperationMetadata.java
@@ -147,6 +147,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-redis-v1/src/main/java/com/google/cloud/redis/v1/OutputConfig.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OutputConfig.java
index 266562b6..7c0d00c5 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OutputConfig.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/OutputConfig.java
@@ -95,6 +95,8 @@ private OutputConfig(
       }
     } 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 {
@@ -683,8 +685,9 @@ public Builder mergeGcsDestination(com.google.cloud.redis.v1.GcsDestination valu
       } else {
         if (destinationCase_ == 1) {
           gcsDestinationBuilder_.mergeFrom(value);
+        } else {
+          gcsDestinationBuilder_.setMessage(value);
         }
-        gcsDestinationBuilder_.setMessage(value);
       }
       destinationCase_ = 1;
       return this;
diff --git a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/RescheduleMaintenanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/RescheduleMaintenanceRequest.java
index 40c11b41..a026f486 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/RescheduleMaintenanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/RescheduleMaintenanceRequest.java
@@ -111,6 +111,8 @@ private RescheduleMaintenanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/TlsCertificate.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/TlsCertificate.java
index 54984465..e09005e5 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/TlsCertificate.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/TlsCertificate.java
@@ -134,6 +134,8 @@ private TlsCertificate(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/UpdateInstanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/UpdateInstanceRequest.java
index cbebe787..2abd1c61 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/UpdateInstanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/UpdateInstanceRequest.java
@@ -109,6 +109,8 @@ private UpdateInstanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/UpgradeInstanceRequest.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/UpgradeInstanceRequest.java
index ece569eb..44d852b6 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/UpgradeInstanceRequest.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/UpgradeInstanceRequest.java
@@ -96,6 +96,8 @@ private UpgradeInstanceRequest(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/WeeklyMaintenanceWindow.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/WeeklyMaintenanceWindow.java
index e8cff08e..34a2a3f4 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/WeeklyMaintenanceWindow.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/WeeklyMaintenanceWindow.java
@@ -118,6 +118,8 @@ private WeeklyMaintenanceWindow(
       }
     } 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-redis-v1/src/main/java/com/google/cloud/redis/v1/ZoneMetadata.java b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ZoneMetadata.java
index 2d2b3735..e162ecdb 100644
--- a/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ZoneMetadata.java
+++ b/proto-google-cloud-redis-v1/src/main/java/com/google/cloud/redis/v1/ZoneMetadata.java
@@ -80,6 +80,8 @@ private ZoneMetadata(
       }
     } 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-redis-v1beta1/pom.xml b/proto-google-cloud-redis-v1beta1/pom.xml
index d85e7729..fa1a0ef3 100644
--- a/proto-google-cloud-redis-v1beta1/pom.xml
+++ b/proto-google-cloud-redis-v1beta1/pom.xml
@@ -4,13 +4,13 @@
   4.0.0
   com.google.api.grpc
   proto-google-cloud-redis-v1beta1
-  0.92.1
+  0.93.0
   proto-google-cloud-redis-v1beta1
   PROTO library for proto-google-cloud-redis-v1beta1
   
     com.google.cloud
     google-cloud-redis-parent
-    2.4.1
+    2.5.0
   
   
     
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/CreateInstanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/CreateInstanceRequest.java
index 99bb26a5..d7c96f49 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/CreateInstanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/CreateInstanceRequest.java
@@ -112,6 +112,8 @@ private CreateInstanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/DeleteInstanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/DeleteInstanceRequest.java
index ef258792..a10b9204 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/DeleteInstanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/DeleteInstanceRequest.java
@@ -88,6 +88,8 @@ private DeleteInstanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ExportInstanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ExportInstanceRequest.java
index 1f8f0905..9ef4ff0a 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ExportInstanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ExportInstanceRequest.java
@@ -104,6 +104,8 @@ private ExportInstanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/FailoverInstanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/FailoverInstanceRequest.java
index e644b1b7..ec99dcc9 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/FailoverInstanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/FailoverInstanceRequest.java
@@ -96,6 +96,8 @@ private FailoverInstanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GcsDestination.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GcsDestination.java
index 9869ce83..c4601ac1 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GcsDestination.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GcsDestination.java
@@ -88,6 +88,8 @@ private GcsDestination(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GcsSource.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GcsSource.java
index 3dba06cc..3bd73753 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GcsSource.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GcsSource.java
@@ -88,6 +88,8 @@ private GcsSource(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GetInstanceAuthStringRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GetInstanceAuthStringRequest.java
index ad7ce229..b2dfae77 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GetInstanceAuthStringRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GetInstanceAuthStringRequest.java
@@ -88,6 +88,8 @@ private GetInstanceAuthStringRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GetInstanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GetInstanceRequest.java
index 138f47e8..7628ebdd 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GetInstanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/GetInstanceRequest.java
@@ -88,6 +88,8 @@ private GetInstanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ImportInstanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ImportInstanceRequest.java
index 7af73774..17993618 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ImportInstanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ImportInstanceRequest.java
@@ -104,6 +104,8 @@ private ImportInstanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InputConfig.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InputConfig.java
index 2d4dbf55..d8c8787d 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InputConfig.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InputConfig.java
@@ -95,6 +95,8 @@ private InputConfig(
       }
     } 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 {
@@ -683,8 +685,9 @@ public Builder mergeGcsSource(com.google.cloud.redis.v1beta1.GcsSource value) {
       } else {
         if (sourceCase_ == 1) {
           gcsSourceBuilder_.mergeFrom(value);
+        } else {
+          gcsSourceBuilder_.setMessage(value);
         }
-        gcsSourceBuilder_.setMessage(value);
       }
       sourceCase_ = 1;
       return this;
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/Instance.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/Instance.java
index eca3c7ae..544a09a1 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/Instance.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/Instance.java
@@ -367,6 +367,8 @@ private Instance(
       }
     } 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 {
@@ -1494,7 +1496,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);
   }
@@ -1529,7 +1531,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;
@@ -1546,7 +1548,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)) {
@@ -2165,7 +2167,7 @@ public int getRedisConfigsCount() {
   @java.lang.Override
   public boolean containsRedisConfigs(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     return internalGetRedisConfigs().getMap().containsKey(key);
   }
@@ -2229,7 +2231,7 @@ public java.util.Map getRedisConfigsMap() {
   public java.lang.String getRedisConfigsOrDefault(
       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 = internalGetRedisConfigs().getMap();
     return map.containsKey(key) ? map.get(key) : defaultValue;
@@ -2260,7 +2262,7 @@ public java.lang.String getRedisConfigsOrDefault(
   @java.lang.Override
   public java.lang.String getRedisConfigsOrThrow(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map = internalGetRedisConfigs().getMap();
     if (!map.containsKey(key)) {
@@ -4260,7 +4262,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);
     }
@@ -4296,7 +4298,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;
@@ -4313,7 +4315,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)) {
@@ -4337,7 +4339,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;
@@ -4358,11 +4360,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;
     }
@@ -5781,7 +5784,7 @@ public int getRedisConfigsCount() {
     @java.lang.Override
     public boolean containsRedisConfigs(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       return internalGetRedisConfigs().getMap().containsKey(key);
     }
@@ -5845,7 +5848,7 @@ public java.util.Map getRedisConfigsMap() {
     public java.lang.String getRedisConfigsOrDefault(
         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 = internalGetRedisConfigs().getMap();
       return map.containsKey(key) ? map.get(key) : defaultValue;
@@ -5876,7 +5879,7 @@ public java.lang.String getRedisConfigsOrDefault(
     @java.lang.Override
     public java.lang.String getRedisConfigsOrThrow(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map = internalGetRedisConfigs().getMap();
       if (!map.containsKey(key)) {
@@ -5914,7 +5917,7 @@ public Builder clearRedisConfigs() {
      */
     public Builder removeRedisConfigs(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       internalGetMutableRedisConfigs().getMutableMap().remove(key);
       return this;
@@ -5949,11 +5952,12 @@ public java.util.Map getMutableRedisConfigs(
      */
     public Builder putRedisConfigs(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");
       }
+
       internalGetMutableRedisConfigs().getMutableMap().put(key, value);
       return this;
     }
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceAuthString.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceAuthString.java
index a293beb5..8187c1bd 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceAuthString.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceAuthString.java
@@ -88,6 +88,8 @@ private InstanceAuthString(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceName.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceName.java
index c63c2c1f..c5b99af8 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceName.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceName.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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceOrBuilder.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceOrBuilder.java
index f9fad1c0..801e56f6 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceOrBuilder.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/InstanceOrBuilder.java
@@ -129,7 +129,12 @@ public interface InstanceOrBuilder
    *
    * map<string, string> labels = 3;
    */
-  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);
   /**
    *
    *
@@ -577,7 +582,12 @@ public interface InstanceOrBuilder
    * map<string, string> redis_configs = 16 [(.google.api.field_behavior) = OPTIONAL];
    * 
    */
-  java.lang.String getRedisConfigsOrDefault(java.lang.String key, java.lang.String defaultValue);
+
+  /* nullable */
+  java.lang.String getRedisConfigsOrDefault(
+      java.lang.String key,
+      /* nullable */
+      java.lang.String defaultValue);
   /**
    *
    *
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ListInstancesRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ListInstancesRequest.java
index 2f5303df..7afcb682 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ListInstancesRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ListInstancesRequest.java
@@ -101,6 +101,8 @@ private ListInstancesRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ListInstancesResponse.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ListInstancesResponse.java
index 7c643e69..3be396d4 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ListInstancesResponse.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ListInstancesResponse.java
@@ -112,6 +112,8 @@ private ListInstancesResponse(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationMetadata.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationMetadata.java
index 463ecb6b..82d432f4 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationMetadata.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationMetadata.java
@@ -102,6 +102,8 @@ private LocationMetadata(
       }
     } 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 {
@@ -186,7 +188,7 @@ public int getAvailableZonesCount() {
   @java.lang.Override
   public boolean containsAvailableZones(java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     return internalGetAvailableZones().getMap().containsKey(key);
   }
@@ -234,7 +236,7 @@ public boolean containsAvailableZones(java.lang.String key) {
   public com.google.cloud.redis.v1beta1.ZoneMetadata getAvailableZonesOrDefault(
       java.lang.String key, com.google.cloud.redis.v1beta1.ZoneMetadata defaultValue) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map =
         internalGetAvailableZones().getMap();
@@ -258,7 +260,7 @@ public com.google.cloud.redis.v1beta1.ZoneMetadata getAvailableZonesOrDefault(
   public com.google.cloud.redis.v1beta1.ZoneMetadata getAvailableZonesOrThrow(
       java.lang.String key) {
     if (key == null) {
-      throw new java.lang.NullPointerException();
+      throw new NullPointerException("map key");
     }
     java.util.Map map =
         internalGetAvailableZones().getMap();
@@ -666,7 +668,7 @@ public int getAvailableZonesCount() {
     @java.lang.Override
     public boolean containsAvailableZones(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       return internalGetAvailableZones().getMap().containsKey(key);
     }
@@ -714,7 +716,7 @@ public boolean containsAvailableZones(java.lang.String key) {
     public com.google.cloud.redis.v1beta1.ZoneMetadata getAvailableZonesOrDefault(
         java.lang.String key, com.google.cloud.redis.v1beta1.ZoneMetadata defaultValue) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map =
           internalGetAvailableZones().getMap();
@@ -738,7 +740,7 @@ public com.google.cloud.redis.v1beta1.ZoneMetadata getAvailableZonesOrDefault(
     public com.google.cloud.redis.v1beta1.ZoneMetadata getAvailableZonesOrThrow(
         java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       java.util.Map map =
           internalGetAvailableZones().getMap();
@@ -768,7 +770,7 @@ public Builder clearAvailableZones() {
      */
     public Builder removeAvailableZones(java.lang.String key) {
       if (key == null) {
-        throw new java.lang.NullPointerException();
+        throw new NullPointerException("map key");
       }
       internalGetMutableAvailableZones().getMutableMap().remove(key);
       return this;
@@ -796,11 +798,12 @@ public Builder removeAvailableZones(java.lang.String key) {
     public Builder putAvailableZones(
         java.lang.String key, com.google.cloud.redis.v1beta1.ZoneMetadata 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");
       }
+
       internalGetMutableAvailableZones().getMutableMap().put(key, value);
       return this;
     }
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationMetadataOrBuilder.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationMetadataOrBuilder.java
index 202bd7a0..0588a263 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationMetadataOrBuilder.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationMetadataOrBuilder.java
@@ -86,8 +86,12 @@ public interface LocationMetadataOrBuilder
    * map<string, .google.cloud.redis.v1beta1.ZoneMetadata> available_zones = 1 [(.google.api.field_behavior) = OUTPUT_ONLY];
    * 
    */
+
+  /* nullable */
   com.google.cloud.redis.v1beta1.ZoneMetadata getAvailableZonesOrDefault(
-      java.lang.String key, com.google.cloud.redis.v1beta1.ZoneMetadata defaultValue);
+      java.lang.String key,
+      /* nullable */
+      com.google.cloud.redis.v1beta1.ZoneMetadata defaultValue);
   /**
    *
    *
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationName.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationName.java
index fdd464ce..1643161c 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/LocationName.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenancePolicy.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenancePolicy.java
index 5bb15d8b..54e085b8 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenancePolicy.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenancePolicy.java
@@ -134,6 +134,8 @@ private MaintenancePolicy(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenanceSchedule.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenanceSchedule.java
index 25be114d..f33a54b0 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenanceSchedule.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenanceSchedule.java
@@ -130,6 +130,8 @@ private MaintenanceSchedule(
       }
     } 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 {
@@ -262,6 +264,8 @@ public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
    *
    * bool can_reschedule = 3 [deprecated = true];
    *
+   * @deprecated google.cloud.redis.v1beta1.MaintenanceSchedule.can_reschedule is deprecated. See
+   *     google/cloud/redis/v1beta1/cloud_redis.proto;l=627
    * @return The canReschedule.
    */
   @java.lang.Override
@@ -1116,6 +1120,8 @@ public com.google.protobuf.TimestampOrBuilder getEndTimeOrBuilder() {
      *
      * bool can_reschedule = 3 [deprecated = true];
      *
+     * @deprecated google.cloud.redis.v1beta1.MaintenanceSchedule.can_reschedule is deprecated. See
+     *     google/cloud/redis/v1beta1/cloud_redis.proto;l=627
      * @return The canReschedule.
      */
     @java.lang.Override
@@ -1132,6 +1138,8 @@ public boolean getCanReschedule() {
      *
      * bool can_reschedule = 3 [deprecated = true];
      *
+     * @deprecated google.cloud.redis.v1beta1.MaintenanceSchedule.can_reschedule is deprecated. See
+     *     google/cloud/redis/v1beta1/cloud_redis.proto;l=627
      * @param value The canReschedule to set.
      * @return This builder for chaining.
      */
@@ -1151,6 +1159,8 @@ public Builder setCanReschedule(boolean value) {
      *
      * bool can_reschedule = 3 [deprecated = true];
      *
+     * @deprecated google.cloud.redis.v1beta1.MaintenanceSchedule.can_reschedule is deprecated. See
+     *     google/cloud/redis/v1beta1/cloud_redis.proto;l=627
      * @return This builder for chaining.
      */
     @java.lang.Deprecated
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenanceScheduleOrBuilder.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenanceScheduleOrBuilder.java
index 649aae93..ef4a422a 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenanceScheduleOrBuilder.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/MaintenanceScheduleOrBuilder.java
@@ -108,6 +108,8 @@ public interface MaintenanceScheduleOrBuilder
    *
    * bool can_reschedule = 3 [deprecated = true];
    *
+   * @deprecated google.cloud.redis.v1beta1.MaintenanceSchedule.can_reschedule is deprecated. See
+   *     google/cloud/redis/v1beta1/cloud_redis.proto;l=627
    * @return The canReschedule.
    */
   @java.lang.Deprecated
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/NodeInfo.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/NodeInfo.java
index 72524b67..597455df 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/NodeInfo.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/NodeInfo.java
@@ -96,6 +96,8 @@ private NodeInfo(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/OutputConfig.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/OutputConfig.java
index 283c1607..48f58b9b 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/OutputConfig.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/OutputConfig.java
@@ -96,6 +96,8 @@ private OutputConfig(
       }
     } 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 {
@@ -685,8 +687,9 @@ public Builder mergeGcsDestination(com.google.cloud.redis.v1beta1.GcsDestination
       } else {
         if (destinationCase_ == 1) {
           gcsDestinationBuilder_.mergeFrom(value);
+        } else {
+          gcsDestinationBuilder_.setMessage(value);
         }
-        gcsDestinationBuilder_.setMessage(value);
       }
       destinationCase_ = 1;
       return this;
diff --git a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/PersistenceConfig.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/PersistenceConfig.java
index 82cf78bd..9ae07e46 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/PersistenceConfig.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/PersistenceConfig.java
@@ -126,6 +126,8 @@ private PersistenceConfig(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/RescheduleMaintenanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/RescheduleMaintenanceRequest.java
index 638b48f9..5611cedc 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/RescheduleMaintenanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/RescheduleMaintenanceRequest.java
@@ -111,6 +111,8 @@ private RescheduleMaintenanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/TlsCertificate.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/TlsCertificate.java
index 6a8a888b..89adf4fa 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/TlsCertificate.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/TlsCertificate.java
@@ -134,6 +134,8 @@ private TlsCertificate(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/UpdateInstanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/UpdateInstanceRequest.java
index 46beac46..db85e44f 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/UpdateInstanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/UpdateInstanceRequest.java
@@ -110,6 +110,8 @@ private UpdateInstanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/UpgradeInstanceRequest.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/UpgradeInstanceRequest.java
index 9a817be4..cec7c228 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/UpgradeInstanceRequest.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/UpgradeInstanceRequest.java
@@ -96,6 +96,8 @@ private UpgradeInstanceRequest(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/WeeklyMaintenanceWindow.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/WeeklyMaintenanceWindow.java
index 7d71b7e7..a39cd1a5 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/WeeklyMaintenanceWindow.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/WeeklyMaintenanceWindow.java
@@ -118,6 +118,8 @@ private WeeklyMaintenanceWindow(
       }
     } 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-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ZoneMetadata.java b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ZoneMetadata.java
index 2d955c33..5aa6feb6 100644
--- a/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ZoneMetadata.java
+++ b/proto-google-cloud-redis-v1beta1/src/main/java/com/google/cloud/redis/v1beta1/ZoneMetadata.java
@@ -80,6 +80,8 @@ private ZoneMetadata(
       }
     } 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/samples/install-without-bom/pom.xml b/samples/install-without-bom/pom.xml
index 0c02203e..716d3e58 100644
--- a/samples/install-without-bom/pom.xml
+++ b/samples/install-without-bom/pom.xml
@@ -29,7 +29,7 @@
     
       com.google.cloud
       google-cloud-redis
-      2.4.0
+      2.4.1
     
     
 
diff --git a/samples/pom.xml b/samples/pom.xml
index d0f22d49..620a79d2 100644
--- a/samples/pom.xml
+++ b/samples/pom.xml
@@ -46,7 +46,7 @@
       
         org.sonatype.plugins
         nexus-staging-maven-plugin
-        1.6.9
+        1.6.13
         
           true
         
diff --git a/samples/snapshot/pom.xml b/samples/snapshot/pom.xml
index 7048d8ff..f55f1a42 100644
--- a/samples/snapshot/pom.xml
+++ b/samples/snapshot/pom.xml
@@ -28,7 +28,7 @@
     
       com.google.cloud
       google-cloud-redis
-      2.4.0
+      2.4.1
     
 
     
diff --git a/samples/snippets/pom.xml b/samples/snippets/pom.xml
index 2351775e..6730aa0b 100644
--- a/samples/snippets/pom.xml
+++ b/samples/snippets/pom.xml
@@ -30,7 +30,7 @@
       
         com.google.cloud
         libraries-bom
-        25.1.0
+        25.3.0
         pom
         import
       
diff --git a/versions.txt b/versions.txt
index 1bfa1e61..d3be1861 100644
--- a/versions.txt
+++ b/versions.txt
@@ -1,8 +1,8 @@
 # Format:
 # module:released-version:current-version
 
-google-cloud-redis:2.4.1:2.4.1
-grpc-google-cloud-redis-v1beta1:0.92.1:0.92.1
-grpc-google-cloud-redis-v1:2.4.1:2.4.1
-proto-google-cloud-redis-v1:2.4.1:2.4.1
-proto-google-cloud-redis-v1beta1:0.92.1:0.92.1
+google-cloud-redis:2.5.0:2.5.0
+grpc-google-cloud-redis-v1beta1:0.93.0:0.93.0
+grpc-google-cloud-redis-v1:2.5.0:2.5.0
+proto-google-cloud-redis-v1:2.5.0:2.5.0
+proto-google-cloud-redis-v1beta1:0.93.0:0.93.0