diff --git a/.repo-metadata.json b/.repo-metadata.json
index d5322182..9c8ac224 100644
--- a/.repo-metadata.json
+++ b/.repo-metadata.json
@@ -4,7 +4,7 @@
"product_documentation": "https://cloud.google.com/workflows",
"api_description": "allows you to ochestrate and automate Google Cloud and HTTP-based API services with serverless workflows.",
"client_documentation": "https://googleapis.dev/java/google-cloud-workflow-executions/latest/index.html",
- "release_level": "beta",
+ "release_level": "ga",
"transport": "grpc",
"language": "java",
"repo": "googleapis/java-workflow-executions",
diff --git a/google-cloud-workflow-executions-bom/pom.xml b/google-cloud-workflow-executions-bom/pom.xml
index 4c986df8..3a9a23af 100644
--- a/google-cloud-workflow-executions-bom/pom.xml
+++ b/google-cloud-workflow-executions-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 (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * WorkflowName parent = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]"); + * Execution execution = Execution.newBuilder().build(); + * Execution response = executionsClient.createExecution(parent, execution); + * } + * }+ * + *
Note: close() needs to be called on the ExecutionsClient 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 ExecutionsSettings to + * create(). For example: + * + *
To customize credentials: + * + *
{@code + * ExecutionsSettings executionsSettings = + * ExecutionsSettings.newBuilder() + * .setCredentialsProvider(FixedCredentialsProvider.create(myCredentials)) + * .build(); + * ExecutionsClient executionsClient = ExecutionsClient.create(executionsSettings); + * }+ * + *
To customize the endpoint: + * + *
{@code + * ExecutionsSettings executionsSettings = + * ExecutionsSettings.newBuilder().setEndpoint(myEndpoint).build(); + * ExecutionsClient executionsClient = ExecutionsClient.create(executionsSettings); + * }+ * + *
Please refer to the GitHub repository's samples for more quickstart code snippets. + */ +@Generated("by gapic-generator-java") +public class ExecutionsClient implements BackgroundResource { + private final ExecutionsSettings settings; + private final ExecutionsStub stub; + + /** Constructs an instance of ExecutionsClient with default settings. */ + public static final ExecutionsClient create() throws IOException { + return create(ExecutionsSettings.newBuilder().build()); + } + + /** + * Constructs an instance of ExecutionsClient, 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 ExecutionsClient create(ExecutionsSettings settings) throws IOException { + return new ExecutionsClient(settings); + } + + /** + * Constructs an instance of ExecutionsClient, using the given stub for making calls. This is for + * advanced usage - prefer using create(ExecutionsSettings). + */ + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + public static final ExecutionsClient create(ExecutionsStub stub) { + return new ExecutionsClient(stub); + } + + /** + * Constructs an instance of ExecutionsClient, 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 ExecutionsClient(ExecutionsSettings settings) throws IOException { + this.settings = settings; + this.stub = ((ExecutionsStubSettings) settings.getStubSettings()).createStub(); + } + + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + protected ExecutionsClient(ExecutionsStub stub) { + this.settings = null; + this.stub = stub; + } + + public final ExecutionsSettings getSettings() { + return settings; + } + + @BetaApi("A restructuring of stub classes is planned, so this may break in the future") + public ExecutionsStub getStub() { + return stub; + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Returns a list of executions which belong to the workflow with the given name. The method + * returns executions of all workflow revisions. Returned executions are ordered by their start + * time (newest first). + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * WorkflowName parent = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]"); + * for (Execution element : executionsClient.listExecutions(parent).iterateAll()) { + * // doThingsWith(element); + * } + * } + * }+ * + * @param parent Required. Name of the workflow for which the executions should be listed. Format: + * projects/{project}/locations/{location}/workflows/{workflow} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final ListExecutionsPagedResponse listExecutions(WorkflowName parent) { + ListExecutionsRequest request = + ListExecutionsRequest.newBuilder() + .setParent(parent == null ? null : parent.toString()) + .build(); + return listExecutions(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Returns a list of executions which belong to the workflow with the given name. The method + * returns executions of all workflow revisions. Returned executions are ordered by their start + * time (newest first). + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * String parent = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString(); + * for (Execution element : executionsClient.listExecutions(parent).iterateAll()) { + * // doThingsWith(element); + * } + * } + * }+ * + * @param parent Required. Name of the workflow for which the executions should be listed. Format: + * projects/{project}/locations/{location}/workflows/{workflow} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final ListExecutionsPagedResponse listExecutions(String parent) { + ListExecutionsRequest request = ListExecutionsRequest.newBuilder().setParent(parent).build(); + return listExecutions(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Returns a list of executions which belong to the workflow with the given name. The method + * returns executions of all workflow revisions. Returned executions are ordered by their start + * time (newest first). + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * ListExecutionsRequest request = + * ListExecutionsRequest.newBuilder() + * .setParent(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .setPageSize(883849137) + * .setPageToken("pageToken873572522") + * .setView(ExecutionView.forNumber(0)) + * .build(); + * for (Execution element : executionsClient.listExecutions(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 ListExecutionsPagedResponse listExecutions(ListExecutionsRequest request) { + return listExecutionsPagedCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Returns a list of executions which belong to the workflow with the given name. The method + * returns executions of all workflow revisions. Returned executions are ordered by their start + * time (newest first). + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * ListExecutionsRequest request = + * ListExecutionsRequest.newBuilder() + * .setParent(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .setPageSize(883849137) + * .setPageToken("pageToken873572522") + * .setView(ExecutionView.forNumber(0)) + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = + * executionsClient.listExecutionsPagedCallable().futureCall(request); + * // Do something. + * for (Execution element : future.get().iterateAll()) { + * // doThingsWith(element); + * } + * } + * }
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * ListExecutionsRequest request = + * ListExecutionsRequest.newBuilder() + * .setParent(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .setPageSize(883849137) + * .setPageToken("pageToken873572522") + * .setView(ExecutionView.forNumber(0)) + * .build(); + * while (true) { + * ListExecutionsResponse response = executionsClient.listExecutionsCallable().call(request); + * for (Execution 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 (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * WorkflowName parent = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]"); + * Execution execution = Execution.newBuilder().build(); + * Execution response = executionsClient.createExecution(parent, execution); + * } + * }+ * + * @param parent Required. Name of the workflow for which an execution should be created. Format: + * projects/{project}/locations/{location}/workflows/{workflow} The latest revision of the + * workflow will be used. + * @param execution Required. Execution to be created. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Execution createExecution(WorkflowName parent, Execution execution) { + CreateExecutionRequest request = + CreateExecutionRequest.newBuilder() + .setParent(parent == null ? null : parent.toString()) + .setExecution(execution) + .build(); + return createExecution(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Creates a new execution using the latest revision of the given workflow. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * String parent = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString(); + * Execution execution = Execution.newBuilder().build(); + * Execution response = executionsClient.createExecution(parent, execution); + * } + * }+ * + * @param parent Required. Name of the workflow for which an execution should be created. Format: + * projects/{project}/locations/{location}/workflows/{workflow} The latest revision of the + * workflow will be used. + * @param execution Required. Execution to be created. + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Execution createExecution(String parent, Execution execution) { + CreateExecutionRequest request = + CreateExecutionRequest.newBuilder().setParent(parent).setExecution(execution).build(); + return createExecution(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Creates a new execution using the latest revision of the given workflow. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * CreateExecutionRequest request = + * CreateExecutionRequest.newBuilder() + * .setParent(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .setExecution(Execution.newBuilder().build()) + * .build(); + * Execution response = executionsClient.createExecution(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 Execution createExecution(CreateExecutionRequest request) { + return createExecutionCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Creates a new execution using the latest revision of the given workflow. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * CreateExecutionRequest request = + * CreateExecutionRequest.newBuilder() + * .setParent(WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]").toString()) + * .setExecution(Execution.newBuilder().build()) + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = executionsClient.createExecutionCallable().futureCall(request); + * // Do something. + * Execution response = future.get(); + * } + * }
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * ExecutionName name = ExecutionName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]", "[EXECUTION]"); + * Execution response = executionsClient.getExecution(name); + * } + * }+ * + * @param name Required. Name of the execution to be retrieved. Format: + * projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Execution getExecution(ExecutionName name) { + GetExecutionRequest request = + GetExecutionRequest.newBuilder().setName(name == null ? null : name.toString()).build(); + return getExecution(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Returns an execution of the given name. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * String name = + * ExecutionName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]", "[EXECUTION]").toString(); + * Execution response = executionsClient.getExecution(name); + * } + * }+ * + * @param name Required. Name of the execution to be retrieved. Format: + * projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Execution getExecution(String name) { + GetExecutionRequest request = GetExecutionRequest.newBuilder().setName(name).build(); + return getExecution(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Returns an execution of the given name. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * GetExecutionRequest request = + * GetExecutionRequest.newBuilder() + * .setName( + * ExecutionName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]", "[EXECUTION]") + * .toString()) + * .setView(ExecutionView.forNumber(0)) + * .build(); + * Execution response = executionsClient.getExecution(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 Execution getExecution(GetExecutionRequest request) { + return getExecutionCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Returns an execution of the given name. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * GetExecutionRequest request = + * GetExecutionRequest.newBuilder() + * .setName( + * ExecutionName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]", "[EXECUTION]") + * .toString()) + * .setView(ExecutionView.forNumber(0)) + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = executionsClient.getExecutionCallable().futureCall(request); + * // Do something. + * Execution response = future.get(); + * } + * }
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * ExecutionName name = ExecutionName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]", "[EXECUTION]"); + * Execution response = executionsClient.cancelExecution(name); + * } + * }+ * + * @param name Required. Name of the execution to be cancelled. Format: + * projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Execution cancelExecution(ExecutionName name) { + CancelExecutionRequest request = + CancelExecutionRequest.newBuilder().setName(name == null ? null : name.toString()).build(); + return cancelExecution(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Cancels an execution of the given name. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * String name = + * ExecutionName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]", "[EXECUTION]").toString(); + * Execution response = executionsClient.cancelExecution(name); + * } + * }+ * + * @param name Required. Name of the execution to be cancelled. Format: + * projects/{project}/locations/{location}/workflows/{workflow}/executions/{execution} + * @throws com.google.api.gax.rpc.ApiException if the remote call fails + */ + public final Execution cancelExecution(String name) { + CancelExecutionRequest request = CancelExecutionRequest.newBuilder().setName(name).build(); + return cancelExecution(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Cancels an execution of the given name. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * CancelExecutionRequest request = + * CancelExecutionRequest.newBuilder() + * .setName( + * ExecutionName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]", "[EXECUTION]") + * .toString()) + * .build(); + * Execution response = executionsClient.cancelExecution(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 Execution cancelExecution(CancelExecutionRequest request) { + return cancelExecutionCallable().call(request); + } + + // AUTO-GENERATED DOCUMENTATION AND METHOD. + /** + * Cancels an execution of the given name. + * + *
Sample code: + * + *
{@code + * try (ExecutionsClient executionsClient = ExecutionsClient.create()) { + * CancelExecutionRequest request = + * CancelExecutionRequest.newBuilder() + * .setName( + * ExecutionName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]", "[EXECUTION]") + * .toString()) + * .build(); + * ApiFuture+ */ + public final UnaryCallablefuture = executionsClient.cancelExecutionCallable().futureCall(request); + * // Do something. + * Execution 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 createExecution to 30 seconds: + * + *
{@code + * ExecutionsSettings.Builder executionsSettingsBuilder = ExecutionsSettings.newBuilder(); + * executionsSettingsBuilder + * .createExecutionSettings() + * .setRetrySettings( + * executionsSettingsBuilder + * .createExecutionSettings() + * .getRetrySettings() + * .toBuilder() + * .setTotalTimeout(Duration.ofSeconds(30)) + * .build()); + * ExecutionsSettings executionsSettings = executionsSettingsBuilder.build(); + * }+ */ +@Generated("by gapic-generator-java") +public class ExecutionsSettings extends ClientSettings
Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction ======================= ExecutionsClient =======================
+ *
+ * Service Description: Executions is used to start and manage running instances of
+ * [Workflows][google.cloud.workflows.v1.Workflow] called executions.
+ *
+ * Sample for ExecutionsClient:
+ *
+ * This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public abstract class ExecutionsStub implements BackgroundResource {
+
+ 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 createExecution to 30 seconds:
+ *
+ * Note: This method does not support applying settings to streaming methods.
+ */
+ public Builder applyToAllUnaryMethods(
+ ApiFunction This class is for advanced usage.
+ */
+@Generated("by gapic-generator-java")
+public class GrpcExecutionsCallableFactory implements GrpcStubCallableFactory {
+
+ @Override
+ public This class is for advanced usage and reflects the underlying API directly.
+ */
+@Generated("by gapic-generator-java")
+public class GrpcExecutionsStub extends ExecutionsStub {
+ private static final MethodDescriptor{@code
+ * try (ExecutionsClient executionsClient = ExecutionsClient.create()) {
+ * WorkflowName parent = WorkflowName.of("[PROJECT]", "[LOCATION]", "[WORKFLOW]");
+ * Execution execution = Execution.newBuilder().build();
+ * Execution response = executionsClient.createExecution(parent, execution);
+ * }
+ * }
+ */
+@Generated("by gapic-generator-java")
+package com.google.cloud.workflows.executions.v1;
+
+import javax.annotation.Generated;
diff --git a/google-cloud-workflow-executions/src/main/java/com/google/cloud/workflows/executions/v1/stub/ExecutionsStub.java b/google-cloud-workflow-executions/src/main/java/com/google/cloud/workflows/executions/v1/stub/ExecutionsStub.java
new file mode 100644
index 00000000..c2fb64b0
--- /dev/null
+++ b/google-cloud-workflow-executions/src/main/java/com/google/cloud/workflows/executions/v1/stub/ExecutionsStub.java
@@ -0,0 +1,63 @@
+/*
+ * 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.executions.v1.stub;
+
+import static com.google.cloud.workflows.executions.v1.ExecutionsClient.ListExecutionsPagedResponse;
+
+import com.google.api.gax.core.BackgroundResource;
+import com.google.api.gax.rpc.UnaryCallable;
+import com.google.cloud.workflows.executions.v1.CancelExecutionRequest;
+import com.google.cloud.workflows.executions.v1.CreateExecutionRequest;
+import com.google.cloud.workflows.executions.v1.Execution;
+import com.google.cloud.workflows.executions.v1.GetExecutionRequest;
+import com.google.cloud.workflows.executions.v1.ListExecutionsRequest;
+import com.google.cloud.workflows.executions.v1.ListExecutionsResponse;
+import javax.annotation.Generated;
+
+// AUTO-GENERATED DOCUMENTATION AND CLASS.
+/**
+ * Base stub class for the Executions service API.
+ *
+ *
+ *
+ *
+ * {@code
+ * ExecutionsStubSettings.Builder executionsSettingsBuilder = ExecutionsStubSettings.newBuilder();
+ * executionsSettingsBuilder
+ * .createExecutionSettings()
+ * .setRetrySettings(
+ * executionsSettingsBuilder
+ * .createExecutionSettings()
+ * .getRetrySettings()
+ * .toBuilder()
+ * .setTotalTimeout(Duration.ofSeconds(30))
+ * .build());
+ * ExecutionsStubSettings executionsSettings = executionsSettingsBuilder.build();
+ * }
+ */
+@Generated("by gapic-generator-java")
+public class ExecutionsStubSettings extends StubSettings