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

flyteidl.admin.workflow.proto Maven / Gradle / Ivy

syntax = "proto3";

package flyteidl.admin;
option go_package = "github.com/lyft/flyteidl/gen/pb-go/flyteidl/admin";

import "flyteidl/core/compiler.proto";
import "flyteidl/core/identifier.proto";
import "flyteidl/core/workflow.proto";
import "flyteidl/admin/common.proto";
import "google/protobuf/timestamp.proto";

// Represents a request structure to create a revision of a workflow.
message WorkflowCreateRequest {
    // id represents the unique identifier of the workflow.
    core.Identifier id     = 1;

    // Represents the specification for workflow.
    WorkflowSpec spec      = 2;
}

message WorkflowCreateResponse {
    // Purposefully empty, may be populated in the future.
}

// Represents the workflow structure stored in the Admin
// A workflow is created by ordering tasks and associating outputs to inputs
// in order to produce a directed-acyclic execution graph.
message Workflow {
    // id represents the unique identifier of the workflow.
    core.Identifier id       = 1;

    // closure encapsulates all the fields that maps to a compiled version of the workflow.
    WorkflowClosure closure  = 2;
}

// Represents a list of workflows returned from the admin.
message WorkflowList {
    // A list of workflows returned based on the request.
    repeated Workflow workflows = 1;

    // In the case of multiple pages of results, the server-provided token can be used to fetch the next page
    // in a query. If there are no more results, this value will be empty.
    string token                = 2;
}

// Represents a structure that encapsulates the specification of the workflow.
message WorkflowSpec {
    // Template of the task that encapsulates all the metadata of the workflow.
    core.WorkflowTemplate template = 1;

    // Workflows that are embedded into other workflows need to be passed alongside the parent workflow to the
    // propeller compiler (since the compiler doesn't have any knowledge of other workflows - ie, it doesn't reach out
    // to Admin to see other registered workflows).  In fact, subworkflows do not even need to be registered.
    repeated core.WorkflowTemplate sub_workflows = 2;
}

// A container holding the compiled workflow produced from the WorkflowSpec and additional metadata.
message WorkflowClosure {
    // Represents the compiled representation of the workflow from the specification provided.
    core.CompiledWorkflowClosure compiled_workflow = 1;

    // Time at which the workflow was created.
    google.protobuf.Timestamp created_at           = 2;
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy