Repository: googleapis/java-storage
Pull request #3168 (2025-06-24 20:29:47)

test(deps): update dependency io.github.classgraph:classgraph to v4.8.180
This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [io.github.classgraph:classgraph](https://redirect.github.com/classgraph/classgraph) | `4.8.179` -> `4.8.180` | [![age](https://developer.mend.io/api/mc/badges/age/maven/io.github.classgraph:classgraph/4.8.180?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/maven/io.github.classgraph:classgraph/4.8.180?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/maven/io.github.classgraph:classgraph/4.8.179/4.8.180?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/maven/io.github.classgraph:classgraph/4.8.179/4.8.180?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

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

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

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

---

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

---

This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/googleapis/java-storage).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0MC42Mi4xIiwidXBkYXRlZEluVmVyIjoiNDAuNjIuMSIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==-->


dpebot: /gcbrun
dpebot: /gcbrun
dpebot: /gcbrun
dpebot: /gcbrun
dpebot: /gcbrun
dpebot: /gcbrun
dpebot: /gcbrun

Patch:
diff --git a/README.md b/README.md
index 1f853d2f..4c618b20 100644
--- a/README.md
+++ b/README.md
@@ -46,12 +46,12 @@ If you are using Maven without the BOM, add this to your dependencies:
 <dependency>
   <groupId>com.google.cloud</groupId>
   <artifactId>google-cloud-storage</artifactId>
-  <version>2.53.0</version>
+  <version>2.53.1</version>
 </dependency>
 <dependency>
   <groupId>com.google.cloud</groupId>
   <artifactId>google-cloud-storage-control</artifactId>
-  <version>2.53.0</version>
+  <version>2.53.1</version>
 </dependency>
 
 ```
@@ -347,6 +347,13 @@ Samples are in the [`samples/`](https://github.com/googleapis/java-storage/tree/
 | Set Public Access Prevention Inherited | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionInherited.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/bucket/SetPublicAccessPreventionInherited.java) |
 | Set Retention Policy | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/bucket/SetRetentionPolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/bucket/SetRetentionPolicy.java) |
 | Set Soft Delete Policy | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/bucket/SetSoftDeletePolicy.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/bucket/SetSoftDeletePolicy.java) |
+| Anywhere Cache Create | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheCreate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheCreate.java) |
+| Anywhere Cache Disable | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheDisable.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheDisable.java) |
+| Anywhere Cache Get | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheGet.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheGet.java) |
+| Anywhere Cache List | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheList.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheList.java) |
+| Anywhere Cache Pause | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCachePause.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCachePause.java) |
+| Anywhere Cache Resume | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheResume.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheResume.java) |
+| Anywhere Cache Update | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheUpdate.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheUpdate.java) |
 | Create Folder | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/CreateFolder.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/CreateFolder.java) |
 | Create Hierarchical Namespace Bucket | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/CreateHierarchicalNamespaceBucket.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/CreateHierarchicalNamespaceBucket.java) |
 | Delete Folder | [source code](https://github.com/googleapis/java-storage/blob/main/samples/snippets/src/main/java/com/example/storage/control/v2/DeleteFolder.java) | [![Open in Cloud Shell][shell_img]](https://console.cloud.google.com/cloudshell/open?git_repo=https://github.com/googleapis/java-storage&page=editor&open_in_editor=samples/snippets/src/main/java/com/example/storage/control/v2/DeleteFolder.java) |
diff --git a/generation_config.yaml b/generation_config.yaml
index 86fc804a..2e0613f7 100644
--- a/generation_config.yaml
+++ b/generation_config.yaml
@@ -1,5 +1,5 @@
 gapic_generator_version: 2.59.0
-googleapis_commitish: 3a45aa38968f4fe537cd3837c0e95af8c189b11b
+googleapis_commitish: d57057715ebe652819419146472b09c14729d054
 libraries_bom_version: 26.61.0
 libraries:
   - api_shortname: storage
diff --git a/google-cloud-storage-control/pom.xml b/google-cloud-storage-control/pom.xml
index ee1ee776..e840b72f 100644
--- a/google-cloud-storage-control/pom.xml
+++ b/google-cloud-storage-control/pom.xml
@@ -47,11 +47,27 @@
             <groupId>com.google.api</groupId>
             <artifactId>gax</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.api</groupId>
+            <artifactId>gax</artifactId>
+            <scope>test</scope>
+            <classifier>testlib</classifier>
+        </dependency>
 
         <dependency>
             <groupId>com.google.api</groupId>
             <artifactId>gax-grpc</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.api</groupId>
+            <artifactId>gax-httpjson</artifactId>
+        </dependency>
+        <dependency>
+            <groupId>com.google.api</groupId>
+            <artifactId>gax-httpjson</artifactId>
+            <scope>test</scope>
+            <classifier>testlib</classifier>
+        </dependency>
         <dependency>
             <groupId>com.google.guava</groupId>
             <artifactId>guava</artifactId>
@@ -71,6 +87,11 @@
             <groupId>com.google.api.grpc</groupId>
             <artifactId>grpc-google-cloud-storage-control-v2</artifactId>
         </dependency>
+        <dependency>
+            <groupId>com.google.http-client</groupId>
+            <artifactId>google-http-client</artifactId>
+            <scope>test</scope>
+        </dependency>
     </dependencies>
 
     <profiles>
diff --git a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/StorageControlClient.java b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/StorageControlClient.java
index 46840a92..ac92b590 100644
--- a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/StorageControlClient.java
+++ b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/StorageControlClient.java
@@ -18,7 +18,9 @@ package com.google.storage.control.v2;
 
 import com.google.api.core.ApiFuture;
 import com.google.api.core.ApiFutures;
+import com.google.api.core.BetaApi;
 import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.httpjson.longrunning.OperationsClient;
 import com.google.api.gax.longrunning.OperationFuture;
 import com.google.api.gax.paging.AbstractFixedSizeCollection;
 import com.google.api.gax.paging.AbstractPage;
@@ -28,7 +30,6 @@ import com.google.api.gax.rpc.PageContext;
 import com.google.api.gax.rpc.UnaryCallable;
 import com.google.common.util.concurrent.MoreExecutors;
 import com.google.longrunning.Operation;
-import com.google.longrunning.OperationsClient;
 import com.google.protobuf.Empty;
 import com.google.protobuf.FieldMask;
 import com.google.storage.control.v2.stub.StorageControlStub;
@@ -547,13 +548,28 @@ import javax.annotation.Generated;
  * StorageControlClient storageControlClient = StorageControlClient.create(storageControlSettings);
  * }</pre>
  *
+ * <p>To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
+ * the wire:
+ *
+ * <pre>{@code
+ * // This snippet has been automatically generated and should be regarded as a code template only.
+ * // It will require modifications to work:
+ * // - It may require correct/in-range values for request initialization.
+ * // - It may require specifying regional endpoints when creating the service client as shown in
+ * // https://cloud.google.com/java/docs/setup#configure_endpoints_for_the_client_library
+ * StorageControlSettings storageControlSettings =
+ *     StorageControlSettings.newHttpJsonBuilder().build();
+ * StorageControlClient storageControlClient = StorageControlClient.create(storageControlSettings);
+ * }</pre>
+ *
  * <p>Please refer to the GitHub repository's samples for more quickstart code snippets.
  */
 @Generated("by gapic-generator-java")
 public class StorageControlClient implements BackgroundResource {
   private final StorageControlSettings settings;
   private final StorageControlStub stub;
-  private final OperationsClient operationsClient;
+  private final OperationsClient httpJsonOperationsClient;
+  private final com.google.longrunning.OperationsClient operationsClient;
 
   /** Constructs an instance of StorageControlClient with default settings. */
   public static final StorageControlClient create() throws IOException {
@@ -585,13 +601,17 @@ public class StorageControlClient implements BackgroundResource {
   protected StorageControlClient(StorageControlSettings settings) throws IOException {
     this.settings = settings;
     this.stub = ((StorageControlStubSettings) settings.getStubSettings()).createStub();
-    this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
+    this.operationsClient =
+        com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
+    this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
   }
 
   protected StorageControlClient(StorageControlStub stub) {
     this.settings = null;
     this.stub = stub;
-    this.operationsClient = OperationsClient.create(this.stub.getOperationsStub());
+    this.operationsClient =
+        com.google.longrunning.OperationsClient.create(this.stub.getOperationsStub());
+    this.httpJsonOperationsClient = OperationsClient.create(this.stub.getHttpJsonOperationsStub());
   }
 
   public final StorageControlSettings getSettings() {
@@ -606,10 +626,19 @@ public class StorageControlClient implements BackgroundResource {
    * Returns the OperationsClient that can be used to query the status of a long-running operation
    * returned by another API method call.
    */
-  public final OperationsClient getOperationsClient() {
+  public final com.google.longrunning.OperationsClient getOperationsClient() {
     return operationsClient;
   }
 
+  /**
+   * Returns the OperationsClient that can be used to query the status of a long-running operation
+   * returned by another API method call.
+   */
+  @BetaApi
+  public final OperationsClient getHttpJsonOperationsClient() {
+    return httpJsonOperationsClient;
+  }
+
   // AUTO-GENERATED DOCUMENTATION AND METHOD.
   /**
    * Creates a new folder. This operation is only applicable to a hierarchical namespace enabled
diff --git a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/StorageControlSettings.java b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/StorageControlSettings.java
index a7bee17d..286869bc 100644
--- a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/StorageControlSettings.java
+++ b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/StorageControlSettings.java
@@ -21,9 +21,11 @@ import static com.google.storage.control.v2.StorageControlClient.ListFoldersPage
 import static com.google.storage.control.v2.StorageControlClient.ListManagedFoldersPagedResponse;
 
 import com.google.api.core.ApiFunction;
+import com.google.api.core.BetaApi;
 import com.google.api.gax.core.GoogleCredentialsProvider;
 import com.google.api.gax.core.InstantiatingExecutorProvider;
 import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
 import com.google.api.gax.rpc.ApiClientHeaderProvider;
 import com.google.api.gax.rpc.ClientContext;
 import com.google.api.gax.rpc.ClientSettings;
@@ -297,11 +299,18 @@ public class StorageControlSettings extends ClientSettings<StorageControlSetting
     return StorageControlStubSettings.defaultCredentialsProviderBuilder();
   }
 
-  /** Returns a builder for the default ChannelProvider for this service. */
+  /** Returns a builder for the default gRPC ChannelProvider for this service. */
   public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
     return StorageControlStubSettings.defaultGrpcTransportProviderBuilder();
   }
 
+  /** Returns a builder for the default REST ChannelProvider for this service. */
+  @BetaApi
+  public static InstantiatingHttpJsonChannelProvider.Builder
+      defaultHttpJsonTransportProviderBuilder() {
+    return StorageControlStubSettings.defaultHttpJsonTransportProviderBuilder();
+  }
+
   public static TransportChannelProvider defaultTransportChannelProvider() {
     return StorageControlStubSettings.defaultTransportChannelProvider();
   }
@@ -310,11 +319,16 @@ public class StorageControlSettings extends ClientSettings<StorageControlSetting
     return StorageControlStubSettings.defaultApiClientHeaderProviderBuilder();
   }
 
-  /** Returns a new builder for this class. */
+  /** Returns a new gRPC builder for this class. */
   public static Builder newBuilder() {
     return Builder.createDefault();
   }
 
+  /** Returns a new REST builder for this class. */
+  public static Builder newHttpJsonBuilder() {
+    return Builder.createHttpJsonDefault();
+  }
+
   /** Returns a new builder for this class. */
   public static Builder newBuilder(ClientContext clientContext) {
     return new Builder(clientContext);
@@ -352,6 +366,10 @@ public class StorageControlSettings extends ClientSettings<StorageControlSetting
       return new Builder(StorageControlStubSettings.newBuilder());
     }
 
+    private static Builder createHttpJsonDefault() {
+      return new Builder(StorageControlStubSettings.newHttpJsonBuilder());
+    }
+
     public StorageControlStubSettings.Builder getStubSettingsBuilder() {
       return ((StorageControlStubSettings.Builder) getStubSettings());
     }
diff --git a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/HttpJsonStorageControlCallableFactory.java b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/HttpJsonStorageControlCallableFactory.java
new file mode 100644
index 00000000..dac9e065
--- /dev/null
+++ b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/HttpJsonStorageControlCallableFactory.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.storage.control.v2.stub;
+
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonCallableFactory;
+import com.google.api.gax.httpjson.HttpJsonOperationSnapshotCallable;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.longrunning.stub.OperationsStub;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.OperationCallSettings;
+import com.google.api.gax.rpc.OperationCallable;
+import com.google.api.gax.rpc.PagedCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallSettings;
+import com.google.api.gax.rpc.ServerStreamingCallable;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST callable factory implementation for the StorageControl service API.
+ *
+ * <p>This class is for advanced usage.
+ */
+@Generated("by gapic-generator-java")
+public class HttpJsonStorageControlCallableFactory
+    implements HttpJsonStubCallableFactory<Operation, OperationsStub> {
+
+  @Override
+  public <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createUnaryCallable(
+      HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
+      UnaryCallSettings<RequestT, ResponseT> callSettings,
+      ClientContext clientContext) {
+    return HttpJsonCallableFactory.createUnaryCallable(
+        httpJsonCallSettings, callSettings, clientContext);
+  }
+
+  @Override
+  public <RequestT, ResponseT, PagedListResponseT>
+      UnaryCallable<RequestT, PagedListResponseT> createPagedCallable(
+          HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
+          PagedCallSettings<RequestT, ResponseT, PagedListResponseT> callSettings,
+          ClientContext clientContext) {
+    return HttpJsonCallableFactory.createPagedCallable(
+        httpJsonCallSettings, callSettings, clientContext);
+  }
+
+  @Override
+  public <RequestT, ResponseT> UnaryCallable<RequestT, ResponseT> createBatchingCallable(
+      HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
+      BatchingCallSettings<RequestT, ResponseT> callSettings,
+      ClientContext clientContext) {
+    return HttpJsonCallableFactory.createBatchingCallable(
+        httpJsonCallSettings, callSettings, clientContext);
+  }
+
+  @Override
+  public <RequestT, ResponseT, MetadataT>
+      OperationCallable<RequestT, ResponseT, MetadataT> createOperationCallable(
+          HttpJsonCallSettings<RequestT, Operation> httpJsonCallSettings,
+          OperationCallSettings<RequestT, ResponseT, MetadataT> callSettings,
+          ClientContext clientContext,
+          OperationsStub operationsStub) {
+    UnaryCallable<RequestT, Operation> innerCallable =
+        HttpJsonCallableFactory.createBaseUnaryCallable(
+            httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext);
+    HttpJsonOperationSnapshotCallable<RequestT, Operation> initialCallable =
+        new HttpJsonOperationSnapshotCallable<RequestT, Operation>(
+            innerCallable,
+            httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory());
+    return HttpJsonCallableFactory.createOperationCallable(
+        callSettings, clientContext, operationsStub.longRunningClient(), initialCallable);
+  }
+
+  @Override
+  public <RequestT, ResponseT>
+      ServerStreamingCallable<RequestT, ResponseT> createServerStreamingCallable(
+          HttpJsonCallSettings<RequestT, ResponseT> httpJsonCallSettings,
+          ServerStreamingCallSettings<RequestT, ResponseT> callSettings,
+          ClientContext clientContext) {
+    return HttpJsonCallableFactory.createServerStreamingCallable(
+        httpJsonCallSettings, callSettings, clientContext);
+  }
+}
diff --git a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/HttpJsonStorageControlStub.java b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/HttpJsonStorageControlStub.java
new file mode 100644
index 00000000..9aed10cf
--- /dev/null
+++ b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/HttpJsonStorageControlStub.java
@@ -0,0 +1,727 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.storage.control.v2.stub;
+
+import com.google.api.core.InternalApi;
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.core.BackgroundResourceAggregation;
+import com.google.api.gax.httpjson.ApiMethodDescriptor;
+import com.google.api.gax.httpjson.HttpJsonCallSettings;
+import com.google.api.gax.httpjson.HttpJsonStubCallableFactory;
+import com.google.api.gax.httpjson.ProtoMessageRequestFormatter;
+import com.google.api.gax.httpjson.ProtoMessageResponseParser;
+import com.google.api.gax.httpjson.ProtoRestSerializer;
+import com.google.api.gax.httpjson.longrunning.stub.HttpJsonOperationsStub;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.RequestParamsBuilder;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.Operation;
+import com.google.protobuf.Empty;
+import com.google.protobuf.TypeRegistry;
+import com.google.storage.control.v2.AnywhereCache;
+import com.google.storage.control.v2.CreateAnywhereCacheMetadata;
+import com.google.storage.control.v2.CreateAnywhereCacheRequest;
+import com.google.storage.control.v2.CreateFolderRequest;
+import com.google.storage.control.v2.CreateManagedFolderRequest;
+import com.google.storage.control.v2.DeleteFolderRequest;
+import com.google.storage.control.v2.DeleteManagedFolderRequest;
+import com.google.storage.control.v2.DisableAnywhereCacheRequest;
+import com.google.storage.control.v2.Folder;
+import com.google.storage.control.v2.GetAnywhereCacheRequest;
+import com.google.storage.control.v2.GetFolderIntelligenceConfigRequest;
+import com.google.storage.control.v2.GetFolderRequest;
+import com.google.storage.control.v2.GetManagedFolderRequest;
+import com.google.storage.control.v2.GetOrganizationIntelligenceConfigRequest;
+import com.google.storage.control.v2.GetProjectIntelligenceConfigRequest;
+import com.google.storage.control.v2.GetStorageLayoutRequest;
+import com.google.storage.control.v2.IntelligenceConfig;
+import com.google.storage.control.v2.ListAnywhereCachesRequest;
+import com.google.storage.control.v2.ListAnywhereCachesResponse;
+import com.google.storage.control.v2.ListFoldersRequest;
+import com.google.storage.control.v2.ListFoldersResponse;
+import com.google.storage.control.v2.ListManagedFoldersRequest;
+import com.google.storage.control.v2.ListManagedFoldersResponse;
+import com.google.storage.control.v2.ManagedFolder;
+import com.google.storage.control.v2.PauseAnywhereCacheRequest;
+import com.google.storage.control.v2.RenameFolderMetadata;
+import com.google.storage.control.v2.RenameFolderRequest;
+import com.google.storage.control.v2.ResumeAnywhereCacheRequest;
+import com.google.storage.control.v2.StorageLayout;
+import com.google.storage.control.v2.UpdateAnywhereCacheMetadata;
+import com.google.storage.control.v2.UpdateAnywhereCacheRequest;
+import com.google.storage.control.v2.UpdateFolderIntelligenceConfigRequest;
+import com.google.storage.control.v2.UpdateOrganizationIntelligenceConfigRequest;
+import com.google.storage.control.v2.UpdateProjectIntelligenceConfigRequest;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.TimeUnit;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * REST stub implementation for the StorageControl service API.
+ *
+ * <p>This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public class HttpJsonStorageControlStub extends StorageControlStub {
+  private static final TypeRegistry typeRegistry =
+      TypeRegistry.newBuilder()
+          .add(RenameFolderMetadata.getDescriptor())
+          .add(Folder.getDescriptor())
+          .add(AnywhereCache.getDescriptor())
+          .add(UpdateAnywhereCacheMetadata.getDescriptor())
+          .add(CreateAnywhereCacheMetadata.getDescriptor())
+          .build();
+
+  private static final ApiMethodDescriptor<GetProjectIntelligenceConfigRequest, IntelligenceConfig>
+      getProjectIntelligenceConfigMethodDescriptor =
+          ApiMethodDescriptor.<GetProjectIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+              .setFullMethodName(
+                  "google.storage.control.v2.StorageControl/GetProjectIntelligenceConfig")
+              .setHttpMethod("GET")
+              .setType(ApiMethodDescriptor.MethodType.UNARY)
+              .setRequestFormatter(
+                  ProtoMessageRequestFormatter.<GetProjectIntelligenceConfigRequest>newBuilder()
+                      .setPath(
+                          "/v2/{name=projects/*/locations/*/intelligenceConfig}",
+                          request -> {
+                            Map<String, String> fields = new HashMap<>();
+                            ProtoRestSerializer<GetProjectIntelligenceConfigRequest> serializer =
+                                ProtoRestSerializer.create();
+                            serializer.putPathParam(fields, "name", request.getName());
+                            return fields;
+                          })
+                      .setQueryParamsExtractor(
+                          request -> {
+                            Map<String, List<String>> fields = new HashMap<>();
+                            ProtoRestSerializer<GetProjectIntelligenceConfigRequest> serializer =
+                                ProtoRestSerializer.create();
+                            serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+                            return fields;
+                          })
+                      .setRequestBodyExtractor(request -> null)
+                      .build())
+              .setResponseParser(
+                  ProtoMessageResponseParser.<IntelligenceConfig>newBuilder()
+                      .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+                      .setDefaultTypeRegistry(typeRegistry)
+                      .build())
+              .build();
+
+  private static final ApiMethodDescriptor<
+          UpdateProjectIntelligenceConfigRequest, IntelligenceConfig>
+      updateProjectIntelligenceConfigMethodDescriptor =
+          ApiMethodDescriptor
+              .<UpdateProjectIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+              .setFullMethodName(
+                  "google.storage.control.v2.StorageControl/UpdateProjectIntelligenceConfig")
+              .setHttpMethod("PATCH")
+              .setType(ApiMethodDescriptor.MethodType.UNARY)
+              .setRequestFormatter(
+                  ProtoMessageRequestFormatter.<UpdateProjectIntelligenceConfigRequest>newBuilder()
+                      .setPath(
+                          "/v2/{intelligenceConfig.name=projects/*/locations/*/intelligenceConfig}",
+                          request -> {
+                            Map<String, String> fields = new HashMap<>();
+                            ProtoRestSerializer<UpdateProjectIntelligenceConfigRequest> serializer =
+                                ProtoRestSerializer.create();
+                            serializer.putPathParam(
+                                fields,
+                                "intelligenceConfig.name",
+                                request.getIntelligenceConfig().getName());
+                            return fields;
+                          })
+                      .setQueryParamsExtractor(
+                          request -> {
+                            Map<String, List<String>> fields = new HashMap<>();
+                            ProtoRestSerializer<UpdateProjectIntelligenceConfigRequest> serializer =
+                                ProtoRestSerializer.create();
+                            serializer.putQueryParam(fields, "requestId", request.getRequestId());
+                            serializer.putQueryParam(fields, "updateMask", request.getUpdateMask());
+                            serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+                            return fields;
+                          })
+                      .setRequestBodyExtractor(
+                          request ->
+                              ProtoRestSerializer.create()
+                                  .toBody(
+                                      "intelligenceConfig", request.getIntelligenceConfig(), true))
+                      .build())
+              .setResponseParser(
+                  ProtoMessageResponseParser.<IntelligenceConfig>newBuilder()
+                      .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+                      .setDefaultTypeRegistry(typeRegistry)
+                      .build())
+              .build();
+
+  private static final ApiMethodDescriptor<GetFolderIntelligenceConfigRequest, IntelligenceConfig>
+      getFolderIntelligenceConfigMethodDescriptor =
+          ApiMethodDescriptor.<GetFolderIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+              .setFullMethodName(
+                  "google.storage.control.v2.StorageControl/GetFolderIntelligenceConfig")
+              .setHttpMethod("GET")
+              .setType(ApiMethodDescriptor.MethodType.UNARY)
+              .setRequestFormatter(
+                  ProtoMessageRequestFormatter.<GetFolderIntelligenceConfigRequest>newBuilder()
+                      .setPath(
+                          "/v2/{name=folders/*/locations/*/intelligenceConfig}",
+                          request -> {
+                            Map<String, String> fields = new HashMap<>();
+                            ProtoRestSerializer<GetFolderIntelligenceConfigRequest> serializer =
+                                ProtoRestSerializer.create();
+                            serializer.putPathParam(fields, "name", request.getName());
+                            return fields;
+                          })
+                      .setQueryParamsExtractor(
+                          request -> {
+                            Map<String, List<String>> fields = new HashMap<>();
+                            ProtoRestSerializer<GetFolderIntelligenceConfigRequest> serializer =
+                                ProtoRestSerializer.create();
+                            serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+                            return fields;
+                          })
+                      .setRequestBodyExtractor(request -> null)
+                      .build())
+              .setResponseParser(
+                  ProtoMessageResponseParser.<IntelligenceConfig>newBuilder()
+                      .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+                      .setDefaultTypeRegistry(typeRegistry)
+                      .build())
+              .build();
+
+  private static final ApiMethodDescriptor<
+          UpdateFolderIntelligenceConfigRequest, IntelligenceConfig>
+      updateFolderIntelligenceConfigMethodDescriptor =
+          ApiMethodDescriptor
+              .<UpdateFolderIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+              .setFullMethodName(
+                  "google.storage.control.v2.StorageControl/UpdateFolderIntelligenceConfig")
+              .setHttpMethod("PATCH")
+              .setType(ApiMethodDescriptor.MethodType.UNARY)
+              .setRequestFormatter(
+                  ProtoMessageRequestFormatter.<UpdateFolderIntelligenceConfigRequest>newBuilder()
+                      .setPath(
+                          "/v2/{intelligenceConfig.name=folders/*/locations/*/intelligenceConfig}",
+                          request -> {
+                            Map<String, String> fields = new HashMap<>();
+                            ProtoRestSerializer<UpdateFolderIntelligenceConfigRequest> serializer =
+                                ProtoRestSerializer.create();
+                            serializer.putPathParam(
+                                fields,
+                                "intelligenceConfig.name",
+                                request.getIntelligenceConfig().getName());
+                            return fields;
+                          })
+                      .setQueryParamsExtractor(
+                          request -> {
+                            Map<String, List<String>> fields = new HashMap<>();
+                            ProtoRestSerializer<UpdateFolderIntelligenceConfigRequest> serializer =
+                                ProtoRestSerializer.create();
+                            serializer.putQueryParam(fields, "requestId", request.getRequestId());
+                            serializer.putQueryParam(fields, "updateMask", request.getUpdateMask());
+                            serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+                            return fields;
+                          })
+                      .setRequestBodyExtractor(
+                          request ->
+                              ProtoRestSerializer.create()
+                                  .toBody(
+                                      "intelligenceConfig", request.getIntelligenceConfig(), true))
+                      .build())
+              .setResponseParser(
+                  ProtoMessageResponseParser.<IntelligenceConfig>newBuilder()
+                      .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+                      .setDefaultTypeRegistry(typeRegistry)
+                      .build())
+              .build();
+
+  private static final ApiMethodDescriptor<
+          GetOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+      getOrganizationIntelligenceConfigMethodDescriptor =
+          ApiMethodDescriptor
+              .<GetOrganizationIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+              .setFullMethodName(
+                  "google.storage.control.v2.StorageControl/GetOrganizationIntelligenceConfig")
+              .setHttpMethod("GET")
+              .setType(ApiMethodDescriptor.MethodType.UNARY)
+              .setRequestFormatter(
+                  ProtoMessageRequestFormatter
+                      .<GetOrganizationIntelligenceConfigRequest>newBuilder()
+                      .setPath(
+                          "/v2/{name=organizations/*/locations/*/intelligenceConfig}",
+                          request -> {
+                            Map<String, String> fields = new HashMap<>();
+                            ProtoRestSerializer<GetOrganizationIntelligenceConfigRequest>
+                                serializer = ProtoRestSerializer.create();
+                            serializer.putPathParam(fields, "name", request.getName());
+                            return fields;
+                          })
+                      .setQueryParamsExtractor(
+                          request -> {
+                            Map<String, List<String>> fields = new HashMap<>();
+                            ProtoRestSerializer<GetOrganizationIntelligenceConfigRequest>
+                                serializer = ProtoRestSerializer.create();
+                            serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+                            return fields;
+                          })
+                      .setRequestBodyExtractor(request -> null)
+                      .build())
+              .setResponseParser(
+                  ProtoMessageResponseParser.<IntelligenceConfig>newBuilder()
+                      .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+                      .setDefaultTypeRegistry(typeRegistry)
+                      .build())
+              .build();
+
+  private static final ApiMethodDescriptor<
+          UpdateOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+      updateOrganizationIntelligenceConfigMethodDescriptor =
+          ApiMethodDescriptor
+              .<UpdateOrganizationIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+              .setFullMethodName(
+                  "google.storage.control.v2.StorageControl/UpdateOrganizationIntelligenceConfig")
+              .setHttpMethod("PATCH")
+              .setType(ApiMethodDescriptor.MethodType.UNARY)
+              .setRequestFormatter(
+                  ProtoMessageRequestFormatter
+                      .<UpdateOrganizationIntelligenceConfigRequest>newBuilder()
+                      .setPath(
+                          "/v2/{intelligenceConfig.name=organizations/*/locations/*/intelligenceConfig}",
+                          request -> {
+                            Map<String, String> fields = new HashMap<>();
+                            ProtoRestSerializer<UpdateOrganizationIntelligenceConfigRequest>
+                                serializer = ProtoRestSerializer.create();
+                            serializer.putPathParam(
+                                fields,
+                                "intelligenceConfig.name",
+                                request.getIntelligenceConfig().getName());
+                            return fields;
+                          })
+                      .setQueryParamsExtractor(
+                          request -> {
+                            Map<String, List<String>> fields = new HashMap<>();
+                            ProtoRestSerializer<UpdateOrganizationIntelligenceConfigRequest>
+                                serializer = ProtoRestSerializer.create();
+                            serializer.putQueryParam(fields, "requestId", request.getRequestId());
+                            serializer.putQueryParam(fields, "updateMask", request.getUpdateMask());
+                            serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+                            return fields;
+                          })
+                      .setRequestBodyExtractor(
+                          request ->
+                              ProtoRestSerializer.create()
+                                  .toBody(
+                                      "intelligenceConfig", request.getIntelligenceConfig(), true))
+                      .build())
+              .setResponseParser(
+                  ProtoMessageResponseParser.<IntelligenceConfig>newBuilder()
+                      .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+                      .setDefaultTypeRegistry(typeRegistry)
+                      .build())
+              .build();
+
+  private final UnaryCallable<GetProjectIntelligenceConfigRequest, IntelligenceConfig>
+      getProjectIntelligenceConfigCallable;
+  private final UnaryCallable<UpdateProjectIntelligenceConfigRequest, IntelligenceConfig>
+      updateProjectIntelligenceConfigCallable;
+  private final UnaryCallable<GetFolderIntelligenceConfigRequest, IntelligenceConfig>
+      getFolderIntelligenceConfigCallable;
+  private final UnaryCallable<UpdateFolderIntelligenceConfigRequest, IntelligenceConfig>
+      updateFolderIntelligenceConfigCallable;
+  private final UnaryCallable<GetOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+      getOrganizationIntelligenceConfigCallable;
+  private final UnaryCallable<UpdateOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+      updateOrganizationIntelligenceConfigCallable;
+
+  private final BackgroundResource backgroundResources;
+  private final HttpJsonOperationsStub httpJsonOperationsStub;
+  private final HttpJsonStubCallableFactory callableFactory;
+
+  public static final HttpJsonStorageControlStub create(StorageControlStubSettings settings)
+      throws IOException {
+    return new HttpJsonStorageControlStub(settings, ClientContext.create(settings));
+  }
+
+  public static final HttpJsonStorageControlStub create(ClientContext clientContext)
+      throws IOException {
+    return new HttpJsonStorageControlStub(
+        StorageControlStubSettings.newHttpJsonBuilder().build(), clientContext);
+  }
+
+  public static final HttpJsonStorageControlStub create(
+      ClientContext clientContext, HttpJsonStubCallableFactory callableFactory) throws IOException {
+    return new HttpJsonStorageControlStub(
+        StorageControlStubSettings.newHttpJsonBuilder().build(), clientContext, callableFactory);
+  }
+
+  /**
+   * Constructs an instance of HttpJsonStorageControlStub, using the given settings. This is
+   * protected so that it is easy to make a subclass, but otherwise, the static factory methods
+   * should be preferred.
+   */
+  protected HttpJsonStorageControlStub(
+      StorageControlStubSettings settings, ClientContext clientContext) throws IOException {
+    this(settings, clientContext, new HttpJsonStorageControlCallableFactory());
+  }
+
+  /**
+   * Constructs an instance of HttpJsonStorageControlStub, using the given settings. This is
+   * protected so that it is easy to make a subclass, but otherwise, the static factory methods
+   * should be preferred.
+   */
+  protected HttpJsonStorageControlStub(
+      StorageControlStubSettings settings,
+      ClientContext clientContext,
+      HttpJsonStubCallableFactory callableFactory)
+      throws IOException {
+    this.callableFactory = callableFactory;
+    this.httpJsonOperationsStub =
+        HttpJsonOperationsStub.create(clientContext, callableFactory, typeRegistry);
+
+    HttpJsonCallSettings<GetProjectIntelligenceConfigRequest, IntelligenceConfig>
+        getProjectIntelligenceConfigTransportSettings =
+            HttpJsonCallSettings
+                .<GetProjectIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+                .setMethodDescriptor(getProjectIntelligenceConfigMethodDescriptor)
+                .setTypeRegistry(typeRegistry)
+                .setParamsExtractor(
+                    request -> {
+                      RequestParamsBuilder builder = RequestParamsBuilder.create();
+                      builder.add("name", String.valueOf(request.getName()));
+                      return builder.build();
+                    })
+                .build();
+    HttpJsonCallSettings<UpdateProjectIntelligenceConfigRequest, IntelligenceConfig>
+        updateProjectIntelligenceConfigTransportSettings =
+            HttpJsonCallSettings
+                .<UpdateProjectIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+                .setMethodDescriptor(updateProjectIntelligenceConfigMethodDescriptor)
+                .setTypeRegistry(typeRegistry)
+                .setParamsExtractor(
+                    request -> {
+                      RequestParamsBuilder builder = RequestParamsBuilder.create();
+                      builder.add(
+                          "intelligence_config.name",
+                          String.valueOf(request.getIntelligenceConfig().getName()));
+                      return builder.build();
+                    })
+                .build();
+    HttpJsonCallSettings<GetFolderIntelligenceConfigRequest, IntelligenceConfig>
+        getFolderIntelligenceConfigTransportSettings =
+            HttpJsonCallSettings
+                .<GetFolderIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+                .setMethodDescriptor(getFolderIntelligenceConfigMethodDescriptor)
+                .setTypeRegistry(typeRegistry)
+                .setParamsExtractor(
+                    request -> {
+                      RequestParamsBuilder builder = RequestParamsBuilder.create();
+                      builder.add("name", String.valueOf(request.getName()));
+                      return builder.build();
+                    })
+                .build();
+    HttpJsonCallSettings<UpdateFolderIntelligenceConfigRequest, IntelligenceConfig>
+        updateFolderIntelligenceConfigTransportSettings =
+            HttpJsonCallSettings
+                .<UpdateFolderIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+                .setMethodDescriptor(updateFolderIntelligenceConfigMethodDescriptor)
+                .setTypeRegistry(typeRegistry)
+                .setParamsExtractor(
+                    request -> {
+                      RequestParamsBuilder builder = RequestParamsBuilder.create();
+                      builder.add(
+                          "intelligence_config.name",
+                          String.valueOf(request.getIntelligenceConfig().getName()));
+                      return builder.build();
+                    })
+                .build();
+    HttpJsonCallSettings<GetOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+        getOrganizationIntelligenceConfigTransportSettings =
+            HttpJsonCallSettings
+                .<GetOrganizationIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+                .setMethodDescriptor(getOrganizationIntelligenceConfigMethodDescriptor)
+                .setTypeRegistry(typeRegistry)
+                .setParamsExtractor(
+                    request -> {
+                      RequestParamsBuilder builder = RequestParamsBuilder.create();
+                      builder.add("name", String.valueOf(request.getName()));
+                      return builder.build();
+                    })
+                .build();
+    HttpJsonCallSettings<UpdateOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+        updateOrganizationIntelligenceConfigTransportSettings =
+            HttpJsonCallSettings
+                .<UpdateOrganizationIntelligenceConfigRequest, IntelligenceConfig>newBuilder()
+                .setMethodDescriptor(updateOrganizationIntelligenceConfigMethodDescriptor)
+                .setTypeRegistry(typeRegistry)
+                .setParamsExtractor(
+                    request -> {
+                      RequestParamsBuilder builder = RequestParamsBuilder.create();
+                      builder.add(
+                          "intelligence_config.name",
+                          String.valueOf(request.getIntelligenceConfig().getName()));
+                      return builder.build();
+                    })
+                .build();
+
+    this.getProjectIntelligenceConfigCallable =
+        callableFactory.createUnaryCallable(
+            getProjectIntelligenceConfigTransportSettings,
+            settings.getProjectIntelligenceConfigSettings(),
+            clientContext);
+    this.updateProjectIntelligenceConfigCallable =
+        callableFactory.createUnaryCallable(
+            updateProjectIntelligenceConfigTransportSettings,
+            settings.updateProjectIntelligenceConfigSettings(),
+            clientContext);
+    this.getFolderIntelligenceConfigCallable =
+        callableFactory.createUnaryCallable(
+            getFolderIntelligenceConfigTransportSettings,
+            settings.getFolderIntelligenceConfigSettings(),
+            clientContext);
+    this.updateFolderIntelligenceConfigCallable =
+        callableFactory.createUnaryCallable(
+            updateFolderIntelligenceConfigTransportSettings,
+            settings.updateFolderIntelligenceConfigSettings(),
+            clientContext);
+    this.getOrganizationIntelligenceConfigCallable =
+        callableFactory.createUnaryCallable(
+            getOrganizationIntelligenceConfigTransportSettings,
+            settings.getOrganizationIntelligenceConfigSettings(),
+            clientContext);
+    this.updateOrganizationIntelligenceConfigCallable =
+        callableFactory.createUnaryCallable(
+            updateOrganizationIntelligenceConfigTransportSettings,
+            settings.updateOrganizationIntelligenceConfigSettings(),
+            clientContext);
+
+    this.backgroundResources =
+        new BackgroundResourceAggregation(clientContext.getBackgroundResources());
+  }
+
+  @InternalApi
+  public static List<ApiMethodDescriptor> getMethodDescriptors() {
+    List<ApiMethodDescriptor> methodDescriptors = new ArrayList<>();
+    methodDescriptors.add(getProjectIntelligenceConfigMethodDescriptor);
+    methodDescriptors.add(updateProjectIntelligenceConfigMethodDescriptor);
+    methodDescriptors.add(getFolderIntelligenceConfigMethodDescriptor);
+    methodDescriptors.add(updateFolderIntelligenceConfigMethodDescriptor);
+    methodDescriptors.add(getOrganizationIntelligenceConfigMethodDescriptor);
+    methodDescriptors.add(updateOrganizationIntelligenceConfigMethodDescriptor);
+    return methodDescriptors;
+  }
+
+  public HttpJsonOperationsStub getHttpJsonOperationsStub() {
+    return httpJsonOperationsStub;
+  }
+
+  @Override
+  public UnaryCallable<GetProjectIntelligenceConfigRequest, IntelligenceConfig>
+      getProjectIntelligenceConfigCallable() {
+    return getProjectIntelligenceConfigCallable;
+  }
+
+  @Override
+  public UnaryCallable<UpdateProjectIntelligenceConfigRequest, IntelligenceConfig>
+      updateProjectIntelligenceConfigCallable() {
+    return updateProjectIntelligenceConfigCallable;
+  }
+
+  @Override
+  public UnaryCallable<GetFolderIntelligenceConfigRequest, IntelligenceConfig>
+      getFolderIntelligenceConfigCallable() {
+    return getFolderIntelligenceConfigCallable;
+  }
+
+  @Override
+  public UnaryCallable<UpdateFolderIntelligenceConfigRequest, IntelligenceConfig>
+      updateFolderIntelligenceConfigCallable() {
+    return updateFolderIntelligenceConfigCallable;
+  }
+
+  @Override
+  public UnaryCallable<GetOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+      getOrganizationIntelligenceConfigCallable() {
+    return getOrganizationIntelligenceConfigCallable;
+  }
+
+  @Override
+  public UnaryCallable<UpdateOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+      updateOrganizationIntelligenceConfigCallable() {
+    return updateOrganizationIntelligenceConfigCallable;
+  }
+
+  @Override
+  public UnaryCallable<CreateFolderRequest, Folder> createFolderCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: createFolderCallable(). REST transport is not implemented for this method"
+            + " yet.");
+  }
+
+  @Override
+  public UnaryCallable<DeleteFolderRequest, Empty> deleteFolderCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: deleteFolderCallable(). REST transport is not implemented for this method"
+            + " yet.");
+  }
+
+  @Override
+  public UnaryCallable<GetFolderRequest, Folder> getFolderCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: getFolderCallable(). REST transport is not implemented for this method"
+            + " yet.");
+  }
+
+  @Override
+  public UnaryCallable<ListFoldersRequest, ListFoldersResponse> listFoldersCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: listFoldersCallable(). REST transport is not implemented for this method"
+            + " yet.");
+  }
+
+  @Override
+  public UnaryCallable<RenameFolderRequest, Operation> renameFolderCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: renameFolderCallable(). REST transport is not implemented for this method"
+            + " yet.");
+  }
+
+  @Override
+  public UnaryCallable<GetStorageLayoutRequest, StorageLayout> getStorageLayoutCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: getStorageLayoutCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<CreateManagedFolderRequest, ManagedFolder> createManagedFolderCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: createManagedFolderCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<DeleteManagedFolderRequest, Empty> deleteManagedFolderCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: deleteManagedFolderCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<GetManagedFolderRequest, ManagedFolder> getManagedFolderCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: getManagedFolderCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<ListManagedFoldersRequest, ListManagedFoldersResponse>
+      listManagedFoldersCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: listManagedFoldersCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<CreateAnywhereCacheRequest, Operation> createAnywhereCacheCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: createAnywhereCacheCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<UpdateAnywhereCacheRequest, Operation> updateAnywhereCacheCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: updateAnywhereCacheCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<DisableAnywhereCacheRequest, AnywhereCache> disableAnywhereCacheCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: disableAnywhereCacheCallable(). REST transport is not implemented for"
+            + " this method yet.");
+  }
+
+  @Override
+  public UnaryCallable<PauseAnywhereCacheRequest, AnywhereCache> pauseAnywhereCacheCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: pauseAnywhereCacheCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<ResumeAnywhereCacheRequest, AnywhereCache> resumeAnywhereCacheCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: resumeAnywhereCacheCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<GetAnywhereCacheRequest, AnywhereCache> getAnywhereCacheCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: getAnywhereCacheCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public UnaryCallable<ListAnywhereCachesRequest, ListAnywhereCachesResponse>
+      listAnywhereCachesCallable() {
+    throw new UnsupportedOperationException(
+        "Not implemented: listAnywhereCachesCallable(). REST transport is not implemented for this"
+            + " method yet.");
+  }
+
+  @Override
+  public final void close() {
+    try {
+      backgroundResources.close();
+    } catch (RuntimeException e) {
+      throw e;
+    } catch (Exception e) {
+      throw new IllegalStateException("Failed to close resource", e);
+    }
+  }
+
+  @Override
+  public void shutdown() {
+    backgroundResources.shutdown();
+  }
+
+  @Override
+  public boolean isShutdown() {
+    return backgroundResources.isShutdown();
+  }
+
+  @Override
+  public boolean isTerminated() {
+    return backgroundResources.isTerminated();
+  }
+
+  @Override
+  public void shutdownNow() {
+    backgroundResources.shutdownNow();
+  }
+
+  @Override
+  public boolean awaitTermination(long duration, TimeUnit unit) throws InterruptedException {
+    return backgroundResources.awaitTermination(duration, unit);
+  }
+}
diff --git a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/StorageControlStub.java b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/StorageControlStub.java
index 30efedc1..5bab8877 100644
--- a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/StorageControlStub.java
+++ b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/StorageControlStub.java
@@ -72,7 +72,11 @@ import javax.annotation.Generated;
 public abstract class StorageControlStub implements BackgroundResource {
 
   public OperationsStub getOperationsStub() {
-    throw new UnsupportedOperationException("Not implemented: getOperationsStub()");
+    return null;
+  }
+
+  public com.google.api.gax.httpjson.longrunning.stub.OperationsStub getHttpJsonOperationsStub() {
+    return null;
   }
 
   public UnaryCallable<CreateFolderRequest, Folder> createFolderCallable() {
diff --git a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/StorageControlStubSettings.java b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/StorageControlStubSettings.java
index 629353b7..d0191ad4 100644
--- a/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/StorageControlStubSettings.java
+++ b/google-cloud-storage-control/src/main/java/com/google/storage/control/v2/stub/StorageControlStubSettings.java
@@ -22,6 +22,7 @@ import static com.google.storage.control.v2.StorageControlClient.ListManagedFold
 
 import com.google.api.core.ApiFunction;
 import com.google.api.core.ApiFuture;
+import com.google.api.core.BetaApi;
 import com.google.api.core.ObsoleteApi;
 import com.google.api.gax.core.GaxProperties;
 import com.google.api.gax.core.GoogleCredentialsProvider;
@@ -30,6 +31,9 @@ import com.google.api.gax.grpc.GaxGrpcProperties;
 import com.google.api.gax.grpc.GrpcTransportChannel;
 import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider;
 import com.google.api.gax.grpc.ProtoOperationTransformers;
+import com.google.api.gax.httpjson.GaxHttpJsonProperties;
+import com.google.api.gax.httpjson.HttpJsonTransportChannel;
+import com.google.api.gax.httpjson.InstantiatingHttpJsonChannelProvider;
 import com.google.api.gax.longrunning.OperationSnapshot;
 import com.google.api.gax.longrunning.OperationTimedPollAlgorithm;
 import com.google.api.gax.retrying.RetrySettings;
@@ -554,6 +558,11 @@ public class StorageControlStubSettings extends StubSettings<StorageControlStubS
         .equals(GrpcTransportChannel.getGrpcTransportName())) {
       return GrpcStorageControlStub.create(this);
     }
+    if (getTransportChannelProvider()
+        .getTransportName()
+        .equals(HttpJsonTransportChannel.getHttpJsonTransportName())) {
+      return HttpJsonStorageControlStub.create(this);
+    }
     throw new UnsupportedOperationException(
         String.format(
             "Transport not supported: %s", getTransportChannelProvider().getTransportName()));
@@ -593,17 +602,24 @@ public class StorageControlStubSettings extends StubSettings<StorageControlStubS
         .setUseJwtAccessWithScope(true);
   }
 
-  /** Returns a builder for the default ChannelProvider for this service. */
+  /** Returns a builder for the default gRPC ChannelProvider for this service. */
   public static InstantiatingGrpcChannelProvider.Builder defaultGrpcTransportProviderBuilder() {
     return InstantiatingGrpcChannelProvider.newBuilder()
         .setMaxInboundMessageSize(Integer.MAX_VALUE);
   }
 
+  /** Returns a builder for the default REST ChannelProvider for this service. */
+  @BetaApi
+  public static InstantiatingHttpJsonChannelProvider.Builder
+      defaultHttpJsonTransportProviderBuilder() {
+    return InstantiatingHttpJsonChannelProvider.newBuilder();
+  }
+
   public static TransportChannelProvider defaultTransportChannelProvider() {
     return defaultGrpcTransportProviderBuilder().build();
   }
 
-  public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
+  public static ApiClientHeaderProvider.Builder defaultGrpcApiClientHeaderProviderBuilder() {
     return ApiClientHeaderProvider.newBuilder()
         .setGeneratedLibToken(
             "gapic", GaxProperties.getLibraryVersion(StorageControlStubSettings.class))
@@ -611,11 +627,29 @@ public class StorageControlStubSettings extends StubSettings<StorageControlStubS
             GaxGrpcProperties.getGrpcTokenName(), GaxGrpcProperties.getGrpcVersion());
   }
 
-  /** Returns a new builder for this class. */
+  public static ApiClientHeaderProvider.Builder defaultHttpJsonApiClientHeaderProviderBuilder() {
+    return ApiClientHeaderProvider.newBuilder()
+        .setGeneratedLibToken(
+            "gapic", GaxProperties.getLibraryVersion(StorageControlStubSettings.class))
+        .setTransportToken(
+            GaxHttpJsonProperties.getHttpJsonTokenName(),
+            GaxHttpJsonProperties.getHttpJsonVersion());
+  }
+
+  public static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuilder() {
+    return StorageControlStubSettings.defaultGrpcApiClientHeaderProviderBuilder();
+  }
+
+  /** Returns a new gRPC builder for this class. */
   public static Builder newBuilder() {
     return Builder.createDefault();
   }
 
+  /** Returns a new REST builder for this class. */
+  public static Builder newHttpJsonBuilder() {
+    return Builder.createHttpJsonDefault();
+  }
+
   /** Returns a new builder for this class. */
   public static Builder newBuilder(ClientContext clientContext) {
     return new Builder(clientContext);
@@ -912,6 +946,18 @@ public class StorageControlStubSettings extends StubSettings<StorageControlStubS
       return initDefaults(builder);
     }
 
+    private static Builder createHttpJsonDefault() {
+      Builder builder = new Builder(((ClientContext) null));
+
+      builder.setTransportChannelProvider(defaultHttpJsonTransportProviderBuilder().build());
+      builder.setCredentialsProvider(defaultCredentialsProviderBuilder().build());
+      builder.setInternalHeaderProvider(defaultHttpJsonApiClientHeaderProviderBuilder().build());
+      builder.setMtlsEndpoint(getDefaultMtlsEndpoint());
+      builder.setSwitchToMtlsEndpointAllowed(true);
+
+      return initDefaults(builder);
+    }
+
     private static Builder initDefaults(Builder builder) {
       builder
           .createFolderSettings()
diff --git a/google-cloud-storage/pom.xml b/google-cloud-storage/pom.xml
index 211a1993..e8464b0a 100644
--- a/google-cloud-storage/pom.xml
+++ b/google-cloud-storage/pom.xml
@@ -331,7 +331,7 @@
     <dependency>
       <groupId>io.github.classgraph</groupId>
       <artifactId>classgraph</artifactId>
-      <version>4.8.179</version>
+      <version>4.8.180</version>
       <scope>test</scope>
     </dependency>
     <dependency>
diff --git a/renovate.json b/renovate.json
index 6ee6e25a..2ae8e233 100644
--- a/renovate.json
+++ b/renovate.json
@@ -20,16 +20,6 @@
       "matchStrings": ["uses: googleapis/sdk-platform-java/java-shared-dependencies/unmanaged-dependency-check@google-cloud-shared-dependencies/v(?<currentValue>.+?)\\n"],
       "depNameTemplate": "com.google.cloud:sdk-platform-java-config",
       "datasourceTemplate": "maven"
-    },
-    {
-      "fileMatch": [
-        ".github/workflows/hermetic_library_generation.yaml"
-      ],
-      "matchStrings": [
-        "uses: googleapis/sdk-platform-java/.github/scripts@v(?<currentValue>.+?)\\n"
-      ],
-      "depNameTemplate": "com.google.api:gapic-generator-java",
-      "datasourceTemplate": "maven"
     }
   ],
   "packageRules": [
diff --git a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheCreate.java b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheCreate.java
index d9736906..496b4e38 100644
--- a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheCreate.java
+++ b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheCreate.java
@@ -32,14 +32,13 @@ public final class AnywhereCacheCreate {
       throws InterruptedException, ExecutionException, IOException {
     try (StorageControlClient storageControl = StorageControlClient.create()) {
 
-      CreateAnywhereCacheRequest request = CreateAnywhereCacheRequest.newBuilder()
-          // Set project to "_" to signify globally scoped bucket
-          .setParent(BucketName.format("_", bucketName))
-          .setAnywhereCache(AnywhereCache.newBuilder()
-              .setName(cacheName)
-              .setZone(zoneName)
-              .build())
-          .build();
+      CreateAnywhereCacheRequest request =
+          CreateAnywhereCacheRequest.newBuilder()
+              // Set project to "_" to signify globally scoped bucket
+              .setParent(BucketName.format("_", bucketName))
+              .setAnywhereCache(
+                  AnywhereCache.newBuilder().setName(cacheName).setZone(zoneName).build())
+              .build();
 
       // Start a long-running operation (LRO).
       OperationFuture<AnywhereCache, CreateAnywhereCacheMetadata> operation =
@@ -50,6 +49,5 @@ public final class AnywhereCacheCreate {
       System.out.printf("Created anywhere cache: %s%n", anywhereCache.getName());
     }
   }
-
 }
 // [END storage_control_create_anywhere_cache]
diff --git a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheDisable.java b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheDisable.java
index c334268a..272efc91 100644
--- a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheDisable.java
+++ b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheDisable.java
@@ -28,15 +28,13 @@ public final class AnywhereCacheDisable {
   public static void anywhereCacheDisable(String cacheName) throws IOException {
     try (StorageControlClient storageControl = StorageControlClient.create()) {
 
-      DisableAnywhereCacheRequest request = DisableAnywhereCacheRequest.newBuilder()
-          .setName(cacheName)
-          .build();
+      DisableAnywhereCacheRequest request =
+          DisableAnywhereCacheRequest.newBuilder().setName(cacheName).build();
 
       AnywhereCache anywhereCache = storageControl.disableAnywhereCache(request);
 
       System.out.printf("Disabled anywhere cache: %s%n", anywhereCache.getName());
     }
   }
-
 }
 // [END storage_control_disable_anywhere_cache]
diff --git a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheGet.java b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheGet.java
index 978d5667..917dd3f2 100644
--- a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheGet.java
+++ b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheGet.java
@@ -28,15 +28,13 @@ public final class AnywhereCacheGet {
   public static void anywhereCacheGet(String cacheName) throws IOException {
     try (StorageControlClient storageControl = StorageControlClient.create()) {
 
-      GetAnywhereCacheRequest request = GetAnywhereCacheRequest.newBuilder()
-          .setName(cacheName)
-          .build();
+      GetAnywhereCacheRequest request =
+          GetAnywhereCacheRequest.newBuilder().setName(cacheName).build();
 
       AnywhereCache anywhereCache = storageControl.getAnywhereCache(request);
 
       System.out.printf("Got anywhere cache: %s%n", anywhereCache.getName());
     }
   }
-
 }
 // [END storage_control_get_anywhere_cache]
diff --git a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheList.java b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheList.java
index 95285f26..70c0f127 100644
--- a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheList.java
+++ b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheList.java
@@ -30,9 +30,10 @@ public final class AnywhereCacheList {
   public static void anywhereCacheList(String bucketName) throws IOException {
     try (StorageControlClient storageControl = StorageControlClient.create()) {
 
-      ListAnywhereCachesRequest request = ListAnywhereCachesRequest.newBuilder()
-          .setParent(BucketName.format("_", bucketName))
-          .build();
+      ListAnywhereCachesRequest request =
+          ListAnywhereCachesRequest.newBuilder()
+              .setParent(BucketName.format("_", bucketName))
+              .build();
 
       ListAnywhereCachesPagedResponse page = storageControl.listAnywhereCaches(request);
       for (AnywhereCache anywhereCache : page.iterateAll()) {
@@ -40,6 +41,5 @@ public final class AnywhereCacheList {
       }
     }
   }
-
 }
 // [END storage_control_list_anywhere_caches]
diff --git a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCachePause.java b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCachePause.java
index 6cea5575..bf4a20d7 100644
--- a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCachePause.java
+++ b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCachePause.java
@@ -28,15 +28,13 @@ public final class AnywhereCachePause {
   public static void anywhereCachePause(String cacheName) throws IOException {
     try (StorageControlClient storageControl = StorageControlClient.create()) {
 
-      PauseAnywhereCacheRequest request = PauseAnywhereCacheRequest.newBuilder()
-          .setName(cacheName)
-          .build();
+      PauseAnywhereCacheRequest request =
+          PauseAnywhereCacheRequest.newBuilder().setName(cacheName).build();
 
       AnywhereCache anywhereCache = storageControl.pauseAnywhereCache(request);
 
       System.out.printf("Paused anywhere cache: %s%n", anywhereCache.getName());
     }
   }
-
 }
 // [END storage_control_pause_anywhere_cache]
diff --git a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheResume.java b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheResume.java
index 3a246746..db02a6f3 100644
--- a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheResume.java
+++ b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheResume.java
@@ -28,15 +28,13 @@ public final class AnywhereCacheResume {
   public static void anywhereCacheResume(String cacheName) throws IOException {
     try (StorageControlClient storageControl = StorageControlClient.create()) {
 
-      ResumeAnywhereCacheRequest request = ResumeAnywhereCacheRequest.newBuilder()
-          .setName(cacheName)
-          .build();
+      ResumeAnywhereCacheRequest request =
+          ResumeAnywhereCacheRequest.newBuilder().setName(cacheName).build();
 
       AnywhereCache anywhereCache = storageControl.resumeAnywhereCache(request);
 
       System.out.printf("Resumed anywhere cache: %s%n", anywhereCache.getName());
     }
   }
-
 }
 // [END storage_control_resume_anywhere_cache]
diff --git a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheUpdate.java b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheUpdate.java
index 5cb666f2..558d66db 100644
--- a/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheUpdate.java
+++ b/samples/snippets/src/main/java/com/example/storage/control/v2/AnywhereCacheUpdate.java
@@ -33,19 +33,14 @@ public final class AnywhereCacheUpdate {
       throws InterruptedException, ExecutionException, IOException {
     try (StorageControlClient storageControl = StorageControlClient.create()) {
 
-      AnywhereCache pendingUpdate = AnywhereCache.newBuilder()
-          .setName(cacheName)
-          .setAdmissionPolicy(admissionPolicy)
-          .build();
-
-      UpdateAnywhereCacheRequest request = UpdateAnywhereCacheRequest.newBuilder()
-          .setAnywhereCache(pendingUpdate)
-          .setUpdateMask(
-              FieldMask.newBuilder()
-                  .addPaths("admission_policy")
-                  .build()
-          )
-          .build();
+      AnywhereCache pendingUpdate =
+          AnywhereCache.newBuilder().setName(cacheName).setAdmissionPolicy(admissionPolicy).build();
+
+      UpdateAnywhereCacheRequest request =
+          UpdateAnywhereCacheRequest.newBuilder()
+              .setAnywhereCache(pendingUpdate)
+              .setUpdateMask(FieldMask.newBuilder().addPaths("admission_policy").build())
+              .build();
 
       // Start a long-running operation (LRO).
       OperationFuture<AnywhereCache, UpdateAnywhereCacheMetadata> operation =
@@ -56,6 +51,5 @@ public final class AnywhereCacheUpdate {
       System.out.printf("Updated anywhere cache: %s%n", updatedAnywhereCache.getName());
     }
   }
-
 }
 // [END storage_control_update_anywhere_cache]


Test patch:
diff --git a/google-cloud-storage-control/src/test/java/com/google/storage/control/v2/StorageControlClientHttpJsonTest.java b/google-cloud-storage-control/src/test/java/com/google/storage/control/v2/StorageControlClientHttpJsonTest.java
new file mode 100644
index 00000000..e2769bba
--- /dev/null
+++ b/google-cloud-storage-control/src/test/java/com/google/storage/control/v2/StorageControlClientHttpJsonTest.java
@@ -0,0 +1,690 @@
+/*
+ * Copyright 2025 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      https://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.storage.control.v2;
+
+import com.google.api.gax.core.NoCredentialsProvider;
+import com.google.api.gax.httpjson.GaxHttpJsonProperties;
+import com.google.api.gax.httpjson.testing.MockHttpService;
+import com.google.api.gax.rpc.ApiClientHeaderProvider;
+import com.google.api.gax.rpc.ApiException;
+import com.google.api.gax.rpc.ApiExceptionFactory;
+import com.google.api.gax.rpc.InvalidArgumentException;
+import com.google.api.gax.rpc.StatusCode;
+import com.google.api.gax.rpc.testing.FakeStatusCode;
+import com.google.protobuf.FieldMask;
+import com.google.protobuf.Timestamp;
+import com.google.storage.control.v2.stub.HttpJsonStorageControlStub;
+import java.io.IOException;
+import java.util.List;
+import javax.annotation.Generated;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+
+@Generated("by gapic-generator-java")
+public class StorageControlClientHttpJsonTest {
+  private static MockHttpService mockService;
+  private static StorageControlClient client;
+
+  @BeforeClass
+  public static void startStaticServer() throws IOException {
+    mockService =
+        new MockHttpService(
+            HttpJsonStorageControlStub.getMethodDescriptors(),
+            StorageControlSettings.getDefaultEndpoint());
+    StorageControlSettings settings =
+        StorageControlSettings.newHttpJsonBuilder()
+            .setTransportChannelProvider(
+                StorageControlSettings.defaultHttpJsonTransportProviderBuilder()
+                    .setHttpTransport(mockService)
+                    .build())
+            .setCredentialsProvider(NoCredentialsProvider.create())
+            .build();
+    client = StorageControlClient.create(settings);
+  }
+
+  @AfterClass
+  public static void stopServer() {
+    client.close();
+  }
+
+  @Before
+  public void setUp() {}
+
+  @After
+  public void tearDown() throws Exception {
+    mockService.reset();
+  }
+
+  @Test
+  public void createFolderUnsupportedMethodTest() throws Exception {
+    // The createFolder() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void deleteFolderUnsupportedMethodTest() throws Exception {
+    // The deleteFolder() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void getFolderUnsupportedMethodTest() throws Exception {
+    // The getFolder() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void listFoldersUnsupportedMethodTest() throws Exception {
+    // The listFolders() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void renameFolderUnsupportedMethodTest() throws Exception {
+    // The renameFolder() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void getStorageLayoutUnsupportedMethodTest() throws Exception {
+    // The getStorageLayout() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void createManagedFolderUnsupportedMethodTest() throws Exception {
+    // The createManagedFolder() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void deleteManagedFolderUnsupportedMethodTest() throws Exception {
+    // The deleteManagedFolder() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void getManagedFolderUnsupportedMethodTest() throws Exception {
+    // The getManagedFolder() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void listManagedFoldersUnsupportedMethodTest() throws Exception {
+    // The listManagedFolders() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void createAnywhereCacheUnsupportedMethodTest() throws Exception {
+    // The createAnywhereCache() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void updateAnywhereCacheUnsupportedMethodTest() throws Exception {
+    // The updateAnywhereCache() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void disableAnywhereCacheUnsupportedMethodTest() throws Exception {
+    // The disableAnywhereCache() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void pauseAnywhereCacheUnsupportedMethodTest() throws Exception {
+    // The pauseAnywhereCache() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void resumeAnywhereCacheUnsupportedMethodTest() throws Exception {
+    // The resumeAnywhereCache() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void getAnywhereCacheUnsupportedMethodTest() throws Exception {
+    // The getAnywhereCache() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void listAnywhereCachesUnsupportedMethodTest() throws Exception {
+    // The listAnywhereCaches() method is not supported in REST transport.
+    // This empty test is generated for technical reasons.
+  }
+
+  @Test
+  public void getProjectIntelligenceConfigTest() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(
+                IntelligenceConfigName.ofProjectLocationName("[PROJECT]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    IntelligenceConfigName name =
+        IntelligenceConfigName.ofProjectLocationName("[PROJECT]", "[LOCATION]");
+
+    IntelligenceConfig actualResponse = client.getProjectIntelligenceConfig(name);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void getProjectIntelligenceConfigExceptionTest() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      IntelligenceConfigName name =
+          IntelligenceConfigName.ofProjectLocationName("[PROJECT]", "[LOCATION]");
+      client.getProjectIntelligenceConfig(name);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void getProjectIntelligenceConfigTest2() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(
+                IntelligenceConfigName.ofProjectLocationName("[PROJECT]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    String name = "projects/project-8842/locations/location-8842/intelligenceConfig";
+
+    IntelligenceConfig actualResponse = client.getProjectIntelligenceConfig(name);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void getProjectIntelligenceConfigExceptionTest2() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      String name = "projects/project-8842/locations/location-8842/intelligenceConfig";
+      client.getProjectIntelligenceConfig(name);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void updateProjectIntelligenceConfigTest() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(
+                IntelligenceConfigName.ofProjectLocationName("[PROJECT]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    IntelligenceConfig intelligenceConfig =
+        IntelligenceConfig.newBuilder()
+            .setName(
+                IntelligenceConfigName.ofProjectLocationName("[PROJECT]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    FieldMask updateMask = FieldMask.newBuilder().build();
+
+    IntelligenceConfig actualResponse =
+        client.updateProjectIntelligenceConfig(intelligenceConfig, updateMask);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void updateProjectIntelligenceConfigExceptionTest() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      IntelligenceConfig intelligenceConfig =
+          IntelligenceConfig.newBuilder()
+              .setName(
+                  IntelligenceConfigName.ofProjectLocationName("[PROJECT]", "[LOCATION]")
+                      .toString())
+              .setUpdateTime(Timestamp.newBuilder().build())
+              .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+              .setEffectiveIntelligenceConfig(
+                  IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+              .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+              .build();
+      FieldMask updateMask = FieldMask.newBuilder().build();
+      client.updateProjectIntelligenceConfig(intelligenceConfig, updateMask);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void getFolderIntelligenceConfigTest() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(
+                IntelligenceConfigName.ofFolderLocationName("[FOLDER]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    IntelligenceConfigName name =
+        IntelligenceConfigName.ofFolderLocationName("[FOLDER]", "[LOCATION]");
+
+    IntelligenceConfig actualResponse = client.getFolderIntelligenceConfig(name);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void getFolderIntelligenceConfigExceptionTest() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      IntelligenceConfigName name =
+          IntelligenceConfigName.ofFolderLocationName("[FOLDER]", "[LOCATION]");
+      client.getFolderIntelligenceConfig(name);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void getFolderIntelligenceConfigTest2() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(
+                IntelligenceConfigName.ofFolderLocationName("[FOLDER]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    String name = "folders/folder-8383/locations/location-8383/intelligenceConfig";
+
+    IntelligenceConfig actualResponse = client.getFolderIntelligenceConfig(name);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void getFolderIntelligenceConfigExceptionTest2() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      String name = "folders/folder-8383/locations/location-8383/intelligenceConfig";
+      client.getFolderIntelligenceConfig(name);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void updateFolderIntelligenceConfigTest() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(
+                IntelligenceConfigName.ofFolderLocationName("[FOLDER]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    IntelligenceConfig intelligenceConfig =
+        IntelligenceConfig.newBuilder()
+            .setName(
+                IntelligenceConfigName.ofFolderLocationName("[FOLDER]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    FieldMask updateMask = FieldMask.newBuilder().build();
+
+    IntelligenceConfig actualResponse =
+        client.updateFolderIntelligenceConfig(intelligenceConfig, updateMask);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void updateFolderIntelligenceConfigExceptionTest() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      IntelligenceConfig intelligenceConfig =
+          IntelligenceConfig.newBuilder()
+              .setName(
+                  IntelligenceConfigName.ofFolderLocationName("[FOLDER]", "[LOCATION]").toString())
+              .setUpdateTime(Timestamp.newBuilder().build())
+              .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+              .setEffectiveIntelligenceConfig(
+                  IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+              .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+              .build();
+      FieldMask updateMask = FieldMask.newBuilder().build();
+      client.updateFolderIntelligenceConfig(intelligenceConfig, updateMask);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void getOrganizationIntelligenceConfigTest() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(IntelligenceConfigName.ofOrgLocationName("[ORG]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    IntelligenceConfigName name = IntelligenceConfigName.ofOrgLocationName("[ORG]", "[LOCATION]");
+
+    IntelligenceConfig actualResponse = client.getOrganizationIntelligenceConfig(name);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void getOrganizationIntelligenceConfigExceptionTest() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      IntelligenceConfigName name = IntelligenceConfigName.ofOrgLocationName("[ORG]", "[LOCATION]");
+      client.getOrganizationIntelligenceConfig(name);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void getOrganizationIntelligenceConfigTest2() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(IntelligenceConfigName.ofOrgLocationName("[ORG]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    String name = "organizations/organization-1958/locations/location-1958/intelligenceConfig";
+
+    IntelligenceConfig actualResponse = client.getOrganizationIntelligenceConfig(name);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void getOrganizationIntelligenceConfigExceptionTest2() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      String name = "organizations/organization-1958/locations/location-1958/intelligenceConfig";
+      client.getOrganizationIntelligenceConfig(name);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+
+  @Test
+  public void updateOrganizationIntelligenceConfigTest() throws Exception {
+    IntelligenceConfig expectedResponse =
+        IntelligenceConfig.newBuilder()
+            .setName(IntelligenceConfigName.ofOrgLocationName("[ORG]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    mockService.addResponse(expectedResponse);
+
+    IntelligenceConfig intelligenceConfig =
+        IntelligenceConfig.newBuilder()
+            .setName(IntelligenceConfigName.ofOrgLocationName("[ORG]", "[LOCATION]").toString())
+            .setUpdateTime(Timestamp.newBuilder().build())
+            .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+            .setEffectiveIntelligenceConfig(
+                IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+            .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+            .build();
+    FieldMask updateMask = FieldMask.newBuilder().build();
+
+    IntelligenceConfig actualResponse =
+        client.updateOrganizationIntelligenceConfig(intelligenceConfig, updateMask);
+    Assert.assertEquals(expectedResponse, actualResponse);
+
+    List<String> actualRequests = mockService.getRequestPaths();
+    Assert.assertEquals(1, actualRequests.size());
+
+    String apiClientHeaderKey =
+        mockService
+            .getRequestHeaders()
+            .get(ApiClientHeaderProvider.getDefaultApiClientHeaderKey())
+            .iterator()
+            .next();
+    Assert.assertTrue(
+        GaxHttpJsonProperties.getDefaultApiClientHeaderPattern()
+            .matcher(apiClientHeaderKey)
+            .matches());
+  }
+
+  @Test
+  public void updateOrganizationIntelligenceConfigExceptionTest() throws Exception {
+    ApiException exception =
+        ApiExceptionFactory.createException(
+            new Exception(), FakeStatusCode.of(StatusCode.Code.INVALID_ARGUMENT), false);
+    mockService.addException(exception);
+
+    try {
+      IntelligenceConfig intelligenceConfig =
+          IntelligenceConfig.newBuilder()
+              .setName(IntelligenceConfigName.ofOrgLocationName("[ORG]", "[LOCATION]").toString())
+              .setUpdateTime(Timestamp.newBuilder().build())
+              .setFilter(IntelligenceConfig.Filter.newBuilder().build())
+              .setEffectiveIntelligenceConfig(
+                  IntelligenceConfig.EffectiveIntelligenceConfig.newBuilder().build())
+              .setTrialConfig(IntelligenceConfig.TrialConfig.newBuilder().build())
+              .build();
+      FieldMask updateMask = FieldMask.newBuilder().build();
+      client.updateOrganizationIntelligenceConfig(intelligenceConfig, updateMask);
+      Assert.fail("No exception raised");
+    } catch (InvalidArgumentException e) {
+      // Expected exception.
+    }
+  }
+}