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 46840a92d..ac92b5907 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 @@
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.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 @@
* StorageControlClient storageControlClient = StorageControlClient.create(storageControlSettings);
* }
*
+ * To use REST (HTTP1.1/JSON) transport (instead of gRPC) for sending and receiving requests over
+ * the wire:
+ *
+ *
{@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);
+ * }
+ *
* 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 static final StorageControlClient create(StorageControlStub stub) {
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 StorageControlStub getStub() {
* 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 a7bee17da..286869bcc 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.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 static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
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 static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
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 @@ private static Builder createDefault() {
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 000000000..dac9e0655
--- /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.
+ *
+ *
This class is for advanced usage.
+ */
+@Generated("by gapic-generator-java")
+public class HttpJsonStorageControlCallableFactory
+ implements HttpJsonStubCallableFactory {
+
+ @Override
+ public UnaryCallable createUnaryCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ UnaryCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createUnaryCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ UnaryCallable createPagedCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ PagedCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createPagedCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public UnaryCallable createBatchingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ BatchingCallSettings callSettings,
+ ClientContext clientContext) {
+ return HttpJsonCallableFactory.createBatchingCallable(
+ httpJsonCallSettings, callSettings, clientContext);
+ }
+
+ @Override
+ public
+ OperationCallable createOperationCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ OperationCallSettings callSettings,
+ ClientContext clientContext,
+ OperationsStub operationsStub) {
+ UnaryCallable innerCallable =
+ HttpJsonCallableFactory.createBaseUnaryCallable(
+ httpJsonCallSettings, callSettings.getInitialCallSettings(), clientContext);
+ HttpJsonOperationSnapshotCallable initialCallable =
+ new HttpJsonOperationSnapshotCallable(
+ innerCallable,
+ httpJsonCallSettings.getMethodDescriptor().getOperationSnapshotFactory());
+ return HttpJsonCallableFactory.createOperationCallable(
+ callSettings, clientContext, operationsStub.longRunningClient(), initialCallable);
+ }
+
+ @Override
+ public
+ ServerStreamingCallable createServerStreamingCallable(
+ HttpJsonCallSettings httpJsonCallSettings,
+ ServerStreamingCallSettings 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 000000000..9aed10cfc
--- /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.
+ *
+ * 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
+ getProjectIntelligenceConfigMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName(
+ "google.storage.control.v2.StorageControl/GetProjectIntelligenceConfig")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v2/{name=projects/*/locations/*/intelligenceConfig}",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "name", request.getName());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor<
+ UpdateProjectIntelligenceConfigRequest, IntelligenceConfig>
+ updateProjectIntelligenceConfigMethodDescriptor =
+ ApiMethodDescriptor
+ .newBuilder()
+ .setFullMethodName(
+ "google.storage.control.v2.StorageControl/UpdateProjectIntelligenceConfig")
+ .setHttpMethod("PATCH")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v2/{intelligenceConfig.name=projects/*/locations/*/intelligenceConfig}",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(
+ fields,
+ "intelligenceConfig.name",
+ request.getIntelligenceConfig().getName());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer 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.newBuilder()
+ .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor
+ getFolderIntelligenceConfigMethodDescriptor =
+ ApiMethodDescriptor.newBuilder()
+ .setFullMethodName(
+ "google.storage.control.v2.StorageControl/GetFolderIntelligenceConfig")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v2/{name=folders/*/locations/*/intelligenceConfig}",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "name", request.getName());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor<
+ UpdateFolderIntelligenceConfigRequest, IntelligenceConfig>
+ updateFolderIntelligenceConfigMethodDescriptor =
+ ApiMethodDescriptor
+ .newBuilder()
+ .setFullMethodName(
+ "google.storage.control.v2.StorageControl/UpdateFolderIntelligenceConfig")
+ .setHttpMethod("PATCH")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter.newBuilder()
+ .setPath(
+ "/v2/{intelligenceConfig.name=folders/*/locations/*/intelligenceConfig}",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer serializer =
+ ProtoRestSerializer.create();
+ serializer.putPathParam(
+ fields,
+ "intelligenceConfig.name",
+ request.getIntelligenceConfig().getName());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer 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.newBuilder()
+ .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor<
+ GetOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+ getOrganizationIntelligenceConfigMethodDescriptor =
+ ApiMethodDescriptor
+ .newBuilder()
+ .setFullMethodName(
+ "google.storage.control.v2.StorageControl/GetOrganizationIntelligenceConfig")
+ .setHttpMethod("GET")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter
+ .newBuilder()
+ .setPath(
+ "/v2/{name=organizations/*/locations/*/intelligenceConfig}",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer
+ serializer = ProtoRestSerializer.create();
+ serializer.putPathParam(fields, "name", request.getName());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer
+ serializer = ProtoRestSerializer.create();
+ serializer.putQueryParam(fields, "$alt", "json;enum-encoding=int");
+ return fields;
+ })
+ .setRequestBodyExtractor(request -> null)
+ .build())
+ .setResponseParser(
+ ProtoMessageResponseParser.newBuilder()
+ .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private static final ApiMethodDescriptor<
+ UpdateOrganizationIntelligenceConfigRequest, IntelligenceConfig>
+ updateOrganizationIntelligenceConfigMethodDescriptor =
+ ApiMethodDescriptor
+ .newBuilder()
+ .setFullMethodName(
+ "google.storage.control.v2.StorageControl/UpdateOrganizationIntelligenceConfig")
+ .setHttpMethod("PATCH")
+ .setType(ApiMethodDescriptor.MethodType.UNARY)
+ .setRequestFormatter(
+ ProtoMessageRequestFormatter
+ .newBuilder()
+ .setPath(
+ "/v2/{intelligenceConfig.name=organizations/*/locations/*/intelligenceConfig}",
+ request -> {
+ Map fields = new HashMap<>();
+ ProtoRestSerializer
+ serializer = ProtoRestSerializer.create();
+ serializer.putPathParam(
+ fields,
+ "intelligenceConfig.name",
+ request.getIntelligenceConfig().getName());
+ return fields;
+ })
+ .setQueryParamsExtractor(
+ request -> {
+ Map> fields = new HashMap<>();
+ ProtoRestSerializer
+ 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.newBuilder()
+ .setDefaultInstance(IntelligenceConfig.getDefaultInstance())
+ .setDefaultTypeRegistry(typeRegistry)
+ .build())
+ .build();
+
+ private final UnaryCallable
+ getProjectIntelligenceConfigCallable;
+ private final UnaryCallable
+ updateProjectIntelligenceConfigCallable;
+ private final UnaryCallable
+ getFolderIntelligenceConfigCallable;
+ private final UnaryCallable
+ updateFolderIntelligenceConfigCallable;
+ private final UnaryCallable
+ getOrganizationIntelligenceConfigCallable;
+ private final UnaryCallable
+ 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
+ getProjectIntelligenceConfigTransportSettings =
+ HttpJsonCallSettings
+ .newBuilder()
+ .setMethodDescriptor(getProjectIntelligenceConfigMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .setParamsExtractor(
+ request -> {
+ RequestParamsBuilder builder = RequestParamsBuilder.create();
+ builder.add("name", String.valueOf(request.getName()));
+ return builder.build();
+ })
+ .build();
+ HttpJsonCallSettings
+ updateProjectIntelligenceConfigTransportSettings =
+ HttpJsonCallSettings
+ .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
+ getFolderIntelligenceConfigTransportSettings =
+ HttpJsonCallSettings
+ .newBuilder()
+ .setMethodDescriptor(getFolderIntelligenceConfigMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .setParamsExtractor(
+ request -> {
+ RequestParamsBuilder builder = RequestParamsBuilder.create();
+ builder.add("name", String.valueOf(request.getName()));
+ return builder.build();
+ })
+ .build();
+ HttpJsonCallSettings
+ updateFolderIntelligenceConfigTransportSettings =
+ HttpJsonCallSettings
+ .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
+ getOrganizationIntelligenceConfigTransportSettings =
+ HttpJsonCallSettings
+ .newBuilder()
+ .setMethodDescriptor(getOrganizationIntelligenceConfigMethodDescriptor)
+ .setTypeRegistry(typeRegistry)
+ .setParamsExtractor(
+ request -> {
+ RequestParamsBuilder builder = RequestParamsBuilder.create();
+ builder.add("name", String.valueOf(request.getName()));
+ return builder.build();
+ })
+ .build();
+ HttpJsonCallSettings
+ updateOrganizationIntelligenceConfigTransportSettings =
+ HttpJsonCallSettings
+ .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 getMethodDescriptors() {
+ List 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
+ getProjectIntelligenceConfigCallable() {
+ return getProjectIntelligenceConfigCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ updateProjectIntelligenceConfigCallable() {
+ return updateProjectIntelligenceConfigCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ getFolderIntelligenceConfigCallable() {
+ return getFolderIntelligenceConfigCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ updateFolderIntelligenceConfigCallable() {
+ return updateFolderIntelligenceConfigCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ getOrganizationIntelligenceConfigCallable() {
+ return getOrganizationIntelligenceConfigCallable;
+ }
+
+ @Override
+ public UnaryCallable
+ updateOrganizationIntelligenceConfigCallable() {
+ return updateOrganizationIntelligenceConfigCallable;
+ }
+
+ @Override
+ public UnaryCallable createFolderCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: createFolderCallable(). REST transport is not implemented for this method"
+ + " yet.");
+ }
+
+ @Override
+ public UnaryCallable deleteFolderCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: deleteFolderCallable(). REST transport is not implemented for this method"
+ + " yet.");
+ }
+
+ @Override
+ public UnaryCallable getFolderCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: getFolderCallable(). REST transport is not implemented for this method"
+ + " yet.");
+ }
+
+ @Override
+ public UnaryCallable listFoldersCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: listFoldersCallable(). REST transport is not implemented for this method"
+ + " yet.");
+ }
+
+ @Override
+ public UnaryCallable renameFolderCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: renameFolderCallable(). REST transport is not implemented for this method"
+ + " yet.");
+ }
+
+ @Override
+ public UnaryCallable getStorageLayoutCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: getStorageLayoutCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable createManagedFolderCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: createManagedFolderCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable deleteManagedFolderCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: deleteManagedFolderCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable getManagedFolderCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: getManagedFolderCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable
+ listManagedFoldersCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: listManagedFoldersCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable createAnywhereCacheCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: createAnywhereCacheCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable updateAnywhereCacheCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: updateAnywhereCacheCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable disableAnywhereCacheCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: disableAnywhereCacheCallable(). REST transport is not implemented for"
+ + " this method yet.");
+ }
+
+ @Override
+ public UnaryCallable pauseAnywhereCacheCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: pauseAnywhereCacheCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable resumeAnywhereCacheCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: resumeAnywhereCacheCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable getAnywhereCacheCallable() {
+ throw new UnsupportedOperationException(
+ "Not implemented: getAnywhereCacheCallable(). REST transport is not implemented for this"
+ + " method yet.");
+ }
+
+ @Override
+ public UnaryCallable
+ 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 30efedc18..5bab8877f 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 @@
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 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 629353b74..d0191ad46 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 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.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 StorageControlStub createStub() throws IOException {
.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 static GoogleCredentialsProvider.Builder defaultCredentialsProviderBuilde
.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 static ApiClientHeaderProvider.Builder defaultApiClientHeaderProviderBuil
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 @@ private static Builder createDefault() {
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-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 000000000..e2769bba9
--- /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 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 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 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 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 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 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 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 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 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.
+ }
+ }
+}
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 d9736906c..496b4e38a 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 static void anywhereCacheCreate(String bucketName, String cacheName, Stri
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 operation =
@@ -50,6 +49,5 @@ public static void anywhereCacheCreate(String bucketName, String cacheName, Stri
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 c334268aa..272efc91e 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 978d56679..917dd3f2c 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 95285f265..70c0f1271 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 static void anywhereCacheList(String bucketName) throws IOException {
}
}
}
-
}
// [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 6cea55759..bf4a20d75 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 3a2467466..db02a6f3d 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 5cb666f29..558d66db6 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 static void anywhereCacheUpdate(String cacheName, String admissionPolicy)
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 operation =
@@ -56,6 +51,5 @@ public static void anywhereCacheUpdate(String cacheName, String admissionPolicy)
System.out.printf("Updated anywhere cache: %s%n", updatedAnywhereCache.getName());
}
}
-
}
// [END storage_control_update_anywhere_cache]