diff --git a/README.md b/README.md index 1f853d2fe..4c618b20e 100644 --- a/README.md +++ b/README.md @@ -46,12 +46,12 @@ If you are using Maven without the BOM, add this to your dependencies: com.google.cloud google-cloud-storage - 2.53.0 + 2.53.1 com.google.cloud google-cloud-storage-control - 2.53.0 + 2.53.1 ``` @@ -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 86fc804ae..2e0613f7c 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 ee1ee7768..e840b72f9 100644 --- a/google-cloud-storage-control/pom.xml +++ b/google-cloud-storage-control/pom.xml @@ -47,11 +47,27 @@ com.google.api gax + + com.google.api + gax + test + testlib + com.google.api gax-grpc + + com.google.api + gax-httpjson + + + com.google.api + gax-httpjson + test + testlib + com.google.guava guava @@ -71,6 +87,11 @@ com.google.api.grpc grpc-google-cloud-storage-control-v2 + + com.google.http-client + google-http-client + test + 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]