All Downloads are FREE. Search and download functionalities are using the official Maven repository.

io.dapr.workflows.client.NewWorkflowOption Maven / Gradle / Ivy

/*
 * Copyright 2023 The Dapr Authors
 * 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.
*/

package io.dapr.workflows.client;

import com.microsoft.durabletask.NewOrchestrationInstanceOptions;

import java.time.Instant;

/**
 * Options for starting a new instance of a workflow.
 */
public class NewWorkflowOption {
  private final NewOrchestrationInstanceOptions newOrchestrationInstanceOptions = new NewOrchestrationInstanceOptions();

  /**
   * Sets the version of the workflow to start.
   *
   * @param version the user-defined version of workflow
   * @return this {@link NewWorkflowOption} object
   */
  public NewWorkflowOption setVersion(String version) {
    this.newOrchestrationInstanceOptions.setVersion(version);
    return this;
  }

  /**
   * Sets the instance ID of the workflow to start.
   *
   * 

If no instance ID is configured, the workflow will be created with a randomly generated instance ID. * * @param instanceId the ID of the new workflow * @return this {@link NewWorkflowOption} object */ public NewWorkflowOption setInstanceId(String instanceId) { this.newOrchestrationInstanceOptions.setInstanceId(instanceId); return this; } /** * Sets the input of the workflow to start. * * @param input the input of the new workflow * @return this {@link NewWorkflowOption} object */ public NewWorkflowOption setInput(Object input) { this.newOrchestrationInstanceOptions.setInput(input); return this; } /** * Sets the start time of the new workflow. * *

By default, new workflow instances start executing immediately. This method can be used * to start them at a specific time in the future. * * @param startTime the start time of the new workflow * @return this {@link NewWorkflowOption} object */ public NewWorkflowOption setStartTime(Instant startTime) { this.newOrchestrationInstanceOptions.setStartTime(startTime); return this; } /** * Gets the user-specified version of the new workflow. * * @return the user-specified version of the new workflow. */ public String getVersion() { return this.newOrchestrationInstanceOptions.getVersion(); } /** * Gets the instance ID of the new workflow. * * @return the instance ID of the new workflow. */ public String getInstanceId() { return this.newOrchestrationInstanceOptions.getInstanceId(); } /** * Gets the input of the new workflow. * * @return the input of the new workflow. */ public Object getInput() { return this.newOrchestrationInstanceOptions.getInput(); } /** * Gets the configured start time of the new workflow instance. * * @return the configured start time of the new workflow instance. */ public Instant getStartTime() { return this.newOrchestrationInstanceOptions.getStartTime(); } public NewOrchestrationInstanceOptions getNewOrchestrationInstanceOptions() { return newOrchestrationInstanceOptions; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy