diff --git a/java-workflows/.github/.OwlBot.lock.yaml b/java-workflows/.github/.OwlBot.lock.yaml
new file mode 100644
index 000000000000..610d50d1efaa
--- /dev/null
+++ b/java-workflows/.github/.OwlBot.lock.yaml
@@ -0,0 +1,3 @@
+docker:
+ digest: sha256:984b2b7b8d75fa16ff0e0b3dcdd1e86561b44e8eac23f7a1378db3d339f11333
+ image: gcr.io/repo-automation-bots/owlbot-java:latest
diff --git a/java-workflows/.github/.OwlBot.yaml b/java-workflows/.github/.OwlBot.yaml
new file mode 100644
index 000000000000..5f243c3ab50e
--- /dev/null
+++ b/java-workflows/.github/.OwlBot.yaml
@@ -0,0 +1,29 @@
+# Copyright 2021 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
+#
+# http://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.
+
+docker:
+ image: "gcr.io/repo-automation-bots/owlbot-java:latest"
+
+deep-remove-regex:
+- "/grpc-google-.*/src"
+- "/proto-google-.*/src"
+- "/google-.*/src"
+
+deep-copy-regex:
+- source: "/google/cloud/workflows/(v.*)/.*-java/proto-google-.*/src"
+ dest: "/owl-bot-staging/$1/proto-google-cloud-workflows-$1/src"
+- source: "/google/cloud/workflows/(v.*)/.*-java/grpc-google-.*/src"
+ dest: "/owl-bot-staging/$1/grpc-google-cloud-workflows-$1/src"
+- source: "/google/cloud/workflows/(v.*)/.*-java/gapic-google-.*/src"
+ dest: "/owl-bot-staging/$1/google-cloud-workflows/src"
diff --git a/java-workflows/google-cloud-workflows-bom/pom.xml b/java-workflows/google-cloud-workflows-bom/pom.xml
index 919eb7c00e92..4f0248ef755e 100644
--- a/java-workflows/google-cloud-workflows-bom/pom.xml
+++ b/java-workflows/google-cloud-workflows-bom/pom.xml
@@ -1,4 +1,4 @@
-
+
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: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]"); + * Workflow response = workflowsClient.getWorkflow(name); + * } + * }+ * + *
Note: close() needs to be called on the WorkflowsClient 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 WorkflowsSettings to create(). + * For example: + * + *
To customize credentials: + * + *
{@code + * WorkflowsSettings workflowsSettings = + * WorkflowsSettings.newBuilder() + * .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)) + * .build(); + * WorkflowsClient workflowsClient = WorkflowsClient.create(workflowsSettings); + * }+ * + *
To customize the endpoint: + * + *
{@code + * WorkflowsSettings workflowsSettings = + * WorkflowsSettings.newBuilder().setEndpoint(myEndpoint).build(); + * WorkflowsClient workflowsClient = WorkflowsClient.create(workflowsSettings); + * }+ * + *
Please refer to the GitHub repository's samples for more quickstart code snippets. + */ +@Generated("by gapic-generator-java") +public class WorkflowsClient implements BackgroundResource { + private final WorkflowsSettings settings; + private final WorkflowsStub stub; + private final OperationsClient operationsClient; + + /** Constructs an instance of WorkflowsClient with default settings. */ + public static final WorkflowsClient create() throws IOException { + return create(WorkflowsSettings.newBuilder().build()); + } + + /** + * Constructs an instance of WorkflowsClient, 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 WorkflowsClient create(WorkflowsSettings settings) throws IOException { + return new WorkflowsClient(settings); + } + + /** + * Constructs an instance of WorkflowsClient, using the given stub for making calls. This is for + * advanced usage - prefer using create(WorkflowsSettings). + */ + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + public static final WorkflowsClient create(WorkflowsStub stub) { + return new WorkflowsClient(stub); + } + + /** + * Constructs an instance of WorkflowsClient, 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 WorkflowsClient(WorkflowsSettings settings) throws IOException { + this.settings = settings; + this.stub = ((WorkflowsStubSettings) settings.getStubSettings()).createStub(); + this.operationsClient = OperationsClient.create(this.stub.getOperationsStub()); + } + + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + protected WorkflowsClient(WorkflowsStub stub) { + this.settings = null; + this.stub = stub; + this.operationsClient = OperationsClient.create(this.stub.getOperationsStub()); + } + + public final WorkflowsSettings getSettings() { + return settings; + } + + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + public WorkflowsStub getStub() { + return stub; + } + + /** + * 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() { + return operationsClient; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Lists Workflows in a given project and location. The default order is not specified. + * + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); + * for (Workflow element : workflowsClient.listWorkflows(parent).iterateAll()) { + * // doThingsWith(element); + * } + * } + * }+ * + * @param parent Required. Project and location from which the workflows should be listed. Format: + * projects/{project}/locations/{location} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final ListWorkflowsPagedResponse listWorkflows(LocationName parent) { + ListWorkflowsRequest request = + ListWorkflowsRequest.newBuilder() + .setParent(parent == null ? null : parent.toString()) + .build(); + return listWorkflows(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Lists Workflows in a given project and location. The default order is not specified. + * + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString(); + * for (Workflow element : workflowsClient.listWorkflows(parent).iterateAll()) { + * // doThingsWith(element); + * } + * } + * }+ * + * @param parent Required. Project and location from which the workflows should be listed. Format: + * projects/{project}/locations/{location} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final ListWorkflowsPagedResponse listWorkflows(String parent) { + ListWorkflowsRequest request = ListWorkflowsRequest.newBuilder().setParent(parent).build(); + return listWorkflows(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Lists Workflows in a given project and location. The default order is not specified. + * + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * ListWorkflowsRequest request = + * ListWorkflowsRequest.newBuilder() + * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString()) + * .setPageSize(883849137) + * .setPageToken("pageToken873572522") + * .setFilter("filter-1274492040") + * .setOrderBy("orderBy-1207110587") + * .build(); + * for (Workflow element : workflowsClient.listWorkflows(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 ListWorkflowsPagedResponse listWorkflows(ListWorkflowsRequest request) { + return listWorkflowsPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Lists Workflows in a given project and location. The default order is not specified. + * + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * ListWorkflowsRequest request = + * ListWorkflowsRequest.newBuilder() + * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString()) + * .setPageSize(883849137) + * .setPageToken("pageToken873572522") + * .setFilter("filter-1274492040") + * .setOrderBy("orderBy-1207110587") + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = workflowsClient.listWorkflowsPagedCallable().futureCall(request); + * // Do something. + * for (Workflow element : future.get().iterateAll()) { + * // doThingsWith(element); + * } + * } + * }
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * ListWorkflowsRequest request = + * ListWorkflowsRequest.newBuilder() + * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString()) + * .setPageSize(883849137) + * .setPageToken("pageToken873572522") + * .setFilter("filter-1274492040") + * .setOrderBy("orderBy-1207110587") + * .build(); + * while (true) { + * ListWorkflowsResponse response = workflowsClient.listWorkflowsCallable().call(request); + * for (Workflow element : response.getResponsesList()) { + * // doThingsWith(element); + * } + * String nextPageToken = response.getNextPageToken(); + * if (!Strings.isNullOrEmpty(nextPageToken)) { + * request = request.toBuilder().setPageToken(nextPageToken).build(); + * } else { + * break; + * } + * } + * } + * }+ */ + public final UnaryCallable
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]"); + * Workflow response = workflowsClient.getWorkflow(name); + * } + * }+ * + * @param name Required. Name of the workflow which information should be retrieved. Format: + * projects/{project}/locations/{location}/workflows/{workflow} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Workflow getWorkflow(WorkflowName name) { + GetWorkflowRequest request = + GetWorkflowRequest.newBuilder().setName(name == null ? null : name.toString()).build(); + return getWorkflow(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Gets details of a single Workflow. + * + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * String name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString(); + * Workflow response = workflowsClient.getWorkflow(name); + * } + * }+ * + * @param name Required. Name of the workflow which information should be retrieved. Format: + * projects/{project}/locations/{location}/workflows/{workflow} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Workflow getWorkflow(String name) { + GetWorkflowRequest request = GetWorkflowRequest.newBuilder().setName(name).build(); + return getWorkflow(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Gets details of a single Workflow. + * + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * GetWorkflowRequest request = + * GetWorkflowRequest.newBuilder() + * .setName(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .build(); + * Workflow response = workflowsClient.getWorkflow(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 Workflow getWorkflow(GetWorkflowRequest request) { + return getWorkflowCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Gets details of a single Workflow. + * + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * GetWorkflowRequest request = + * GetWorkflowRequest.newBuilder() + * .setName(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = workflowsClient.getWorkflowCallable().futureCall(request); + * // Do something. + * Workflow response = future.get(); + * } + * }
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * LocationName parent = LocationName.of("[PROJECT]", "[LOCATION]"); + * Workflow workflow = Workflow.newBuilder().build(); + * String workflowId = "workflowId-360387270"; + * Workflow response = workflowsClient.createWorkflowAsync(parent, workflow, workflowId).get(); + * } + * }+ * + * @param parent Required. Project and location in which the workflow should be created. Format: + * projects/{project}/locations/{location} + * @param workflow Required. Workflow to be created. + * @param workflowId Required. The ID of the workflow to be created. It has to fulfill the + * following requirements: + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * String parent = LocationName.of("[PROJECT]", "[LOCATION]").toString(); + * Workflow workflow = Workflow.newBuilder().build(); + * String workflowId = "workflowId-360387270"; + * Workflow response = workflowsClient.createWorkflowAsync(parent, workflow, workflowId).get(); + * } + * }+ * + * @param parent Required. Project and location in which the workflow should be created. Format: + * projects/{project}/locations/{location} + * @param workflow Required. Workflow to be created. + * @param workflowId Required. The ID of the workflow to be created. It has to fulfill the + * following requirements: + *
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * CreateWorkflowRequest request = + * CreateWorkflowRequest.newBuilder() + * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString()) + * .setWorkflow(Workflow.newBuilder().build()) + * .setWorkflowId("workflowId-360387270") + * .build(); + * Workflow response = workflowsClient.createWorkflowAsync(request).get(); + * } + * }+ * + * @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 OperationFuture
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * CreateWorkflowRequest request = + * CreateWorkflowRequest.newBuilder() + * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString()) + * .setWorkflow(Workflow.newBuilder().build()) + * .setWorkflowId("workflowId-360387270") + * .build(); + * OperationFuture+ */ + public final OperationCallablefuture = + * workflowsClient.createWorkflowOperationCallable().futureCall(request); + * // Do something. + * Workflow response = future.get(); + * } + * }
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * CreateWorkflowRequest request = + * CreateWorkflowRequest.newBuilder() + * .setParent(LocationName.of("[PROJECT]", "[LOCATION]").toString()) + * .setWorkflow(Workflow.newBuilder().build()) + * .setWorkflowId("workflowId-360387270") + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = workflowsClient.createWorkflowCallable().futureCall(request); + * // Do something. + * Operation response = future.get(); + * } + * }
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]"); + * workflowsClient.deleteWorkflowAsync(name).get(); + * } + * }+ * + * @param name Required. Name of the workflow to be deleted. Format: + * projects/{project}/locations/{location}/workflows/{workflow} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * String name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString(); + * workflowsClient.deleteWorkflowAsync(name).get(); + * } + * }+ * + * @param name Required. Name of the workflow to be deleted. Format: + * projects/{project}/locations/{location}/workflows/{workflow} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * DeleteWorkflowRequest request = + * DeleteWorkflowRequest.newBuilder() + * .setName(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .build(); + * workflowsClient.deleteWorkflowAsync(request).get(); + * } + * }+ * + * @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 OperationFuture
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * DeleteWorkflowRequest request = + * DeleteWorkflowRequest.newBuilder() + * .setName(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .build(); + * OperationFuture+ */ + public final OperationCallablefuture = + * workflowsClient.deleteWorkflowOperationCallable().futureCall(request); + * // Do something. + * future.get(); + * } + * }
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * DeleteWorkflowRequest request = + * DeleteWorkflowRequest.newBuilder() + * .setName(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = workflowsClient.deleteWorkflowCallable().futureCall(request); + * // Do something. + * future.get(); + * } + * }
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * Workflow workflow = Workflow.newBuilder().build(); + * FieldMask updateMask = FieldMask.newBuilder().build(); + * Workflow response = workflowsClient.updateWorkflowAsync(workflow, updateMask).get(); + * } + * }+ * + * @param workflow Required. Workflow to be updated. + * @param updateMask List of fields to be updated. If not present, the entire workflow will be + * updated. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final OperationFuture
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * UpdateWorkflowRequest request = + * UpdateWorkflowRequest.newBuilder() + * .setWorkflow(Workflow.newBuilder().build()) + * .setUpdateMask(FieldMask.newBuilder().build()) + * .build(); + * Workflow response = workflowsClient.updateWorkflowAsync(request).get(); + * } + * }+ * + * @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 OperationFuture
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * UpdateWorkflowRequest request = + * UpdateWorkflowRequest.newBuilder() + * .setWorkflow(Workflow.newBuilder().build()) + * .setUpdateMask(FieldMask.newBuilder().build()) + * .build(); + * OperationFuture+ */ + public final OperationCallablefuture = + * workflowsClient.updateWorkflowOperationCallable().futureCall(request); + * // Do something. + * Workflow response = future.get(); + * } + * }
Sample code: + * + *
{@code + * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) { + * UpdateWorkflowRequest request = + * UpdateWorkflowRequest.newBuilder() + * .setWorkflow(Workflow.newBuilder().build()) + * .setUpdateMask(FieldMask.newBuilder().build()) + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = workflowsClient.updateWorkflowCallable().futureCall(request); + * // Do something. + * Operation response = future.get(); + * } + * }
The 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 getWorkflow to 30 seconds: + * + *
{@code + * WorkflowsSettings.Builder workflowsSettingsBuilder = WorkflowsSettings.newBuilder(); + * workflowsSettingsBuilder + * .getWorkflowSettings() + * .setRetrySettings( + * workflowsSettingsBuilder + * .getWorkflowSettings() + * .getRetrySettings() + * .toBuilder() + * .setTotalTimeout(Duration.ofSeconds(30)) + * .build()); + * WorkflowsSettings workflowsSettings = workflowsSettingsBuilder.build(); + * }+ */ +@Generated("by gapic-generator-java") +public class WorkflowsSettings extends ClientSettings
Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction ======================= WorkflowsClient =======================
+ *
+ * Service Description: Workflows is used to deploy and execute workflow programs. Workflows
+ * makes sure the program executes reliably, despite hardware and networking interruptions.
+ *
+ * Sample for WorkflowsClient:
+ *
+ * This class is for advanced usage.
+ */
+@Generated("by gapic-generator-java")
+public class GrpcWorkflowsCallableFactory implements GrpcStubCallableFactory {
+
+ @Override
+ public This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public class GrpcWorkflowsStub extends WorkflowsStub {
+ private static final MethodDescriptor This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public abstract class WorkflowsStub implements BackgroundResource {
+
+ public OperationsStub getOperationsStub() {
+ throw new UnsupportedOperationException("Not implemented: getOperationsStub()");
+ }
+
+ public UnaryCallable The 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 getWorkflow to 30 seconds:
+ *
+ * Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction{@code
+ * try (WorkflowsClient workflowsClient = WorkflowsClient.create()) {
+ * WorkflowName name = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
+ * Workflow response = workflowsClient.getWorkflow(name);
+ * }
+ * }
+ */
+@Generated("by gapic-generator-java")
+package com.google.cloud.workflows.v1;
+
+import javax.annotation.Generated;
diff --git a/java-workflows/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsCallableFactory.java b/java-workflows/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsCallableFactory.java
new file mode 100644
index 000000000000..09b1b7884dff
--- /dev/null
+++ b/java-workflows/google-cloud-workflows/src/main/java/com/google/cloud/workflows/v1/stub/GrpcWorkflowsCallableFactory.java
@@ -0,0 +1,113 @@
+/*
+ * Copyright 2021 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.workflows.v1.stub;
+
+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.Operation;
+import com.google.longrunning.stub.OperationsStub;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * gRPC callable factory implementation for the Workflows service API.
+ *
+ *
+ *
+ *
+ * {@code
+ * WorkflowsStubSettings.Builder workflowsSettingsBuilder = WorkflowsStubSettings.newBuilder();
+ * workflowsSettingsBuilder
+ * .getWorkflowSettings()
+ * .setRetrySettings(
+ * workflowsSettingsBuilder
+ * .getWorkflowSettings()
+ * .getRetrySettings()
+ * .toBuilder()
+ * .setTotalTimeout(Duration.ofSeconds(30))
+ * .build());
+ * WorkflowsStubSettings workflowsSettings = workflowsSettingsBuilder.build();
+ * }
+ */
+@Generated("by gapic-generator-java")
+public class WorkflowsStubSettings extends StubSettings