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 future =
+ * executionsClient.listExecutionsPagedCallable().futureCall(request);
+ * // Do something.
+ * for (Execution element : future.get().iterateAll()) {
+ * // doThingsWith(element);
+ * }
+ * }
+ * }
+ */
+ public final UnaryCallableSample 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 UnaryCallableSample 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 future = executionsClient.createExecutionCallable().futureCall(request);
+ * // Do something.
+ * Execution response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallableSample 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 future = executionsClient.getExecutionCallable().futureCall(request);
+ * // Do something.
+ * Execution response = future.get();
+ * }
+ * }
+ */
+ public final UnaryCallableSample 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 future = executionsClient.cancelExecutionCallable().futureCall(request);
+ * // Do something.
+ * Execution 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 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 ClientSettingsNote: 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