acoustic-carpenter-78188
02/01/2023, 8:14 AM@AutoService(SdkWorkflow.class)
public class WelcomeWorkflow extends SdkWorkflow<WelcomeWorkflow.Input, WelcomeWorkflow.Output> {
@AutoValue
public abstract static class Input {
public abstract SdkBindingData<String> name();
public static WelcomeWorkflow.Input create(SdkBindingData<String> name) {
return new AutoValue_WelcomeWorkflow_Input(name);
}
}
@AutoValue
public abstract static class Output {
public abstract SdkBindingData<String> greeting();
public static WelcomeWorkflow.Output create(SdkBindingData<String> greeting) {
return new AutoValue_WelcomeWorkflow_Output(name);
}
}
public WelcomeWorkflow() {
super(
JacksonSdkType.of(WelcomeWorkflow.Input.class),
JacksonSdkType.of(WelcomeWorkflow.Output.class));
}
@Override
public void expand(SdkWorkflowBuilder builder) {
SdkBindingData<String> name = builder.inputOfString("name", "Name to be greeted");
SdkBindingData<String> greeting =
builder
.apply("greet", new GreetTask(), GreetTask.Input.create(name))
.getOutputs()
.greeting();
builder.output("greeting", greeting, "Welcome message");
}
}
After
@AutoService(SdkWorkflow.class)
public class WelcomeWorkflow extends SdkWorkflow<WelcomeWorkflow.Input, WelcomeWorkflow.Output> {
@AutoValue
public abstract static class Input {
@Description("Name to be greeted")
public abstract SdkBindingData<String> name();
public static WelcomeWorkflow.Input create(SdkBindingData<String> name) {
return new AutoValue_WelcomeWorkflow_Input(name);
}
}
@AutoValue
public abstract static class Output {
@Description("Welcome message")
public abstract SdkBindingData<String> greeting();
public static WelcomeWorkflow.Output create(SdkBindingData<String> greeting) {
return new AutoValue_WelcomeWorkflow_Output(name);
}
}
public WelcomeWorkflow() {
super(
JacksonSdkType.of(WelcomeWorkflow.Input.class),
JacksonSdkType.of(WelcomeWorkflow.Output.class));
}
@Override
public Output expand(SdkWorkflowBuilder builder, Input input) {
SdkBindingData<String> greeting =
builder
.apply("greet", new GreetTask(), GreetTask.Input.create(input.name()))
.getOutputs()
.greeting();
return Output.create(greeting);
}
}
Also there is the need to add descriptions to autovalue/case classes as the builder methods were the only place to set that up
flyteorg/flyteacoustic-carpenter-78188
02/01/2023, 2:42 PM