This class provides the ability to make remote calls to the backing service through method + * calls that map to API methods. Sample code to get started: + * + *
+ *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * CreateScanConfigRequest request = CreateScanConfigRequest.newBuilder().build();
+ * ScanConfig response = webSecurityScannerClient.createScanConfig(request);
+ * }
+ *
+ *
+ *
+ * Note: close() needs to be called on the webSecurityScannerClient object to clean up resources + * such as threads. In the example above, try-with-resources is used, which automatically calls + * close(). + * + *
The surface of this class includes several types of Java methods for each of the API's + * methods: + * + *
See the individual methods for example code. + * + *
Many parameters require resource names to be formatted in a particular way. To assist with + * these names, this class includes a format method for each type of name, and additionally a parse + * method to extract the individual identifiers contained within names that are returned. + * + *
This class can be customized by passing in a custom instance of WebSecurityScannerSettings to + * create(). For example: + * + *
To customize credentials: + * + *
+ *
+ * WebSecurityScannerSettings webSecurityScannerSettings =
+ * WebSecurityScannerSettings.newBuilder()
+ * .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials))
+ * .build();
+ * WebSecurityScannerClient webSecurityScannerClient =
+ * WebSecurityScannerClient.create(webSecurityScannerSettings);
+ *
+ *
+ *
+ * To customize the endpoint:
+ *
+ *
+ *
+ * WebSecurityScannerSettings webSecurityScannerSettings =
+ * WebSecurityScannerSettings.newBuilder().setEndpoint(myEndpoint).build();
+ * WebSecurityScannerClient webSecurityScannerClient =
+ * WebSecurityScannerClient.create(webSecurityScannerSettings);
+ *
+ *
+ */
+@Generated("by gapic-generator")
+@BetaApi
+public class WebSecurityScannerClient implements BackgroundResource {
+ private final WebSecurityScannerSettings settings;
+ private final WebSecurityScannerStub stub;
+
+ /** Constructs an instance of WebSecurityScannerClient with default settings. */
+ public static final WebSecurityScannerClient create() throws IOException {
+ return create(WebSecurityScannerSettings.newBuilder().build());
+ }
+
+ /**
+ * Constructs an instance of WebSecurityScannerClient, using the given settings. The channels are
+ * created based on the settings passed in, or defaults for any settings that are not set.
+ */
+ public static final WebSecurityScannerClient create(WebSecurityScannerSettings settings)
+ throws IOException {
+ return new WebSecurityScannerClient(settings);
+ }
+
+ /**
+ * Constructs an instance of WebSecurityScannerClient, using the given stub for making calls. This
+ * is for advanced usage - prefer to use WebSecurityScannerSettings}.
+ */
+ @BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+ public static final WebSecurityScannerClient create(WebSecurityScannerStub stub) {
+ return new WebSecurityScannerClient(stub);
+ }
+
+ /**
+ * Constructs an instance of WebSecurityScannerClient, 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 WebSecurityScannerClient(WebSecurityScannerSettings settings) throws IOException {
+ this.settings = settings;
+ this.stub = ((WebSecurityScannerStubSettings) settings.getStubSettings()).createStub();
+ }
+
+ @BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+ protected WebSecurityScannerClient(WebSecurityScannerStub stub) {
+ this.settings = null;
+ this.stub = stub;
+ }
+
+ public final WebSecurityScannerSettings getSettings() {
+ return settings;
+ }
+
+ @BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+ public WebSecurityScannerStub getStub() {
+ return stub;
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Creates a new ScanConfig.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * CreateScanConfigRequest request = CreateScanConfigRequest.newBuilder().build();
+ * ScanConfig response = webSecurityScannerClient.createScanConfig(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ScanConfig createScanConfig(CreateScanConfigRequest request) {
+ return createScanConfigCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Creates a new ScanConfig.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * CreateScanConfigRequest request = CreateScanConfigRequest.newBuilder().build();
+ * ApiFuture<ScanConfig> future = webSecurityScannerClient.createScanConfigCallable().futureCall(request);
+ * // Do something
+ * ScanConfig response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * DeleteScanConfigRequest request = DeleteScanConfigRequest.newBuilder().build();
+ * webSecurityScannerClient.deleteScanConfig(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final void deleteScanConfig(DeleteScanConfigRequest request) {
+ deleteScanConfigCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Deletes an existing ScanConfig and its child resources.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * DeleteScanConfigRequest request = DeleteScanConfigRequest.newBuilder().build();
+ * ApiFuture<Void> future = webSecurityScannerClient.deleteScanConfigCallable().futureCall(request);
+ * // Do something
+ * future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * GetScanConfigRequest request = GetScanConfigRequest.newBuilder().build();
+ * ScanConfig response = webSecurityScannerClient.getScanConfig(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ScanConfig getScanConfig(GetScanConfigRequest request) {
+ return getScanConfigCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Gets a ScanConfig.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * GetScanConfigRequest request = GetScanConfigRequest.newBuilder().build();
+ * ApiFuture<ScanConfig> future = webSecurityScannerClient.getScanConfigCallable().futureCall(request);
+ * // Do something
+ * ScanConfig response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListScanConfigsRequest request = ListScanConfigsRequest.newBuilder().build();
+ * for (ScanConfig element : webSecurityScannerClient.listScanConfigs(request).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListScanConfigsPagedResponse listScanConfigs(ListScanConfigsRequest request) {
+ return listScanConfigsPagedCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Lists ScanConfigs under a given project.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListScanConfigsRequest request = ListScanConfigsRequest.newBuilder().build();
+ * ApiFuture<ListScanConfigsPagedResponse> future = webSecurityScannerClient.listScanConfigsPagedCallable().futureCall(request);
+ * // Do something
+ * for (ScanConfig element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListScanConfigsRequest request = ListScanConfigsRequest.newBuilder().build();
+ * while (true) {
+ * ListScanConfigsResponse response = webSecurityScannerClient.listScanConfigsCallable().call(request);
+ * for (ScanConfig element : response.getScanConfigsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * UpdateScanConfigRequest request = UpdateScanConfigRequest.newBuilder().build();
+ * ScanConfig response = webSecurityScannerClient.updateScanConfig(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ScanConfig updateScanConfig(UpdateScanConfigRequest request) {
+ return updateScanConfigCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Updates a ScanConfig. This method support partial update of a ScanConfig.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * UpdateScanConfigRequest request = UpdateScanConfigRequest.newBuilder().build();
+ * ApiFuture<ScanConfig> future = webSecurityScannerClient.updateScanConfigCallable().futureCall(request);
+ * // Do something
+ * ScanConfig response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * StartScanRunRequest request = StartScanRunRequest.newBuilder().build();
+ * ScanRun response = webSecurityScannerClient.startScanRun(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ScanRun startScanRun(StartScanRunRequest request) {
+ return startScanRunCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Start a ScanRun according to the given ScanConfig.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * StartScanRunRequest request = StartScanRunRequest.newBuilder().build();
+ * ApiFuture<ScanRun> future = webSecurityScannerClient.startScanRunCallable().futureCall(request);
+ * // Do something
+ * ScanRun response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * GetScanRunRequest request = GetScanRunRequest.newBuilder().build();
+ * ScanRun response = webSecurityScannerClient.getScanRun(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ScanRun getScanRun(GetScanRunRequest request) {
+ return getScanRunCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Gets a ScanRun.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * GetScanRunRequest request = GetScanRunRequest.newBuilder().build();
+ * ApiFuture<ScanRun> future = webSecurityScannerClient.getScanRunCallable().futureCall(request);
+ * // Do something
+ * ScanRun response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListScanRunsRequest request = ListScanRunsRequest.newBuilder().build();
+ * for (ScanRun element : webSecurityScannerClient.listScanRuns(request).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListScanRunsPagedResponse listScanRuns(ListScanRunsRequest request) {
+ return listScanRunsPagedCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Lists ScanRuns under a given ScanConfig, in descending order of ScanRun stop time.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListScanRunsRequest request = ListScanRunsRequest.newBuilder().build();
+ * ApiFuture<ListScanRunsPagedResponse> future = webSecurityScannerClient.listScanRunsPagedCallable().futureCall(request);
+ * // Do something
+ * for (ScanRun element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListScanRunsRequest request = ListScanRunsRequest.newBuilder().build();
+ * while (true) {
+ * ListScanRunsResponse response = webSecurityScannerClient.listScanRunsCallable().call(request);
+ * for (ScanRun element : response.getScanRunsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * StopScanRunRequest request = StopScanRunRequest.newBuilder().build();
+ * ScanRun response = webSecurityScannerClient.stopScanRun(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ScanRun stopScanRun(StopScanRunRequest request) {
+ return stopScanRunCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Stops a ScanRun. The stopped ScanRun is returned.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * StopScanRunRequest request = StopScanRunRequest.newBuilder().build();
+ * ApiFuture<ScanRun> future = webSecurityScannerClient.stopScanRunCallable().futureCall(request);
+ * // Do something
+ * ScanRun response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListCrawledUrlsRequest request = ListCrawledUrlsRequest.newBuilder().build();
+ * for (CrawledUrl element : webSecurityScannerClient.listCrawledUrls(request).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListCrawledUrlsPagedResponse listCrawledUrls(ListCrawledUrlsRequest request) {
+ return listCrawledUrlsPagedCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * List CrawledUrls under a given ScanRun.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListCrawledUrlsRequest request = ListCrawledUrlsRequest.newBuilder().build();
+ * ApiFuture<ListCrawledUrlsPagedResponse> future = webSecurityScannerClient.listCrawledUrlsPagedCallable().futureCall(request);
+ * // Do something
+ * for (CrawledUrl element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListCrawledUrlsRequest request = ListCrawledUrlsRequest.newBuilder().build();
+ * while (true) {
+ * ListCrawledUrlsResponse response = webSecurityScannerClient.listCrawledUrlsCallable().call(request);
+ * for (CrawledUrl element : response.getCrawledUrlsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * GetFindingRequest request = GetFindingRequest.newBuilder().build();
+ * Finding response = webSecurityScannerClient.getFinding(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final Finding getFinding(GetFindingRequest request) {
+ return getFindingCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * Gets a Finding.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * GetFindingRequest request = GetFindingRequest.newBuilder().build();
+ * ApiFuture<Finding> future = webSecurityScannerClient.getFindingCallable().futureCall(request);
+ * // Do something
+ * Finding response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListFindingsRequest request = ListFindingsRequest.newBuilder().build();
+ * for (Finding element : webSecurityScannerClient.listFindings(request).iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListFindingsPagedResponse listFindings(ListFindingsRequest request) {
+ return listFindingsPagedCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * List Findings under a given ScanRun.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListFindingsRequest request = ListFindingsRequest.newBuilder().build();
+ * ApiFuture<ListFindingsPagedResponse> future = webSecurityScannerClient.listFindingsPagedCallable().futureCall(request);
+ * // Do something
+ * for (Finding element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListFindingsRequest request = ListFindingsRequest.newBuilder().build();
+ * while (true) {
+ * ListFindingsResponse response = webSecurityScannerClient.listFindingsCallable().call(request);
+ * for (Finding element : response.getFindingsList()) {
+ * // doThingsWith(element);
+ * }
+ * String nextPageToken = response.getNextPageToken();
+ * if (!Strings.isNullOrEmpty(nextPageToken)) {
+ * request = request.toBuilder().setPageToken(nextPageToken).build();
+ * } else {
+ * break;
+ * }
+ * }
+ * }
+ *
+ */
+ public final UnaryCallableSample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListFindingTypeStatsRequest request = ListFindingTypeStatsRequest.newBuilder().build();
+ * ListFindingTypeStatsResponse response = webSecurityScannerClient.listFindingTypeStats(request);
+ * }
+ *
+ *
+ * @param request The request object containing all of the parameters for the API call.
+ * @throws com.google.api.gax.rpc.ApiException if the remote call fails
+ */
+ public final ListFindingTypeStatsResponse listFindingTypeStats(
+ ListFindingTypeStatsRequest request) {
+ return listFindingTypeStatsCallable().call(request);
+ }
+
+ // AUTO-GENERATED DOCUMENTATION AND METHOD
+ /**
+ * List all FindingTypeStats under a given ScanRun.
+ *
+ * Sample code: + * + *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * ListFindingTypeStatsRequest request = ListFindingTypeStatsRequest.newBuilder().build();
+ * ApiFuture<ListFindingTypeStatsResponse> future = webSecurityScannerClient.listFindingTypeStatsCallable().futureCall(request);
+ * // Do something
+ * ListFindingTypeStatsResponse response = future.get();
+ * }
+ *
+ */
+ public final UnaryCallableThe default instance has everything set to sensible defaults: + * + *
The builder of this class is recursive, so contained classes are themselves builders. When + * build() is called, the tree of builders is called to create the complete settings object. + * + *
For example, to set the total timeout of createScanConfig to 30 seconds: + * + *
+ *
+ * WebSecurityScannerSettings.Builder webSecurityScannerSettingsBuilder =
+ * WebSecurityScannerSettings.newBuilder();
+ * webSecurityScannerSettingsBuilder
+ * .createScanConfigSettings()
+ * .setRetrySettings(
+ * webSecurityScannerSettingsBuilder.createScanConfigSettings().getRetrySettings().toBuilder()
+ * .setTotalTimeout(Duration.ofSeconds(30))
+ * .build());
+ * WebSecurityScannerSettings webSecurityScannerSettings = webSecurityScannerSettingsBuilder.build();
+ *
+ *
+ */
+@Generated("by gapic-generator")
+@BetaApi
+public class WebSecurityScannerSettings extends ClientSettingsNote: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction The interfaces provided are listed below, along with usage samples.
+ *
+ * ======================== WebSecurityScannerClient ========================
+ *
+ * Service Description: Web Security Scanner Service identifies security vulnerabilities in web
+ * applications hosted on Google Cloud. It crawls your application, and attempts to exercise as many
+ * user inputs and event handlers as possible.
+ *
+ * Sample for WebSecurityScannerClient:
+ *
+ * This class is for advanced usage.
+ */
+@Generated("by gapic-generator")
+@BetaApi("The surface for use by generated code is not stable yet and may change in the future.")
+public class GrpcWebSecurityScannerCallableFactory implements GrpcStubCallableFactory {
+ @Override
+ public This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator")
+@BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+public class GrpcWebSecurityScannerStub extends WebSecurityScannerStub {
+
+ private static final MethodDescriptor This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator")
+@BetaApi("A restructuring of stub classes is planned, so this may break in the future")
+public abstract class WebSecurityScannerStub implements BackgroundResource {
+
+ public UnaryCallable
+ *
+ */
+@Generated("by gapic-generator")
+package com.google.cloud.websecurityscanner.v1;
+
+import javax.annotation.Generated;
diff --git a/google-cloud-websecurityscanner/src/main/java/com/google/cloud/websecurityscanner/v1/stub/GrpcWebSecurityScannerCallableFactory.java b/google-cloud-websecurityscanner/src/main/java/com/google/cloud/websecurityscanner/v1/stub/GrpcWebSecurityScannerCallableFactory.java
new file mode 100644
index 00000000..725ff9dd
--- /dev/null
+++ b/google-cloud-websecurityscanner/src/main/java/com/google/cloud/websecurityscanner/v1/stub/GrpcWebSecurityScannerCallableFactory.java
@@ -0,0 +1,115 @@
+/*
+ * Copyright 2020 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.cloud.websecurityscanner.v1.stub;
+
+import com.google.api.core.BetaApi;
+import com.google.api.gax.grpc.GrpcCallSettings;
+import com.google.api.gax.grpc.GrpcCallableFactory;
+import com.google.api.gax.grpc.GrpcStubCallableFactory;
+import com.google.api.gax.rpc.BatchingCallSettings;
+import com.google.api.gax.rpc.BidiStreamingCallable;
+import com.google.api.gax.rpc.ClientContext;
+import com.google.api.gax.rpc.ClientStreamingCallable;
+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.StreamingCallSettings;
+import com.google.api.gax.rpc.UnaryCallSettings;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.longrunning.stub.OperationsStub;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS
+/**
+ * gRPC callable factory implementation for Web Security Scanner API.
+ *
+ *
+ * try (WebSecurityScannerClient webSecurityScannerClient = WebSecurityScannerClient.create()) {
+ * CreateScanConfigRequest request = CreateScanConfigRequest.newBuilder().build();
+ * ScanConfig response = webSecurityScannerClient.createScanConfig(request);
+ * }
+ *
+ *